summaryrefslogtreecommitdiff
path: root/src/portal/py/modules/patreon.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/portal/py/modules/patreon.py')
-rw-r--r--src/portal/py/modules/patreon.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/portal/py/modules/patreon.py b/src/portal/py/modules/patreon.py
index 9f672c1..6b1d2cb 100644
--- a/src/portal/py/modules/patreon.py
+++ b/src/portal/py/modules/patreon.py
@@ -1,15 +1,17 @@
import log
-import httpx
from json import JSONDecodeError
from typing import Optional, Any
from datetime import datetime
-from base import USER_AGENT, Search, Module, Method, ParsedJson
+from base import USER_AGENT, HttpResponse, Search, Module, Method, ParsedJson
from modules.common import get_current_utc_time
from post import Date, DateType, DateMeta, Post, User, Url, Media, File
from query_parser import QueryParser
BASE_URL = 'https://www.patreon.com/api'
+def parse_patreon_date(date_str: str) -> datetime:
+ return datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%S.%f%z')
+
class PatreonBase(Search):
REACH_LIMIT = 3
@@ -19,7 +21,7 @@ class PatreonBase(Search):
self.page: int = 0
self.cursor: Optional[str] = None
- def check_api_response(self, response: Optional[httpx.Response]) -> Optional[ParsedJson]:
+ def check_api_response(self, response: Optional[HttpResponse]) -> Optional[ParsedJson]:
if not response:
return None
try:
@@ -86,14 +88,14 @@ class PatreonUser(PatreonBase):
kwargs['raw_responses'] = {}
kwargs['raw_responses']['api'] = hash
kwargs['url'] = data['attributes']['url']
- published_at = datetime.strptime(data['attributes']['published_at'], "%Y-%m-%dT%H:%M:%S.%f%z").timestamp()
+ published_at = parse_patreon_date(data['attributes']['published_at']).timestamp()
current_time = get_current_utc_time().timestamp()
kwargs['dates'] = [
Date(DateType.CREATED, (published_at, published_at), DateMeta.NONE),
Date(DateType.RETRIEVED, (current_time, current_time), DateMeta.NONE)
]
if 'edited_at' in data['attributes']:
- edited_at = datetime.strptime(data['attributes']['edited_at'], "%Y-%m-%dT%H:%M:%S.%f%z").timestamp()
+ edited_at = parse_patreon_date(data['attributes']['edited_at']).timestamp()
kwargs['dates'].append(Date(DateType.EDITED, (edited_at, edited_at), DateMeta.NONE))
kwargs['author'] = self.user
kwargs['title'] = data['attributes']['title']