Cache submissions

This commit is contained in:
Thomas Wade 2020-04-21 05:12:00 +09:30
parent 96702a3511
commit 69ff0a40b8
2 changed files with 12 additions and 2 deletions

View File

@ -11,6 +11,8 @@ class Submission:
A FurAffinity submission.
"""
_submissioncache = {}
def __init__(self, api, id: int):
self._api = api
self.id: int = id
@ -144,6 +146,14 @@ class Submission:
return self._faved
@staticmethod
def new_or_cached(api, id: int):
if id not in Submission._submissioncache:
Submission._submissioncache[id] = Submission(api, id)
return Submission._submissioncache[id]
def fave(self):
if self.faved is False: # Usage of the faved property is deliberate to ensure _get_submission() has run
self._toggle_fave()

View File

@ -78,7 +78,7 @@ class User:
# Get all the submissions on this page
for item in soup.select('.gallery figure'):
sub = Submission.Submission(self._api, int(item.get('id')[4:])) # IDs look like 'sid-35908275', so we just skip the 'sid-'
sub = Submission.Submission.new_or_cached(self._api, int(item.get('id')[4:])) # IDs look like 'sid-35908275', so we just skip the 'sid-'
submissions.append(sub)
return submissions
@ -99,7 +99,7 @@ class User:
# Get all the submissions on this page
for item in soup.select('.gallery figure'):
sub = Submission.Submission(self._api, int(item.get('id')[4:])) # IDs look like 'sid-35908275', so we just skip the 'sid-'
sub = Submission.Submission.new_or_cached(self._api, int(item.get('id')[4:])) # IDs look like 'sid-35908275', so we just skip the 'sid-'
submissions.append(sub)
return submissions