Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
fc98e2f052 | ||
![]() |
bedcfa9520 | ||
![]() |
bb152b590b | ||
![]() |
3623732cf7 | ||
![]() |
05ba89f164 | ||
![]() |
cee656a053 | ||
![]() |
cfc7d529e1 | ||
![]() |
a93dc68e6c | ||
![]() |
2d91cfd3db |
13
CHANGELOG.md
13
CHANGELOG.md
@@ -1,5 +1,18 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## v1.4.4 (2016-05-24)
|
||||||
|
|
||||||
|
* Fix: Image queries crashing the PMS when playing clips from channels.
|
||||||
|
* Fix: Plexivity import if IP address is missing.
|
||||||
|
* Fix: Tooltips shown behind the datatable headers.
|
||||||
|
* Fix: Current activity instances rendered in a random order causing them to jump around.
|
||||||
|
|
||||||
|
|
||||||
|
## v1.4.3 (2016-05-22)
|
||||||
|
|
||||||
|
* Fix: PlexPy not starting without any authentication method.
|
||||||
|
|
||||||
|
|
||||||
## v1.4.2 (2016-05-22)
|
## v1.4.2 (2016-05-22)
|
||||||
|
|
||||||
* New: Option to use HTTP basic authentication instead of the HTML login form.
|
* New: Option to use HTTP basic authentication instead of the HTML login form.
|
||||||
|
@@ -61,6 +61,8 @@ DOCUMENTATION :: END
|
|||||||
|
|
||||||
% if data is not None:
|
% if data is not None:
|
||||||
<%
|
<%
|
||||||
|
from urllib import quote
|
||||||
|
|
||||||
from plexpy import helpers
|
from plexpy import helpers
|
||||||
data['indexes'] = helpers.cast_to_int(data['indexes'])
|
data['indexes'] = helpers.cast_to_int(data['indexes'])
|
||||||
%>
|
%>
|
||||||
@@ -90,9 +92,11 @@ DOCUMENTATION :: END
|
|||||||
<div class="dashboard-activity-poster-face" style="background-image: url(${data['thumb']});"></div>
|
<div class="dashboard-activity-poster-face" style="background-image: url(${data['thumb']});"></div>
|
||||||
% else:
|
% else:
|
||||||
% if data['art']:
|
% if data['art']:
|
||||||
<div class="dashboard-activity-poster-face" style="background-image: url(pms_image_proxy?img=${data['art']}&width=500&height=280&fallback=art);"></div>
|
<!--Hacky solution to escape the image url until I come up with something better-->
|
||||||
|
<div class="dashboard-activity-poster-face" style="background-image: url(pms_image_proxy?img=${quote(data['art'])}&width=500&height=280&fallback=art);"></div>
|
||||||
% else:
|
% else:
|
||||||
<div class="dashboard-activity-poster-face" style="background-image: url(pms_image_proxy?img=${data['thumb']}&width=500&height=280&fallback=art);"></div>
|
<!--Hacky solution to escape the image url until I come up with something better-->
|
||||||
|
<div class="dashboard-activity-poster-face" style="background-image: url(pms_image_proxy?img=${quote(data['thumb'])}&width=500&height=280&fallback=art);"></div>
|
||||||
% endif
|
% endif
|
||||||
% endif
|
% endif
|
||||||
% elif data['media_type'] == 'photo':
|
% elif data['media_type'] == 'photo':
|
||||||
|
@@ -448,10 +448,10 @@ function childTableOptions(rowData) {
|
|||||||
|
|
||||||
// Create the tooltips.
|
// Create the tooltips.
|
||||||
$('.expand-history-tooltip').tooltip({ container: 'body' });
|
$('.expand-history-tooltip').tooltip({ container: 'body' });
|
||||||
$('.external-ip-tooltip').tooltip();
|
$('.external-ip-tooltip').tooltip({ container: 'body' });
|
||||||
$('.transcode-tooltip').tooltip();
|
$('.transcode-tooltip').tooltip({ container: 'body' });
|
||||||
$('.media-type-tooltip').tooltip();
|
$('.media-type-tooltip').tooltip({ container: 'body' });
|
||||||
$('.watched-tooltip').tooltip();
|
$('.watched-tooltip').tooltip({ container: 'body' });
|
||||||
$('.thumb-tooltip').popover({
|
$('.thumb-tooltip').popover({
|
||||||
html: true,
|
html: true,
|
||||||
container: 'body',
|
container: 'body',
|
||||||
|
@@ -132,8 +132,8 @@ history_table_modal_options = {
|
|||||||
$('#ajaxMsg').fadeOut();
|
$('#ajaxMsg').fadeOut();
|
||||||
|
|
||||||
// Create the tooltips.
|
// Create the tooltips.
|
||||||
$('.transcode-tooltip').tooltip();
|
$('.transcode-tooltip').tooltip({ container: 'body' });
|
||||||
$('.media-type-tooltip').tooltip();
|
$('.media-type-tooltip').tooltip({ container: 'body' });
|
||||||
$('.thumb-tooltip').popover({
|
$('.thumb-tooltip').popover({
|
||||||
html: true,
|
html: true,
|
||||||
container: '#history-modal',
|
container: '#history-modal',
|
||||||
|
@@ -217,10 +217,10 @@ libraries_list_table_options = {
|
|||||||
$('#ajaxMsg').fadeOut();
|
$('#ajaxMsg').fadeOut();
|
||||||
|
|
||||||
// Create the tooltips.
|
// Create the tooltips.
|
||||||
$('.purge-tooltip').tooltip();
|
$('.purge-tooltip').tooltip({ container: 'body' });
|
||||||
$('.edit-tooltip').tooltip();
|
$('.edit-tooltip').tooltip({ container: 'body' });
|
||||||
$('.transcode-tooltip').tooltip();
|
$('.transcode-tooltip').tooltip({ container: 'body' });
|
||||||
$('.media-type-tooltip').tooltip();
|
$('.media-type-tooltip').tooltip({ container: 'body' });
|
||||||
$('.thumb-tooltip').popover({
|
$('.thumb-tooltip').popover({
|
||||||
html: true,
|
html: true,
|
||||||
container: 'body',
|
container: 'body',
|
||||||
|
@@ -220,13 +220,14 @@ users_list_table_options = {
|
|||||||
$('#ajaxMsg').fadeOut();
|
$('#ajaxMsg').fadeOut();
|
||||||
|
|
||||||
// Create the tooltips.
|
// Create the tooltips.
|
||||||
$('.purge-tooltip').tooltip();
|
$('.purge-tooltip').tooltip({ container: 'body' });
|
||||||
$('.edit-tooltip').tooltip();
|
$('.edit-tooltip').tooltip({ container: 'body' });
|
||||||
$('.transcode-tooltip').tooltip();
|
$('.transcode-tooltip').tooltip({ container: 'body' });
|
||||||
$('.media-type-tooltip').tooltip();
|
$('.media-type-tooltip').tooltip({ container: 'body' });
|
||||||
$('.watched-tooltip').tooltip();
|
$('.watched-tooltip').tooltip({ container: 'body' });
|
||||||
$('.thumb-tooltip').popover({
|
$('.thumb-tooltip').popover({
|
||||||
html: true,
|
html: true,
|
||||||
|
container: 'body',
|
||||||
trigger: 'hover',
|
trigger: 'hover',
|
||||||
placement: 'right',
|
placement: 'right',
|
||||||
template: '<div class="popover history-thumbnail-popover" role="tooltip"><div class="arrow" style="top: 50%;"></div><div class="popover-content"></div></div>',
|
template: '<div class="popover history-thumbnail-popover" role="tooltip"><div class="arrow" style="top: 50%;"></div><div class="popover-content"></div></div>',
|
||||||
|
@@ -100,6 +100,7 @@ def extract_plexivity_xml(xml=None):
|
|||||||
video_resolution = helpers.get_xml_attr(c, 'videoResolution')
|
video_resolution = helpers.get_xml_attr(c, 'videoResolution')
|
||||||
width = helpers.get_xml_attr(c, 'width')
|
width = helpers.get_xml_attr(c, 'width')
|
||||||
|
|
||||||
|
ip_address = ''
|
||||||
machine_id = ''
|
machine_id = ''
|
||||||
platform = ''
|
platform = ''
|
||||||
player = ''
|
player = ''
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
# along with PlexPy. If not, see <http://www.gnu.org/licenses/>.
|
# along with PlexPy. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import threading
|
import threading
|
||||||
import urllib2
|
import urllib
|
||||||
from urlparse import urlparse
|
from urlparse import urlparse
|
||||||
|
|
||||||
import plexpy
|
import plexpy
|
||||||
@@ -387,7 +387,7 @@ class PmsConnect(object):
|
|||||||
|
|
||||||
Output: array
|
Output: array
|
||||||
"""
|
"""
|
||||||
uri = '/search?query=' + urllib2.quote(query.encode('utf8')) + track
|
uri = '/search?query=' + urllib.quote(query.encode('utf8')) + track
|
||||||
request = self.request_handler.make_request(uri=uri,
|
request = self.request_handler.make_request(uri=uri,
|
||||||
proto=self.protocol,
|
proto=self.protocol,
|
||||||
request_type='GET',
|
request_type='GET',
|
||||||
@@ -1021,6 +1021,8 @@ class PmsConnect(object):
|
|||||||
session_output = self.get_session_each(session_type, session_)
|
session_output = self.get_session_each(session_type, session_)
|
||||||
session_list.append(session_output)
|
session_list.append(session_output)
|
||||||
|
|
||||||
|
session_list = sorted(session_list, key=lambda k: k['session_key'])
|
||||||
|
|
||||||
output = {'stream_count': helpers.get_xml_attr(xml_head[0], 'size'),
|
output = {'stream_count': helpers.get_xml_attr(xml_head[0], 'size'),
|
||||||
'sessions': session.mask_session_info(session_list)
|
'sessions': session.mask_session_info(session_list)
|
||||||
}
|
}
|
||||||
@@ -1902,10 +1904,12 @@ class PmsConnect(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
if img:
|
if img:
|
||||||
uri = '/photo/:/transcode?url=http://127.0.0.1:32400%s' % img
|
params = {'url': plexpy.CONFIG.PMS_URL + img}
|
||||||
if width.isdigit() and height.isdigit():
|
if width.isdigit() and height.isdigit():
|
||||||
uri += '&width=%s&height=%s' % (width, height)
|
params['width'] = width
|
||||||
|
params['height'] = height
|
||||||
|
|
||||||
|
uri = '/photo/:/transcode?%s' % urllib.urlencode(params)
|
||||||
result = self.request_handler.make_request(uri=uri,
|
result = self.request_handler.make_request(uri=uri,
|
||||||
proto=self.protocol,
|
proto=self.protocol,
|
||||||
request_type='GET',
|
request_type='GET',
|
||||||
|
@@ -1,2 +1,2 @@
|
|||||||
PLEXPY_VERSION = "master"
|
PLEXPY_VERSION = "master"
|
||||||
PLEXPY_RELEASE_VERSION = "1.4.2"
|
PLEXPY_RELEASE_VERSION = "1.4.4"
|
||||||
|
@@ -74,7 +74,7 @@ def initialize(options):
|
|||||||
basic_auth_enabled = False
|
basic_auth_enabled = False
|
||||||
cherrypy.tools.auth = cherrypy.Tool('before_handler', webauth.check_auth)
|
cherrypy.tools.auth = cherrypy.Tool('before_handler', webauth.check_auth)
|
||||||
else:
|
else:
|
||||||
auth_enabled = session_enabled = False
|
auth_enabled = session_enabled = basic_auth_enabled = False
|
||||||
|
|
||||||
if not options['http_root'] or options['http_root'] == '/':
|
if not options['http_root'] or options['http_root'] == '/':
|
||||||
plexpy.HTTP_ROOT = options['http_root'] = '/'
|
plexpy.HTTP_ROOT = options['http_root'] = '/'
|
||||||
|
Reference in New Issue
Block a user