diff --git a/plexpy/datafactory.py b/plexpy/datafactory.py index 3bab202a..c5390f27 100644 --- a/plexpy/datafactory.py +++ b/plexpy/datafactory.py @@ -1259,8 +1259,11 @@ class DataFactory(object): 'GROUP BY rating_key' % where results = monitor_db.select(query, args=args) - for cloudinary_info in results: - helpers.delete_from_cloudinary(rating_key=cloudinary_info['rating_key']) + if delete_all: + helpers.delete_from_cloudinary(delete_all=delete_all) + else: + for cloudinary_info in results: + helpers.delete_from_cloudinary(rating_key=cloudinary_info['rating_key']) logger.info(u"Tautulli DataFactory :: Deleting Cloudinary info%s from the database." % log_msg) diff --git a/plexpy/helpers.py b/plexpy/helpers.py index ba92e658..340282da 100644 --- a/plexpy/helpers.py +++ b/plexpy/helpers.py @@ -818,7 +818,7 @@ def upload_to_cloudinary(img_data, img_title='', rating_key='', fallback=''): try: response = upload('data:image/png;base64,{}'.format(base64.b64encode(img_data)), public_id='{}_{}'.format(fallback, rating_key), - tags=[fallback, str(rating_key)], + tags=['tautulli', fallback, str(rating_key)], context={'title': img_title.encode('utf-8'), 'rating_key': str(rating_key), 'fallback': fallback}) logger.debug(u"Tautulli Helpers :: Image '{}' ({}) uploaded to Cloudinary.".format(img_title, fallback)) img_url = response.get('url', '') @@ -828,7 +828,7 @@ def upload_to_cloudinary(img_data, img_title='', rating_key='', fallback=''): return img_url -def delete_from_cloudinary(rating_key): +def delete_from_cloudinary(rating_key=None, delete_all=False): """ Deletes an image from Cloudinary """ if not plexpy.CONFIG.CLOUDINARY_CLOUD_NAME or not plexpy.CONFIG.CLOUDINARY_API_KEY or not plexpy.CONFIG.CLOUDINARY_API_SECRET: logger.error(u"Tautulli Helpers :: Cannot delete image from Cloudinary. Cloudinary settings not specified in the settings.") @@ -840,9 +840,15 @@ def delete_from_cloudinary(rating_key): api_secret=plexpy.CONFIG.CLOUDINARY_API_SECRET ) - delete_resources_by_tag(str(rating_key)) + if delete_all: + delete_resources_by_tag('tautulli') + logger.debug(u"Tautulli Helpers :: Deleted all images from Cloudinary.") + elif rating_key: + delete_resources_by_tag(str(rating_key)) + logger.debug(u"Tautulli Helpers :: Deleted images from Cloudinary with rating_key {}.".format(rating_key)) + else: + logger.debug(u"Tautulli Helpers :: Failed to deleted images from Cloudinary: No rating_key provided.") - logger.debug(u"Tautulli Helpers :: Deleted images from Cloudinary with rating_key {}.".format(rating_key)) return True