Merge branch 'dev' of https://github.com/drzoidberg33/plexpy into dev
11
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.
|
||||
|
|
42
ISSUE_TEMPLATE.md
Normal file
|
@ -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:
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 391 KiB After Width: | Height: | Size: 349 KiB |
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 148 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 5.2 MiB After Width: | Height: | Size: 4.4 MiB |
Before Width: | Height: | Size: 5.2 MiB After Width: | Height: | Size: 4.5 MiB |
Before Width: | Height: | Size: 6.2 MiB After Width: | Height: | Size: 4.7 MiB |
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 6.2 MiB After Width: | Height: | Size: 4.6 MiB |
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 977 KiB After Width: | Height: | Size: 788 KiB |
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 167 KiB |
Before Width: | Height: | Size: 457 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 461 KiB After Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 455 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 458 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 456 KiB After Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 460 KiB After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 466 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 457 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 463 KiB After Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 458 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 464 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 454 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 456 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 456 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 461 KiB After Width: | Height: | Size: 7.4 KiB |
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
PLEXPY_VERSION = "master"
|
||||
PLEXPY_RELEASE_VERSION = "1.3.14"
|
||||
PLEXPY_RELEASE_VERSION = "1.3.15"
|
||||
|
|