diff --git a/plexpy/__init__.py b/plexpy/__init__.py index ee7600f7..21782f80 100644 --- a/plexpy/__init__.py +++ b/plexpy/__init__.py @@ -613,13 +613,14 @@ def dbcheck(): 'video_codec TEXT, video_bitrate INTEGER, video_resolution TEXT, video_width INTEGER, video_height INTEGER, ' 'video_framerate TEXT, video_scan_type TEXT, video_full_resolution TEXT, ' 'video_dynamic_range TEXT, aspect_ratio TEXT, ' - 'audio_codec TEXT, audio_bitrate INTEGER, audio_channels INTEGER, audio_language TEXT, subtitle_codec TEXT, ' - 'stream_bitrate INTEGER, stream_video_resolution TEXT, quality_profile TEXT, ' + 'audio_codec TEXT, audio_bitrate INTEGER, audio_channels INTEGER, audio_language TEXT, audio_language_code TEXT, ' + 'subtitle_codec TEXT, stream_bitrate INTEGER, stream_video_resolution TEXT, quality_profile TEXT, ' 'stream_container_decision TEXT, stream_container TEXT, ' 'stream_video_decision TEXT, stream_video_codec TEXT, stream_video_bitrate INTEGER, stream_video_width INTEGER, ' 'stream_video_height INTEGER, stream_video_framerate TEXT, stream_video_scan_type TEXT, stream_video_full_resolution TEXT, ' 'stream_video_dynamic_range TEXT, ' - 'stream_audio_decision TEXT, stream_audio_codec TEXT, stream_audio_bitrate INTEGER, stream_audio_channels INTEGER, stream_audio_language TEXT, ' + 'stream_audio_decision TEXT, stream_audio_codec TEXT, stream_audio_bitrate INTEGER, stream_audio_channels INTEGER, ' + 'stream_audio_language TEXT, stream_audio_language_code TEXT, ' 'subtitles INTEGER, stream_subtitle_decision TEXT, stream_subtitle_codec TEXT, ' 'transcode_protocol TEXT, transcode_container TEXT, ' 'transcode_video_codec TEXT, transcode_audio_codec TEXT, transcode_audio_channels INTEGER,' @@ -656,8 +657,8 @@ def dbcheck(): 'container TEXT, bitrate INTEGER, width INTEGER, height INTEGER, video_bitrate INTEGER, video_bit_depth INTEGER, ' 'video_codec TEXT, video_codec_level TEXT, video_width INTEGER, video_height INTEGER, video_resolution TEXT, ' 'video_framerate TEXT, video_scan_type TEXT, video_full_resolution TEXT, video_dynamic_range TEXT, aspect_ratio TEXT, ' - 'audio_bitrate INTEGER, audio_codec TEXT, audio_channels INTEGER, audio_language TEXT, transcode_protocol TEXT, ' - 'transcode_container TEXT, transcode_video_codec TEXT, transcode_audio_codec TEXT, ' + 'audio_bitrate INTEGER, audio_codec TEXT, audio_channels INTEGER, audio_language TEXT, audio_language_code TEXT, ' + 'transcode_protocol TEXT, transcode_container TEXT, transcode_video_codec TEXT, transcode_audio_codec TEXT, ' 'transcode_audio_channels INTEGER, transcode_width INTEGER, transcode_height INTEGER, ' 'transcode_hw_requested INTEGER, transcode_hw_full_pipeline INTEGER, ' 'transcode_hw_decode TEXT, transcode_hw_decode_title TEXT, transcode_hw_decoding INTEGER, ' @@ -666,7 +667,8 @@ def dbcheck(): 'stream_video_decision TEXT, stream_video_bitrate INTEGER, stream_video_codec TEXT, stream_video_codec_level TEXT, ' 'stream_video_bit_depth INTEGER, stream_video_height INTEGER, stream_video_width INTEGER, stream_video_resolution TEXT, ' 'stream_video_framerate TEXT, stream_video_scan_type TEXT, stream_video_full_resolution TEXT, stream_video_dynamic_range TEXT, ' - 'stream_audio_decision TEXT, stream_audio_codec TEXT, stream_audio_bitrate INTEGER, stream_audio_channels INTEGER, stream_audio_language TEXT, ' + 'stream_audio_decision TEXT, stream_audio_codec TEXT, stream_audio_bitrate INTEGER, stream_audio_channels INTEGER, ' + 'stream_audio_language TEXT, stream_audio_language_code TEXT, ' 'stream_subtitle_decision TEXT, stream_subtitle_codec TEXT, stream_subtitle_container TEXT, stream_subtitle_forced INTEGER, ' 'subtitles INTEGER, subtitle_codec TEXT, synced_version INTEGER, synced_version_profile TEXT, ' 'optimized_version INTEGER, optimized_version_profile TEXT, optimized_version_title TEXT)' @@ -1332,9 +1334,15 @@ def dbcheck(): c_db.execute( 'ALTER TABLE sessions ADD COLUMN audio_language TEXT' ) + c_db.execute( + 'ALTER TABLE sessions ADD COLUMN audio_language_code TEXT' + ) c_db.execute( 'ALTER TABLE sessions ADD COLUMN stream_audio_language TEXT' ) + c_db.execute( + 'ALTER TABLE sessions ADD COLUMN stream_audio_language_code TEXT' + ) # Upgrade session_history table from earlier versions try: @@ -1730,11 +1738,17 @@ def dbcheck(): except sqlite3.OperationalError: logger.debug("Altering database. Updating database table session_history_media_info.") c_db.execute( - 'ALTER TABLE session_history_media_info ADD COLUMN audio_language TEXT ' + 'ALTER TABLE session_history_media_info ADD COLUMN audio_language TEXT' ) c_db.execute( - 'ALTER TABLE session_history_media_info ADD COLUMN stream_audio_language TEXT ' + 'ALTER TABLE session_history_media_info ADD COLUMN audio_language_code TEXT' ) + c_db.execute( + 'ALTER TABLE session_history_media_info ADD COLUMN stream_audio_language TEXT' + ) + c_db.execute( + 'ALTER TABLE session_history_media_info ADD COLUMN stream_audio_language_code TEXT' + ) # Upgrade users table from earlier versions try: diff --git a/plexpy/activity_processor.py b/plexpy/activity_processor.py index 9ab7771c..3667953c 100644 --- a/plexpy/activity_processor.py +++ b/plexpy/activity_processor.py @@ -100,6 +100,7 @@ class ActivityProcessor(object): 'audio_bitrate': session.get('audio_bitrate', ''), 'audio_channels': session.get('audio_channels', ''), 'audio_language': session.get('audio_language', ''), + 'audio_language_code': session.get('audio_language_code', ''), 'subtitle_codec': session.get('subtitle_codec', ''), 'transcode_protocol': session.get('transcode_protocol', ''), 'transcode_container': session.get('transcode_container', ''), @@ -134,6 +135,7 @@ class ActivityProcessor(object): 'stream_audio_bitrate': session.get('stream_audio_bitrate', ''), 'stream_audio_channels': session.get('stream_audio_channels', ''), 'stream_audio_language': session.get('stream_audio_language', ''), + 'stream_audio_language_code': session.get('stream_audio_language_code'), 'stream_subtitle_decision': session.get('stream_subtitle_decision', ''), 'stream_subtitle_codec': session.get('stream_subtitle_codec', ''), 'subtitles': session.get('subtitles', 0), @@ -419,6 +421,7 @@ class ActivityProcessor(object): 'audio_bitrate': session['audio_bitrate'], 'audio_channels': session['audio_channels'], 'audio_language': session['audio_language'], + 'audio_language_code': session['audio_language_code'], 'subtitle_codec': session['subtitle_codec'], 'transcode_protocol': session['transcode_protocol'], 'transcode_container': session['transcode_container'], @@ -455,6 +458,7 @@ class ActivityProcessor(object): 'stream_audio_bitrate': session['stream_audio_bitrate'], 'stream_audio_channels': session['stream_audio_channels'], 'stream_audio_language': session['stream_audio_language'], + 'stream_audio_language_code': session['stream_audio_language_code'], 'stream_subtitle_decision': session['stream_subtitle_decision'], 'stream_subtitle_codec': session['stream_subtitle_codec'], 'stream_subtitle_container': session['stream_subtitle_container'], diff --git a/plexpy/datafactory.py b/plexpy/datafactory.py index b3484e83..901b9eb4 100644 --- a/plexpy/datafactory.py +++ b/plexpy/datafactory.py @@ -957,11 +957,12 @@ class DataFactory(object): 'synced_version, synced_version_profile, ' \ 'container, video_codec, video_bitrate, video_width, video_height, video_framerate, ' \ 'video_dynamic_range, aspect_ratio, ' \ - 'audio_codec, audio_bitrate, audio_channels, audio_language, subtitle_codec, ' \ + 'audio_codec, audio_bitrate, audio_channels, audio_language, audio_language_code, subtitle_codec, ' \ 'stream_bitrate, stream_video_full_resolution, quality_profile, stream_container_decision, stream_container, ' \ 'stream_video_decision, stream_video_codec, stream_video_bitrate, stream_video_width, stream_video_height, ' \ 'stream_video_framerate, stream_video_dynamic_range, ' \ - 'stream_audio_decision, stream_audio_codec, stream_audio_bitrate, stream_audio_channels, stream_audio_language, ' \ + 'stream_audio_decision, stream_audio_codec, stream_audio_bitrate, stream_audio_channels, ' \ + 'stream_audio_language, stream_audio_language_code, ' \ 'subtitles, stream_subtitle_decision, stream_subtitle_codec, ' \ 'transcode_hw_decoding, transcode_hw_encoding, ' \ 'video_decision, audio_decision, transcode_decision, width, height, container, ' \ @@ -979,11 +980,12 @@ class DataFactory(object): 'synced_version, synced_version_profile, ' \ 'container, video_codec, video_bitrate, video_width, video_height, video_framerate, ' \ 'video_dynamic_range, aspect_ratio, ' \ - 'audio_codec, audio_bitrate, audio_channels, audio_language, subtitle_codec, ' \ + 'audio_codec, audio_bitrate, audio_channels, audio_language, audio_language_code, subtitle_codec, ' \ 'stream_bitrate, stream_video_full_resolution, quality_profile, stream_container_decision, stream_container, ' \ 'stream_video_decision, stream_video_codec, stream_video_bitrate, stream_video_width, stream_video_height, ' \ 'stream_video_framerate, stream_video_dynamic_range, ' \ - 'stream_audio_decision, stream_audio_codec, stream_audio_bitrate, stream_audio_channels, stream_audio_language, ' \ + 'stream_audio_decision, stream_audio_codec, stream_audio_bitrate, stream_audio_channels, ' \ + 'stream_audio_language, stream_audio_language_code, ' \ 'subtitles, stream_subtitle_decision, stream_subtitle_codec, ' \ 'transcode_hw_decoding, transcode_hw_encoding, ' \ 'video_decision, audio_decision, transcode_decision, width, height, container, ' \ @@ -1035,6 +1037,7 @@ class DataFactory(object): 'audio_bitrate': item['audio_bitrate'], 'audio_channels': item['audio_channels'], 'audio_language': item['audio_language'], + 'audio_language_code': item['audio_language_code'], 'subtitle_codec': item['subtitle_codec'], 'stream_bitrate': item['stream_bitrate'], 'stream_video_full_resolution': item['stream_video_full_resolution'], @@ -1053,6 +1056,7 @@ class DataFactory(object): 'stream_audio_bitrate': item['stream_audio_bitrate'], 'stream_audio_channels': item['stream_audio_channels'], 'stream_audio_language': item['stream_audio_language'], + 'stream_audio_language_code': item['stream_audio_language_code'], 'subtitles': item['subtitles'], 'stream_subtitle_decision': item['stream_subtitle_decision'], 'stream_subtitle_codec': item['stream_subtitle_codec'], diff --git a/plexpy/webserve.py b/plexpy/webserve.py index aa41c870..e2bb33c9 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -1999,6 +1999,7 @@ class WebInterface(object): "audio_bitrate": 231, "audio_channels": 6, "audio_language": "English", + "audio_language_code": "eng", "audio_codec": "aac", "audio_decision": "transcode", "bitrate": 2731, @@ -2015,6 +2016,7 @@ class WebInterface(object): "stream_audio_bitrate": 203, "stream_audio_channels": 2, "stream_audio_language": "English", + "stream_audio_language_code", "eng", "stream_audio_codec": "aac", "stream_audio_decision": "transcode", "stream_bitrate": 730,