added count overlay
This commit is contained in:
parent
f3715f2176
commit
85953ec1ef
@ -245,7 +245,7 @@ class Network:
|
|||||||
iterator = PageCollection(net=self, method='user.gettopalbums', params=params, response_limit=limit)
|
iterator = PageCollection(net=self, method='user.gettopalbums', params=params, response_limit=limit)
|
||||||
iterator.load()
|
iterator.load()
|
||||||
|
|
||||||
return [self.parse_album(i) for i in iterator.items]
|
return [self.parse_chart_album(i) for i in iterator.items]
|
||||||
|
|
||||||
def get_top_artists(self,
|
def get_top_artists(self,
|
||||||
period: Range,
|
period: Range,
|
||||||
@ -281,7 +281,7 @@ class Network:
|
|||||||
except AttributeError:
|
except AttributeError:
|
||||||
logger.error(f'{fm_object} has no images')
|
logger.error(f'{fm_object} has no images')
|
||||||
|
|
||||||
def download_best_image(self, fm_object: Union[Track, Album, Artist], final_scale=None):
|
def download_best_image(self, fm_object: Union[Track, Album, Artist], final_scale=None, add_count: bool = False):
|
||||||
try:
|
try:
|
||||||
images = sorted(fm_object.images, key=lambda x: x.size.value, reverse=True)
|
images = sorted(fm_object.images, key=lambda x: x.size.value, reverse=True)
|
||||||
|
|
||||||
@ -294,12 +294,39 @@ class Network:
|
|||||||
if downloaded.shape != final_scale:
|
if downloaded.shape != final_scale:
|
||||||
downloaded = cv2.resize(downloaded, final_scale)
|
downloaded = cv2.resize(downloaded, final_scale)
|
||||||
|
|
||||||
|
if add_count:
|
||||||
|
self.add_scrobble_count_to_image(downloaded, fm_object.user_scrobbles)
|
||||||
|
|
||||||
return downloaded
|
return downloaded
|
||||||
else:
|
else:
|
||||||
logger.error('null image returned, iterating')
|
logger.error('null image returned, iterating')
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
logger.error(f'{fm_object} has no images')
|
logger.error(f'{fm_object} has no images')
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def add_scrobble_count_to_image(image, count: int):
|
||||||
|
cv2.putText(image,
|
||||||
|
f'{count:,}',
|
||||||
|
(11, 36),
|
||||||
|
cv2.FONT_HERSHEY_SIMPLEX,
|
||||||
|
1,
|
||||||
|
(0, 0, 0),
|
||||||
|
2)
|
||||||
|
cv2.putText(image,
|
||||||
|
f'{count:,}',
|
||||||
|
(11, 38),
|
||||||
|
cv2.FONT_HERSHEY_SIMPLEX,
|
||||||
|
1,
|
||||||
|
(0, 0, 0),
|
||||||
|
2)
|
||||||
|
cv2.putText(image,
|
||||||
|
f'{count:,}',
|
||||||
|
(9, 35),
|
||||||
|
cv2.FONT_HERSHEY_SIMPLEX,
|
||||||
|
1,
|
||||||
|
(255, 255, 255),
|
||||||
|
2)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def download_image(image_pointer: Image, cache=True):
|
def download_image(image_pointer: Image, cache=True):
|
||||||
logger.info(f'downloading {image_pointer.size.name} image - {image_pointer.link}')
|
logger.info(f'downloading {image_pointer.size.name} image - {image_pointer.link}')
|
||||||
@ -413,6 +440,16 @@ class Network:
|
|||||||
artist=album_dict.get('artist'),
|
artist=album_dict.get('artist'),
|
||||||
images=[self.parse_image(i) for i in album_dict.get('image', [])])
|
images=[self.parse_image(i) for i in album_dict.get('image', [])])
|
||||||
|
|
||||||
|
def parse_chart_album(self, album_dict) -> Album:
|
||||||
|
return Album(name=album_dict.get('name', album_dict.get('title', 'n/a')),
|
||||||
|
url=album_dict.get('url', 'n/a'),
|
||||||
|
mbid=album_dict.get('mbid', 'n/a'),
|
||||||
|
listeners=int(album_dict.get('listeners', 0)),
|
||||||
|
user_scrobbles=int(album_dict.get('playcount', 0)),
|
||||||
|
wiki=self.parse_wiki(album_dict['wiki']) if album_dict.get('wiki', None) else None,
|
||||||
|
artist=album_dict.get('artist'),
|
||||||
|
images=[self.parse_image(i) for i in album_dict.get('image', [])])
|
||||||
|
|
||||||
def parse_track(self, track_dict) -> Track:
|
def parse_track(self, track_dict) -> Track:
|
||||||
track = Track(name=track_dict.get('name', 'n/a'),
|
track = Track(name=track_dict.get('name', 'n/a'),
|
||||||
url=track_dict.get('url', 'n/a'),
|
url=track_dict.get('url', 'n/a'),
|
||||||
|
Loading…
Reference in New Issue
Block a user