Convert imports/facebook_page.py and imports/facebook_posts.py to class-based importers. These share the same Facebook OAuth flow and should probably share a FacebookBaseImporter or common auth helper.
Complexity
- Custom OAuth flow using CodeFetcher9000 or manual PIN entry
- Token stored as pickle in credentials dir
- Token expiry checking and user warnings
facebook_posts.py has privacy filter logic (_load_filters, _post_is_visible)
- Uses
graph_get() helper for API calls
Suggested approach
- Create a shared
_FacebookAuth mixin or FacebookBaseImporter handling token load/refresh
FacebookPageImporter and FacebookPostsImporter extend it
- Move privacy filter logic into
FacebookPostsImporter
- Replace pickle token storage with
read_token_file/write_token_file from oauth_utils (or keep pickle if the token format requires it)
- Wire up
pyproject.toml entry points
- Delete old
imports/facebook_*.py
Convert
imports/facebook_page.pyandimports/facebook_posts.pyto class-based importers. These share the same Facebook OAuth flow and should probably share aFacebookBaseImporteror common auth helper.Complexity
facebook_posts.pyhas privacy filter logic (_load_filters,_post_is_visible)graph_get()helper for API callsSuggested approach
_FacebookAuthmixin orFacebookBaseImporterhandling token load/refreshFacebookPageImporterandFacebookPostsImporterextend itFacebookPostsImporterread_token_file/write_token_filefromoauth_utils(or keep pickle if the token format requires it)pyproject.tomlentry pointsimports/facebook_*.py