* feat: convert to playwright
Convert crawling to use Playwright instead of Chrome.
- Update Dockerfile to include Playwright
- Update crawler worker to use Playwright API
- Update dependencies
* feat: convert from Puppeteer to Playwright for crawling
* feat: update docker-compose
* use separate browser context for better isolation
* skip chrome download in linux script
* readd the stealth plugin
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
* Updated pdf2json to 3.1.5
* Extract and store a screenshot from PDF files using pdf2pic
* Installing graphicsmagick and ghostscript
* Generate Missing PDF screenshot with tidyAssets worker for backward support
* Display PDF screenshot instead of the PDF in web if it exists.
* Display PDF screenshot in mobile app if exists.
* Updated pnpm-lock.yaml
* Removed console.log
* Revert the unnecessary changes in package.json
* Revert pnpm-lock changes
* Prevent rendering PDF files if the screenshot is not generated
* refactor: replace useEffect with useMemo for section initialization
* feat: show PDF file download button and handle large PDFs by defaulting to screenshot view
* feat: add file size to openapi spec
* feature: Add Assets preprocessing in fix mode to admin actions
* i18n: add reprocess_assets_fix_mode translation
* i18n: Add missing ar translations
* A bunch of fixes
* Fix openspec schema
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
* Allow downloading more content from a webpage and index it #215
Added a worker that allows downloading videos depending on the environment variables
refactored the code a bit
added new video asset
updated documentation
* Some tweaks
* Drop the dependency on the yt-dlp wrapper
* Update openapi specs
* Dont log an error when the url is not supported
* Better handle supported websites that dont download anything
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
i added the healthcheck to the AIO and legacy web container.
checked on my AIO instance:
```
{
"Status":"healthy",
"FailingStreak":0,
"Log":[
{
"Start":"2024-10-07T21:23:19.83382568+02:00",
"End":"2024-10-07T21:23:20.003640388+02:00",
"ExitCode":0,
"Output":"Connecting to 127.0.0.1:3000 (127.0.0.1:3000)\nremote file exists\n"
}
]
}
```