aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/FacebookSourcePlugin.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/plugins/FacebookSourcePlugin.py b/plugins/FacebookSourcePlugin.py
index 27df127..3e3fdb3 100644
--- a/plugins/FacebookSourcePlugin.py
+++ b/plugins/FacebookSourcePlugin.py
@@ -73,7 +73,9 @@ def parse_custom_date(date_str: str) -> datetime:
raise ValueError("Unparseable date: " + date_str)
-def fetch_page_posts(email: str, password: str, page_id: str, limit: int) -> list[Item]:
+def fetch_page_posts(
+ email: str, password: str, page_id: str, limit: int, is_group: bool
+) -> list[Item]:
base_url = "https://mbasic.facebook.com"
with requests.session() as session:
headers = {
@@ -174,7 +176,10 @@ def fetch_page_posts(email: str, password: str, page_id: str, limit: int) -> lis
ex.add_note(login_post_resp.text[0:1000])
raise ex
- page_timeline_url = f"{base_url}/{page_id}?v=timeline"
+ if is_group:
+ page_timeline_url = f"{base_url}/groups/{page_id}"
+ else:
+ page_timeline_url = f"{base_url}/{page_id}?v=timeline"
items: list[Item] = []
done = False
while len(items) < limit and not done:
@@ -252,6 +257,7 @@ class Plugin(PluginInterface):
self.login_email = get_config(params, "login_email")
self.login_password = get_config(params, "login_password")
self.page_id = get_config(params, "page_id")
+ self.is_group = get_config_or_default(params, "is_group", False)
self.limit = int(get_config_or_default(params, "limit", "10"))
self.log("initialized")
@@ -264,7 +270,11 @@ class Plugin(PluginInterface):
self.log(f'scraping posts from FB page id "{self.page_id}"')
posts = fetch_page_posts(
- self.login_email, self.login_password, self.page_id, self.limit
+ self.login_email,
+ self.login_password,
+ self.page_id,
+ self.limit,
+ self.is_group,
)
self.log(f'scraped {len(posts)} posts from FB page id "{self.page_id}"')