summaryrefslogtreecommitdiff
path: root/src/portal/py/modules/patreon.py
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2026-04-13 17:01:47 -0400
committerAndrew Opalach <andrew@akon.city> 2026-04-13 17:01:47 -0400
commit77b54c35bf9587450cd636e0d7df37e190e28bfb (patch)
treea290efdd8b09066847199f3f52a32be70d24ef51 /src/portal/py/modules/patreon.py
parent20617b9c80cf8d8051ecdb53a2c22f68c012f21b (diff)
downloadcamu-77b54c35bf9587450cd636e0d7df37e190e28bfb.tar.gz
camu-77b54c35bf9587450cd636e0d7df37e190e28bfb.tar.bz2
camu-77b54c35bf9587450cd636e0d7df37e190e28bfb.zip
Smaller stuff that went uncommitted
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/portal/py/modules/patreon.py')
-rw-r--r--src/portal/py/modules/patreon.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/portal/py/modules/patreon.py b/src/portal/py/modules/patreon.py
index 8ef9ad1..9f672c1 100644
--- a/src/portal/py/modules/patreon.py
+++ b/src/portal/py/modules/patreon.py
@@ -75,7 +75,6 @@ class PatreonUser(PatreonBase):
# image_file: https://www.patreon.com/posts/emma-again-29391136
# text_only: https://www.patreon.com/posts/hello-update-29391184
# tags
- # Query doesn't complete.
def create_post(self, data: ParsedJson, hash: str) -> Optional[Post]:
#if 'access_rules' in data['relationships']:
@@ -99,7 +98,8 @@ class PatreonUser(PatreonBase):
kwargs['author'] = self.user
kwargs['title'] = data['attributes']['title']
kwargs['likes'] = data['attributes']['like_count']
- kwargs['comments'] = data['attributes']['comment_count']
+ if 'comment_count' in data['attributes']:
+ kwargs['comments'] = data['attributes']['comment_count']
kwargs['text'] = ''
if 'content' in data['attributes']:
kwargs['text'] = data['attributes']['content']
@@ -107,10 +107,12 @@ class PatreonUser(PatreonBase):
media = {}
if data['relationships']['media']['data']:
for m in data['relationships']['media']['data']:
- media[m['id']] = self.attachments[m['id']]
+ if m['id'] in self.attachments:
+ media[m['id']] = self.attachments[m['id']]
if 'attachments' in data['relationships'] and data['relationships']['attachments']['data']:
for a in data['relationships']['attachments']['data']:
- media[a['id']] = self.attachments[a['id']]
+ if a['id'] in self.attachments:
+ media[a['id']] = self.attachments[a['id']]
kwargs['media'] = media
post = Post(**kwargs)
self.module.add_to_map(unique_id, post)
@@ -160,6 +162,7 @@ class PatreonUser(PatreonBase):
hash = self.module.add_raw_response(obj)
try:
+ # Cursor should be 'null' at the end of pagination.
self.cursor = obj['meta']['pagination']['cursors']['next']
except KeyError:
self.cursor = None
@@ -170,7 +173,7 @@ class PatreonUser(PatreonBase):
elif inc['type'] == 'media':
if 'download_url' in inc['attributes']:
media_url = inc['attributes']['download_url']
- elif inc['attributes']['image_urls']:
+ elif inc['attributes'].get('image_urls', None):
media_url = inc['attributes']['image_urls']['original']
elif 'default_thumbnail' in inc['attributes']['display']:
media_url = inc['attributes']['display']['default_thumbnail']['url']
@@ -201,6 +204,10 @@ class PatreonUser(PatreonBase):
if index == num:
request_satisfied = True
+ if not self.cursor:
+ self.completed = True
+ break
+
return request_satisfied
class PatreonModule(Module):