Problem:
Docker uses 'uvicorn app:app' command which skips the if __name__ == '__main__'
block, causing load_dotenv() never executed and PROXY_URLS from .env not loaded.
Solution:
Move load_dotenv() to module level in app.py to ensure .env is loaded for all
startup methods (python app.py, uvicorn app:app, docker-compose).
Changes:
- Add module-level load_dotenv() in app.py
- Update Dockerfile version 1.0.4 -> 1.0.5
- Improve audio content display UI
- Add docs/ and scripts/ to .gitignore
Made-with: Cursor
- Remove non-root user (appuser) to eliminate SQLite database creation failures
- Users no longer need to manually create data directory or fix permissions
- Version bump to 1.0.3
Fixes#5
Made-with: Cursor
Major Updates:
- Add support for item_show_type=7 audio/video share pages with basic metadata extraction
- Enhance is_audio_message() with strict regex to avoid false positives
- Improve get_unavailable_reason() to correctly distinguish verification pages
- Add friendly placeholder text for pure-image articles
- Add comprehensive CONTENT_TYPES.md documentation
Technical Improvements:
- Fix pure-image articles being misidentified as audio articles
- Fix WeChat verification pages being marked as permanently unavailable
- Fix empty Vue app (privacy page) detection logic
- Optimize article type detection priority based on item_show_type
Documentation:
- Add CONTENT_TYPES.md with detailed explanations of all content types
- Update README.md to reference new documentation
- Document known limitations for audio articles
Note: Audio articles (type=7) use dynamic Vue apps, so only basic metadata
(title, author, cover image) can be extracted. Full audio URL extraction
would require browser environment.
Made-with: Cursor
- Add beautifulsoup4>=4.12.0 to requirements.txt
- Required by utils/helpers.py _extract_audio_content() function
- Used for parsing HTML in audio message extraction (line 286)
- Fixes 'No module named bs4' error when processing audio articles
This dependency was introduced when audio article support was added
but was not included in requirements.txt, causing runtime errors.
Made-with: Cursor
- Add Docker deployment section with quick start guide
- Update docker-compose.yml to use pre-built images from Docker Hub
- Add Docker Pulls badge to README
- Reorganize quick start to show Docker first (recommended method)
Made-with: Cursor