Skip to content

Convert Facebook importers to BaseImporter classes (facebook_page, facebook_posts) #79

Description

@aquarion

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

  1. Create a shared _FacebookAuth mixin or FacebookBaseImporter handling token load/refresh
  2. FacebookPageImporter and FacebookPostsImporter extend it
  3. Move privacy filter logic into FacebookPostsImporter
  4. Replace pickle token storage with read_token_file/write_token_file from oauth_utils (or keep pickle if the token format requires it)
  5. Wire up pyproject.toml entry points
  6. Delete old imports/facebook_*.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions