aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2023-10-09 15:44:13 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2023-10-09 15:44:13 +0300
commit80940c46bbdc6c1e5cf8e4ab13e2bae0683db8b1 (patch)
tree57174fcfba7b71b194defb9e4441d7a32c4bc08a /plugins
parente9547637ddb6b4fde18ed487d4730182afb6d92a (diff)
Support 'Yesterday at xx:yy AM/PM' datetime syntax in FB scraper
Diffstat (limited to 'plugins')
-rw-r--r--plugins/FacebookSourcePlugin.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/plugins/FacebookSourcePlugin.py b/plugins/FacebookSourcePlugin.py
index 4af54d7..27df127 100644
--- a/plugins/FacebookSourcePlugin.py
+++ b/plugins/FacebookSourcePlugin.py
@@ -39,7 +39,7 @@ def parse_custom_date(date_str: str) -> datetime:
except ValueError:
pass
- # Parse relative times like "14 hrs" and "20 mins"
+ # Try parsing relative times like "14 hrs" and "20 mins"
now = datetime.now()
match = re.match(r"(\d+)\s*(hr|hrs|min|mins)\s*", date_str, re.IGNORECASE)
if match:
@@ -54,6 +54,22 @@ def parse_custom_date(date_str: str) -> datetime:
return now - delta
+ # Try parsing relative times like "Yesterday at 12:19 PM"
+ match = re.match(r"Yesterday at (\d+):(\d+)\s(\w+)", date_str, re.IGNORECASE)
+ if match:
+ hour, minute, am_pm = match.groups()
+ hour = int(hour)
+ minute = int(minute)
+ am_pm = am_pm.lower()
+ # Convert to 24-hour format
+ if am_pm == "pm" and hour != 12:
+ hour += 12
+ if am_pm == "am" and hour == 12:
+ hour = 0
+
+ yesterday = datetime.now() - timedelta(days=1)
+ return datetime(yesterday.year, yesterday.month, yesterday.day, hour, minute, 0)
+
raise ValueError("Unparseable date: " + date_str)