diff --git a/CHANGELOG.md b/CHANGELOG.md index b12797c8..00ea57c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## v1.3.15 (2016-04-18) + +* Fix: Slack notifications failing when using and icon URL. +* Fix: 127.0.0.1 showing as an external IP address on the history tables. +* Fix: Regression file sizes not shown in the media info table footer. +* Fix: Retrieving proper PMS URL when multiple connections are published to plex.tv. +* Fix: Some typos in the logger. +* Fix: Some other typos in the WebUI. (Thanks @xtjoeytx) +* Change: Optimized mobile web app icons and spash screens. (Thanks @alotufo) + + ## v1.3.14 (2016-03-29) * Fix: Regression for missing notify_action for script notifications. diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..e297ffb1 --- /dev/null +++ b/ISSUE_TEMPLATE.md @@ -0,0 +1,42 @@ +### Reporting Issues: + +To ensure that a develpoer has enough information to work with please include all of the following information. + +**Use proper markdown syntax to structure your post (i.e. code/log in code blocks).** + +**Make sure you provide the following information below:** +- [ ] Version + + +- [ ] Branch + + +- [ ] Commit hash + + +- [ ] Operating system + + +- [ ] Python version + + +- [ ] What you did? + + +- [ ] What happened? + + +- [ ] What you expected? + + +- [ ] How can we reproduce your issue? + + +- [ ] What are your (relevant) settings? + + +- [ ] Include a link to your **FULL** (not just a few lines!) log file that has the error. Please use [Gist](http://gist.github.com) or [Pastebin](http://pastebin.com/). + +Close your issue when it's solved! If you found the solution yourself please comment so that others benefit from it. + +#### Link to log: diff --git a/data/interfaces/default/images/res/android/icon-192x192.png b/data/interfaces/default/images/res/android/icon-192x192.png index 74d45cff..d9463138 100644 Binary files a/data/interfaces/default/images/res/android/icon-192x192.png and b/data/interfaces/default/images/res/android/icon-192x192.png differ diff --git a/data/interfaces/default/images/res/android/icon-256x256.png b/data/interfaces/default/images/res/android/icon-256x256.png index b323831c..499bef58 100644 Binary files a/data/interfaces/default/images/res/android/icon-256x256.png and b/data/interfaces/default/images/res/android/icon-256x256.png differ diff --git a/data/interfaces/default/images/res/android/icon-512x512.png b/data/interfaces/default/images/res/android/icon-512x512.png index 565f5fac..8f048387 100644 Binary files a/data/interfaces/default/images/res/android/icon-512x512.png and b/data/interfaces/default/images/res/android/icon-512x512.png differ diff --git a/data/interfaces/default/images/res/ie10/large.png b/data/interfaces/default/images/res/ie10/large.png index 10ce5ca2..f0940edf 100644 Binary files a/data/interfaces/default/images/res/ie10/large.png and b/data/interfaces/default/images/res/ie10/large.png differ diff --git a/data/interfaces/default/images/res/ie10/square.png b/data/interfaces/default/images/res/ie10/square.png index bd4e9473..52f146eb 100644 Binary files a/data/interfaces/default/images/res/ie10/square.png and b/data/interfaces/default/images/res/ie10/square.png differ diff --git a/data/interfaces/default/images/res/ie10/tiny.png b/data/interfaces/default/images/res/ie10/tiny.png index 1f5a34dc..0103c427 100644 Binary files a/data/interfaces/default/images/res/ie10/tiny.png and b/data/interfaces/default/images/res/ie10/tiny.png differ diff --git a/data/interfaces/default/images/res/ie10/wide.png b/data/interfaces/default/images/res/ie10/wide.png index 6936f1ee..4be86153 100644 Binary files a/data/interfaces/default/images/res/ie10/wide.png and b/data/interfaces/default/images/res/ie10/wide.png differ diff --git a/data/interfaces/default/images/res/ios/Default-667h.png b/data/interfaces/default/images/res/ios/Default-667h.png index f6b0667d..da7d5b3c 100644 Binary files a/data/interfaces/default/images/res/ios/Default-667h.png and b/data/interfaces/default/images/res/ios/Default-667h.png differ diff --git a/data/interfaces/default/images/res/ios/Default-736h.png b/data/interfaces/default/images/res/ios/Default-736h.png index 64a03539..a3b079d5 100644 Binary files a/data/interfaces/default/images/res/ios/Default-736h.png and b/data/interfaces/default/images/res/ios/Default-736h.png differ diff --git a/data/interfaces/default/images/res/ios/Default-Landscape-736h.png b/data/interfaces/default/images/res/ios/Default-Landscape-736h.png index df79c627..bd69001c 100644 Binary files a/data/interfaces/default/images/res/ios/Default-Landscape-736h.png and b/data/interfaces/default/images/res/ios/Default-Landscape-736h.png differ diff --git a/data/interfaces/default/images/res/ios/Default-Landscape@2x~ipad.png b/data/interfaces/default/images/res/ios/Default-Landscape@2x~ipad.png index b0218ebe..6616eeb5 100644 Binary files a/data/interfaces/default/images/res/ios/Default-Landscape@2x~ipad.png and b/data/interfaces/default/images/res/ios/Default-Landscape@2x~ipad.png differ diff --git a/data/interfaces/default/images/res/ios/Default-Landscape~ipad.png b/data/interfaces/default/images/res/ios/Default-Landscape~ipad.png index 3a01b9bf..627cdc8b 100644 Binary files a/data/interfaces/default/images/res/ios/Default-Landscape~ipad.png and b/data/interfaces/default/images/res/ios/Default-Landscape~ipad.png differ diff --git a/data/interfaces/default/images/res/ios/Default-Portrait@2x~ipad.png b/data/interfaces/default/images/res/ios/Default-Portrait@2x~ipad.png index 5aee4e79..530bc6e9 100644 Binary files a/data/interfaces/default/images/res/ios/Default-Portrait@2x~ipad.png and b/data/interfaces/default/images/res/ios/Default-Portrait@2x~ipad.png differ diff --git a/data/interfaces/default/images/res/ios/Default-Portrait~ipad.png b/data/interfaces/default/images/res/ios/Default-Portrait~ipad.png index a82b3483..ddf0b216 100644 Binary files a/data/interfaces/default/images/res/ios/Default-Portrait~ipad.png and b/data/interfaces/default/images/res/ios/Default-Portrait~ipad.png differ diff --git a/data/interfaces/default/images/res/ios/Default-portrait@2x~iphone5.jpg b/data/interfaces/default/images/res/ios/Default-portrait@2x~iphone5.jpg index 1828858e..e4fe6de2 100644 Binary files a/data/interfaces/default/images/res/ios/Default-portrait@2x~iphone5.jpg and b/data/interfaces/default/images/res/ios/Default-portrait@2x~iphone5.jpg differ diff --git a/data/interfaces/default/images/res/ios/Default@2x~iphone.png b/data/interfaces/default/images/res/ios/Default@2x~iphone.png index 0896e7e0..e7fe4cdb 100644 Binary files a/data/interfaces/default/images/res/ios/Default@2x~iphone.png and b/data/interfaces/default/images/res/ios/Default@2x~iphone.png differ diff --git a/data/interfaces/default/images/res/ios/Default~iphone.png b/data/interfaces/default/images/res/ios/Default~iphone.png index 643fe44a..c9f48448 100644 Binary files a/data/interfaces/default/images/res/ios/Default~iphone.png and b/data/interfaces/default/images/res/ios/Default~iphone.png differ diff --git a/data/interfaces/default/images/res/ios/Icon-60.png b/data/interfaces/default/images/res/ios/Icon-60.png index 3c3bcc9f..8b4c1fad 100644 Binary files a/data/interfaces/default/images/res/ios/Icon-60.png and b/data/interfaces/default/images/res/ios/Icon-60.png differ diff --git a/data/interfaces/default/images/res/ios/Icon-60@2x.png b/data/interfaces/default/images/res/ios/Icon-60@2x.png index be94b902..5f7c5451 100644 Binary files a/data/interfaces/default/images/res/ios/Icon-60@2x.png and b/data/interfaces/default/images/res/ios/Icon-60@2x.png differ diff --git a/data/interfaces/default/images/res/ios/Icon-Small-40.png b/data/interfaces/default/images/res/ios/Icon-Small-40.png index 983ffdc7..a7853107 100644 Binary files a/data/interfaces/default/images/res/ios/Icon-Small-40.png and b/data/interfaces/default/images/res/ios/Icon-Small-40.png differ diff --git a/data/interfaces/default/images/res/ios/Icon-Small-40@2x.png b/data/interfaces/default/images/res/ios/Icon-Small-40@2x.png index c75e353a..cfbaf869 100644 Binary files a/data/interfaces/default/images/res/ios/Icon-Small-40@2x.png and b/data/interfaces/default/images/res/ios/Icon-Small-40@2x.png differ diff --git a/data/interfaces/default/images/res/ios/Icon-Small-50.png b/data/interfaces/default/images/res/ios/Icon-Small-50.png index 076e8b57..d8722429 100644 Binary files a/data/interfaces/default/images/res/ios/Icon-Small-50.png and b/data/interfaces/default/images/res/ios/Icon-Small-50.png differ diff --git a/data/interfaces/default/images/res/ios/Icon-Small-50@2x.png b/data/interfaces/default/images/res/ios/Icon-Small-50@2x.png index eebb3610..0c21aac5 100644 Binary files a/data/interfaces/default/images/res/ios/Icon-Small-50@2x.png and b/data/interfaces/default/images/res/ios/Icon-Small-50@2x.png differ diff --git a/data/interfaces/default/images/res/ios/icon-60@3x.png b/data/interfaces/default/images/res/ios/icon-60@3x.png index a78ade06..64ec3b45 100644 Binary files a/data/interfaces/default/images/res/ios/icon-60@3x.png and b/data/interfaces/default/images/res/ios/icon-60@3x.png differ diff --git a/data/interfaces/default/images/res/ios/icon-72.png b/data/interfaces/default/images/res/ios/icon-72.png index 085086ca..2f645678 100644 Binary files a/data/interfaces/default/images/res/ios/icon-72.png and b/data/interfaces/default/images/res/ios/icon-72.png differ diff --git a/data/interfaces/default/images/res/ios/icon-72@2x.png b/data/interfaces/default/images/res/ios/icon-72@2x.png index 86020a08..d706894d 100644 Binary files a/data/interfaces/default/images/res/ios/icon-72@2x.png and b/data/interfaces/default/images/res/ios/icon-72@2x.png differ diff --git a/data/interfaces/default/images/res/ios/icon-76.png b/data/interfaces/default/images/res/ios/icon-76.png index cc89bb38..7c16c8d3 100644 Binary files a/data/interfaces/default/images/res/ios/icon-76.png and b/data/interfaces/default/images/res/ios/icon-76.png differ diff --git a/data/interfaces/default/images/res/ios/icon-76@2x.png b/data/interfaces/default/images/res/ios/icon-76@2x.png index c401e1e3..cfce1370 100644 Binary files a/data/interfaces/default/images/res/ios/icon-76@2x.png and b/data/interfaces/default/images/res/ios/icon-76@2x.png differ diff --git a/data/interfaces/default/images/res/ios/icon-small.png b/data/interfaces/default/images/res/ios/icon-small.png index 98ad91a8..1dde4359 100644 Binary files a/data/interfaces/default/images/res/ios/icon-small.png and b/data/interfaces/default/images/res/ios/icon-small.png differ diff --git a/data/interfaces/default/images/res/ios/icon-small@2x.png b/data/interfaces/default/images/res/ios/icon-small@2x.png index 5437d71d..00e27ca4 100644 Binary files a/data/interfaces/default/images/res/ios/icon-small@2x.png and b/data/interfaces/default/images/res/ios/icon-small@2x.png differ diff --git a/data/interfaces/default/images/res/ios/icon.png b/data/interfaces/default/images/res/ios/icon.png index ed2e37ae..bbe81708 100644 Binary files a/data/interfaces/default/images/res/ios/icon.png and b/data/interfaces/default/images/res/ios/icon.png differ diff --git a/data/interfaces/default/images/res/ios/icon@2x.png b/data/interfaces/default/images/res/ios/icon@2x.png index 1d88fa9e..39bc448a 100644 Binary files a/data/interfaces/default/images/res/ios/icon@2x.png and b/data/interfaces/default/images/res/ios/icon@2x.png differ diff --git a/data/interfaces/default/js/script.js b/data/interfaces/default/js/script.js index 5eac0f22..2c8a9a14 100644 --- a/data/interfaces/default/js/script.js +++ b/data/interfaces/default/js/script.js @@ -39,7 +39,6 @@ function showMsg(msg,loader,timeout,ms,error) { } if (error) { feedback.css("background-color", "rgba(255,0,0,0.5)"); - console.log('is error'); } $(feedback).html(message); feedback.fadeIn(); @@ -48,7 +47,8 @@ function showMsg(msg,loader,timeout,ms,error) { setTimeout(function(){ message.fadeOut(function(){ $(this).remove(); - feedback.fadeOut(); + feedback.fadeOut(); + feedback.css("background-color", ""); }); },ms); } @@ -242,7 +242,8 @@ function isPrivateIP(ip_address) { // get IPv4 mapped address (xxx.xxx.xxx.xxx) from IPv6 addresss (::ffff:xxx.xxx.xxx.xxx) var parts = ip_address.split(":"); var parts = parts[parts.length - 1].split('.'); - if (parts[0] === '10' || + if ((parts[0] === '127' && parts[1] === '0' && parts[2] === '0' && parts[3] === '1') || + (parts[0] === '10') || (parts[0] === '172' && (parseInt(parts[1], 10) >= 16 && parseInt(parts[1], 10) <= 31)) || (parts[0] === '192' && parts[1] === '168')) { return true; diff --git a/plexpy/notifiers.py b/plexpy/notifiers.py index 38b51d9c..95421229 100644 --- a/plexpy/notifiers.py +++ b/plexpy/notifiers.py @@ -1776,7 +1776,7 @@ class SLACK(object): if urlparse(self.icon_emoji).scheme == '': data['icon_emoji'] = self.icon_emoji else: - data['icon_url'] = self.icon_url + data['icon_url'] = self.icon_emoji url = urlparse(self.slack_hook).path diff --git a/plexpy/plextv.py b/plexpy/plextv.py index 39b02307..9963509d 100644 --- a/plexpy/plextv.py +++ b/plexpy/plextv.py @@ -71,37 +71,37 @@ def get_real_pms_url(): if plexpy.CONFIG.PMS_SSL: result = PlexTV().get_server_urls(include_https=True) - process_urls = True - elif plexpy.CONFIG.PMS_IS_REMOTE: - result = PlexTV().get_server_urls(include_https=False) - process_urls = True else: result = PlexTV().get_server_urls(include_https=False) - process_urls = False - - if process_urls: - found_url = False + # Only need to retrieve PMS_URL if using SSL + if plexpy.CONFIG.PMS_SSL: if result: - for item in result: - if plexpy.CONFIG.PMS_IS_REMOTE and item['local'] == '0': - found_url = True - plexpy.CONFIG.__setattr__('PMS_URL', item['uri']) - plexpy.CONFIG.write() - logger.info(u"PlexPy PlexTV :: Server URL retrieved.") - if not plexpy.CONFIG.PMS_IS_REMOTE and item['local'] == '1' and 'plex.direct' in item['uri']: - found_url = True - plexpy.CONFIG.__setattr__('PMS_URL', item['uri']) - plexpy.CONFIG.write() - logger.info(u"PlexPy PlexTV :: Server URL retrieved.") + if plexpy.CONFIG.PMS_IS_REMOTE: + # Get all remote connections + connections = [c for c in result if c['local'] == '0' and 'plex.direct' in c['uri']] + else: + # Get all local connections + connections = [c for c in result if c['local'] == '1' and 'plex.direct' in c['uri']] - if not found_url: + if connections: + # Get connection with matching address, otherwise return first connection + conn = next((c for c in connections if c['address'] == plexpy.CONFIG.PMS_IP), connections[0]) + plexpy.CONFIG.__setattr__('PMS_URL', conn['uri']) + plexpy.CONFIG.write() + logger.info(u"PlexPy PlexTV :: Server URL retrieved.") + + # get_server_urls() failed or PMS_URL not found, fallback url doesn't use SSL + if not plexpy.CONFIG.PMS_URL: plexpy.CONFIG.__setattr__('PMS_URL', fallback_url) plexpy.CONFIG.write() - logger.warn(u"PlexPy PlexTV :: Unable to retrieve server URLs. Using user-defined value.") + logger.warn(u"PlexPy PlexTV :: Unable to retrieve server URLs. Using user-defined value without SSL.") + + # Not using SSL, remote has no effect else: plexpy.CONFIG.__setattr__('PMS_URL', fallback_url) plexpy.CONFIG.write() + logger.info(u"PlexPy PlexTV :: Using user-defined URL.") class PlexTV(object): diff --git a/plexpy/pmsconnect.py b/plexpy/pmsconnect.py index 80541d52..a2c63754 100644 --- a/plexpy/pmsconnect.py +++ b/plexpy/pmsconnect.py @@ -939,7 +939,7 @@ class PmsConnect(object): try: xml_head = session_data.getElementsByTagName('MediaContainer') except Exception as e: - logger.warn(u"PlexPy Pmsconnect :: Unable to parse XML for get_sessions: %s." % e) + logger.warn(u"PlexPy Pmsconnect :: Unable to parse XML for get_current_activity: %s." % e) return [] session_list = [] @@ -1348,6 +1348,7 @@ class PmsConnect(object): transcode_container = helpers.get_xml_attr(transcode_session, 'container') transcode_protocol = helpers.get_xml_attr(transcode_session, 'protocol') else: + transcode_key = '' throttled = '0' transcode_progress = '0' transcode_speed = '' diff --git a/plexpy/version.py b/plexpy/version.py index 3d93fffb..5761785f 100644 --- a/plexpy/version.py +++ b/plexpy/version.py @@ -1,2 +1,2 @@ PLEXPY_VERSION = "master" -PLEXPY_RELEASE_VERSION = "1.3.14" +PLEXPY_RELEASE_VERSION = "1.3.15"