Add submission URLs and fave toggling functions
This commit is contained in:
parent
253c3d6110
commit
96702a3511
@ -27,6 +27,10 @@ class Submission:
|
||||
self._faves: int = None
|
||||
self._comments: List[Comment.Comment] = None
|
||||
self._views: int = None
|
||||
self._preview_url: str = None
|
||||
self._download_url: str = None
|
||||
self._faved: bool = None
|
||||
self._fave_url: str = None
|
||||
|
||||
@property
|
||||
def url(self):
|
||||
@ -119,6 +123,35 @@ class Submission:
|
||||
|
||||
return self._views
|
||||
|
||||
@property
|
||||
def preview_url(self):
|
||||
if not self._preview_url:
|
||||
self._get_submission()
|
||||
|
||||
return self._preview_url
|
||||
|
||||
@property
|
||||
def download_url(self):
|
||||
if not self._download_url:
|
||||
self._get_submission()
|
||||
|
||||
return self._download_url
|
||||
|
||||
@property
|
||||
def faved(self):
|
||||
if self._faved is None:
|
||||
self._get_submission()
|
||||
|
||||
return self._faved
|
||||
|
||||
def fave(self):
|
||||
if self.faved is False: # Usage of the faved property is deliberate to ensure _get_submission() has run
|
||||
self._toggle_fave()
|
||||
|
||||
def unfave(self):
|
||||
if self.faved is True: # Usage of the faved property is deliberate to ensure _get_submission() has run
|
||||
self._toggle_fave()
|
||||
|
||||
def _get_submission(self):
|
||||
soup = self._api.get_soup('{}/view/{}'.format(FAAPI.FA_BASE_URL, self.id))
|
||||
|
||||
@ -134,6 +167,10 @@ class Submission:
|
||||
self._gender = soup.select('.info div:nth-of-type(3) span')[0].text.strip()
|
||||
self._faves = int(soup.select('.favorites .font-large')[0].text.strip())
|
||||
self._views = int(soup.select('.views .font-large')[0].text.strip())
|
||||
self._preview_url = 'https:' + soup.select('#submissionImg')[0].get('data-preview-src')
|
||||
self._download_url = 'https:' + soup.select('#submissionImg')[0].get('data-fullview-src')
|
||||
self._faved = '-' in soup.select('.fav')[0].text
|
||||
self._fave_url = FAAPI.FA_BASE_URL + soup.select('.fav a')[0].get('href')
|
||||
|
||||
# Parse comments
|
||||
self._comments = []
|
||||
@ -168,5 +205,11 @@ class Submission:
|
||||
|
||||
self._comments.append(comment)
|
||||
|
||||
def _toggle_fave(self):
|
||||
soup = self._api.get_soup(self._fave_url)
|
||||
|
||||
self._faved = '-' in soup.select('.fav')[0].text
|
||||
self._fave_url = FAAPI.FA_BASE_URL + soup.select('.fav a')[0].get('href')
|
||||
|
||||
def __str__(self):
|
||||
return '{} - {} ({}/view/{})'.format(self.author, self.title, self.url)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user