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._faves: int = None
|
||||||
self._comments: List[Comment.Comment] = None
|
self._comments: List[Comment.Comment] = None
|
||||||
self._views: int = 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
|
@property
|
||||||
def url(self):
|
def url(self):
|
||||||
@ -119,6 +123,35 @@ class Submission:
|
|||||||
|
|
||||||
return self._views
|
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):
|
def _get_submission(self):
|
||||||
soup = self._api.get_soup('{}/view/{}'.format(FAAPI.FA_BASE_URL, self.id))
|
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._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._faves = int(soup.select('.favorites .font-large')[0].text.strip())
|
||||||
self._views = int(soup.select('.views .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
|
# Parse comments
|
||||||
self._comments = []
|
self._comments = []
|
||||||
@ -168,5 +205,11 @@ class Submission:
|
|||||||
|
|
||||||
self._comments.append(comment)
|
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):
|
def __str__(self):
|
||||||
return '{} - {} ({}/view/{})'.format(self.author, self.title, self.url)
|
return '{} - {} ({}/view/{})'.format(self.author, self.title, self.url)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user