forum-dl-wrapper.py 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/env python3
  2. """
  3. Wrapper for forum-dl that applies Pydantic v2 compatibility patches.
  4. This wrapper fixes forum-dl 0.3.0's incompatibility with Pydantic v2 by monkey-patching
  5. the JsonlWriter class to use model_dump_json() instead of the deprecated json(models_as_dict=False).
  6. """
  7. import sys
  8. # Apply Pydantic v2 compatibility patch BEFORE importing forum_dl
  9. try:
  10. from forum_dl.writers.jsonl import JsonlWriter
  11. from pydantic import BaseModel
  12. # Check if we're using Pydantic v2
  13. if hasattr(BaseModel, 'model_dump_json'):
  14. def _patched_serialize_entry(self, entry):
  15. """Use Pydantic v2's model_dump_json() instead of deprecated json(models_as_dict=False)"""
  16. return entry.model_dump_json()
  17. JsonlWriter._serialize_entry = _patched_serialize_entry
  18. except (ImportError, AttributeError):
  19. # forum-dl not installed or already compatible - no patch needed
  20. pass
  21. # Now import and run forum-dl's main function
  22. from forum_dl import main
  23. if __name__ == '__main__':
  24. sys.exit(main())