CC-1799 Put Airtime Storage into a Human Readable File Naming Convention
refactoring Storedfile
This commit is contained in:
parent
3c689efe06
commit
975f001c86
3 changed files with 263 additions and 1361 deletions
|
@ -4,19 +4,30 @@ define('AIRTIME_VERSION', '1.9.0-devel');
|
||||||
define('AIRTIME_COPYRIGHT_DATE', '2010-2011');
|
define('AIRTIME_COPYRIGHT_DATE', '2010-2011');
|
||||||
define('AIRTIME_REST_VERSION', '1.1');
|
define('AIRTIME_REST_VERSION', '1.1');
|
||||||
|
|
||||||
// Metadata Keys
|
// Metadata Keys for files
|
||||||
define('UI_MDATA_KEY_TITLE', 'dc:title');
|
define('MDATA_KEY_FILEPATH', 'filepath');
|
||||||
define('UI_MDATA_KEY_CREATOR', 'dc:creator');
|
define('MDATA_KEY_MD5', 'md5');
|
||||||
define('UI_MDATA_KEY_SOURCE', 'dc:source');
|
define('MDATA_KEY_TITLE', 'track_title');
|
||||||
define('UI_MDATA_KEY_DURATION', 'dcterms:extent');
|
define('MDATA_KEY_CREATOR', 'artist_name');
|
||||||
define('UI_MDATA_KEY_URL', 'ls:url');
|
define('MDATA_KEY_SOURCE', 'album_title');
|
||||||
define('UI_MDATA_KEY_FORMAT', 'dc:format');
|
define('MDATA_KEY_DURATION', 'length');
|
||||||
define('UI_MDATA_KEY_DESCRIPTION', 'dc:description');
|
define('MDATA_KEY_MIME', 'mime');
|
||||||
define('UI_MDATA_KEY_CHANNELS', 'ls:channels');
|
define('MDATA_KEY_URL', 'url');
|
||||||
define('UI_MDATA_KEY_SAMPLERATE', 'ls:samplerate');
|
define('MDATA_KEY_GENRE', 'genre');
|
||||||
define('UI_MDATA_KEY_BITRATE', 'ls:bitrate');
|
define('MDATA_KEY_MOOD', 'mood');
|
||||||
define('UI_MDATA_KEY_ENCODER', 'ls:encoder');
|
define('MDATA_KEY_LABEL', 'label');
|
||||||
define('UI_MDATA_KEY_FILENAME', 'ls:filename');
|
define('MDATA_KEY_COMPOSER', 'composer');
|
||||||
|
define('MDATA_KEY_FORMAT', 'format');
|
||||||
|
define('MDATA_KEY_DESCRIPTION', 'description');
|
||||||
|
define('MDATA_KEY_SAMPLERATE', 'sample_rate');
|
||||||
|
define('MDATA_KEY_BITRATE', 'bit_rate');
|
||||||
|
define('MDATA_KEY_ENCODER', 'encoded_by');
|
||||||
|
define('MDATA_KEY_ISRC', 'isrc_number');
|
||||||
|
define('MDATA_KEY_COPYRIGHT', 'copyright');
|
||||||
|
define('MDATA_KEY_YEAR', 'year');
|
||||||
|
define('MDATA_KEY_BPM', 'bpm');
|
||||||
|
define('MDATA_KEY_TRACKNUMBER', 'track_number');
|
||||||
|
define('MDATA_KEY_CONDUCTOR', 'conductor');
|
||||||
|
|
||||||
define('UI_MDATA_VALUE_FORMAT_FILE', 'File');
|
define('UI_MDATA_VALUE_FORMAT_FILE', 'File');
|
||||||
define('UI_MDATA_VALUE_FORMAT_STREAM', 'live stream');
|
define('UI_MDATA_VALUE_FORMAT_STREAM', 'live stream');
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -60,21 +60,21 @@ class AirtimeNotifier(Notifier):
|
||||||
Notifier.__init__(self, watch_manager, default_proc_fun, read_freq, threshold, timeout)
|
Notifier.__init__(self, watch_manager, default_proc_fun, read_freq, threshold, timeout)
|
||||||
|
|
||||||
self.airtime2mutagen = {\
|
self.airtime2mutagen = {\
|
||||||
"track_title": "title",\
|
"MDATA_KEY_TITLE": "title",\
|
||||||
"artist_name": "artist",\
|
"MDATA_KEY_CREATOR": "artist",\
|
||||||
"album_title": "album",\
|
"MDATA_KEY_SOURCE": "album",\
|
||||||
"genre": "genre",\
|
"MDATA_KEY_GENRE": "genre",\
|
||||||
"mood": "mood",\
|
"MDATA_KEY_MOOD": "mood",\
|
||||||
"track_number": "tracknumber",\
|
"MDATA_KEY_TRACKNUMBER": "tracknumber",\
|
||||||
"bpm": "bpm",\
|
"MDATA_KEY_BPM": "bpm",\
|
||||||
"label": "organization",\
|
"MDATA_KEY_LABEL": "organization",\
|
||||||
"composer": "composer",\
|
"MDATA_KEY_COMPOSER": "composer",\
|
||||||
"encoded_by": "encodedby",\
|
"MDATA_KEY_ENCODER": "encodedby",\
|
||||||
"conductor": "conductor",\
|
"MDATA_KEY_CONDUCTOR": "conductor",\
|
||||||
"year": "date",\
|
"MDATA_KEY_YEAR": "date",\
|
||||||
"info_url": "website",\
|
"MDATA_KEY_URL": "website",\
|
||||||
"isrc_number": "isrc",\
|
"MDATA_KEY_ISRC": "isrc",\
|
||||||
"copyright": "copyright",\
|
"MDATA_KEY_COPYRIGHT": "copyright",\
|
||||||
}
|
}
|
||||||
|
|
||||||
schedule_exchange = Exchange("airtime-media-monitor", "direct", durable=True, auto_delete=True)
|
schedule_exchange = Exchange("airtime-media-monitor", "direct", durable=True, auto_delete=True)
|
||||||
|
@ -112,21 +112,21 @@ class MediaMonitor(ProcessEvent):
|
||||||
self.api_client = api_client.api_client_factory(config)
|
self.api_client = api_client.api_client_factory(config)
|
||||||
|
|
||||||
self.mutagen2airtime = {\
|
self.mutagen2airtime = {\
|
||||||
"title": "track_title",\
|
"title": "MDATA_KEY_TITLE",\
|
||||||
"artist": "artist_name",\
|
"artist": "MDATA_KEY_CREATOR",\
|
||||||
"album": "album_title",\
|
"album": "MDATA_KEY_SOURCE",\
|
||||||
"genre": "genre",\
|
"genre": "MDATA_KEY_GENRE",\
|
||||||
"mood": "mood",\
|
"mood": "MDATA_KEY_MOOD",\
|
||||||
"tracknumber": "track_number",\
|
"tracknumber": "MDATA_KEY_TRACKNUMBER",\
|
||||||
"bpm": "bpm",\
|
"bpm": "MDATA_KEY_BPM",\
|
||||||
"organization": "label",\
|
"organization": "MDATA_KEY_LABEL",\
|
||||||
"composer": "composer",\
|
"composer": "MDATA_KEY_COMPOSER",\
|
||||||
"encodedby": "encoded_by",\
|
"encodedby": "MDATA_KEY_ENCODER",\
|
||||||
"conductor": "conductor",\
|
"conductor": "MDATA_KEY_CONDUCTOR",\
|
||||||
"date": "year",\
|
"date": "MDATA_KEY_YEAR",\
|
||||||
"website": "info_url",\
|
"website": "MDATA_KEY_URL",\
|
||||||
"isrc": "isrc_number",\
|
"isrc": "MDATA_KEY_ISRC",\
|
||||||
"copyright": "copyright",\
|
"copyright": "MDATA_KEY_COPYRIGHT",\
|
||||||
}
|
}
|
||||||
|
|
||||||
self.supported_file_formats = ['mp3', 'ogg']
|
self.supported_file_formats = ['mp3', 'ogg']
|
||||||
|
@ -186,7 +186,6 @@ class MediaMonitor(ProcessEvent):
|
||||||
'album':None,
|
'album':None,
|
||||||
'title':None,
|
'title':None,
|
||||||
'tracknumber':None}
|
'tracknumber':None}
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
for key in metadata.keys():
|
for key in metadata.keys():
|
||||||
if key in file_info:
|
if key in file_info:
|
||||||
|
@ -244,7 +243,8 @@ class MediaMonitor(ProcessEvent):
|
||||||
self.logger.info("Updating Change to Airtime")
|
self.logger.info("Updating Change to Airtime")
|
||||||
try:
|
try:
|
||||||
md5 = self.get_md5(event.pathname)
|
md5 = self.get_md5(event.pathname)
|
||||||
md = {'filepath':event.pathname, 'md5':md5}
|
md['MDATA_KEY_FILEPATH'] = event.pathname
|
||||||
|
md['MDATA_KEY_MD5'] = md5
|
||||||
|
|
||||||
file_info = mutagen.File(event.pathname, easy=True)
|
file_info = mutagen.File(event.pathname, easy=True)
|
||||||
attrs = self.mutagen2airtime
|
attrs = self.mutagen2airtime
|
||||||
|
@ -252,10 +252,10 @@ class MediaMonitor(ProcessEvent):
|
||||||
if key in attrs :
|
if key in attrs :
|
||||||
md[attrs[key]] = file_info[key][0]
|
md[attrs[key]] = file_info[key][0]
|
||||||
|
|
||||||
md['mime'] = file_info.mime[0]
|
md['MDATA_KEY_MIME'] = file_info.mime[0]
|
||||||
md['bitrate'] = file_info.info.bitrate
|
md['MDATA_KEY_BITRATE'] = file_info.info.bitrate
|
||||||
md['samplerate'] = file_info.info.sample_rate
|
md['MDATA_KEY_SAMPLERATE'] = file_info.info.sample_rated
|
||||||
|
md['MDATA_KEY_DURATION'] = self.format_length(file_info.info.length)
|
||||||
|
|
||||||
data = {'md': md}
|
data = {'md': md}
|
||||||
response = self.api_client.update_media_metadata(data)
|
response = self.api_client.update_media_metadata(data)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue