Add refresh_formats property
This commit is contained in:
1 parent
570a150150
commit
16cd0983c9
1 file changed
+34
@@ -1037,6 +1037,40 @@ class Media(models.Model):
|
||||
except Exception as e:
|
||||
return {}
|
||||
|
||||
@property
|
||||
def refresh_formats(self):
|
||||
data = self.loaded_metadata
|
||||
metadata_seconds = data.get('epoch', None)
|
||||
if not metadata_seconds:
|
||||
self.metadata = None
|
||||
return False
|
||||
|
||||
now = timezone.now()
|
||||
formats_seconds = data.get('formats_epoch', metadata_seconds)
|
||||
metadata_dt = self.metadata_published(formats_seconds)
|
||||
if (now - metadata_dt) < self.source.index_schedule:
|
||||
return False
|
||||
|
||||
self.skip = False
|
||||
metadata = self.index_metadata()
|
||||
if self.skip:
|
||||
return False
|
||||
|
||||
response = metadata
|
||||
if getattr(settings, 'SHRINK_NEW_MEDIA_METADATA', False):
|
||||
response = filter_response(metadata, True)
|
||||
|
||||
field = self.get_metadata_field('formats')
|
||||
data[field] = response.get(field, [])
|
||||
if data.get('availability', 'public') != response.get('availability', 'public'):
|
||||
data['availability'] = response.get('availability', 'public')
|
||||
data['formats_epoch'] = response.get('epoch', formats_seconds)
|
||||
|
||||
from common.utils import json_serial
|
||||
compact_json = json.dumps(data, separators=(',', ':'), default=json_serial)
|
||||
self.metadata = compact_json
|
||||
return True
|
||||
|
||||
@property
|
||||
def url(self):
|
||||
url = self.URLS.get(self.source.source_type, '')
|
||||
|
||||
Reference in new issue
Block a user