Remove Python 2 handling code

This commit is contained in:
Tom Niget 2023-07-08 15:20:14 +02:00 committed by Tom Niget
commit 6b5261fcba
39 changed files with 249 additions and 602 deletions

View file

@ -39,52 +39,27 @@ from apscheduler.triggers.interval import IntervalTrigger
from ga4mp import GtagMP from ga4mp import GtagMP
import pytz import pytz
PYTHON2 = sys.version_info[0] == 2 from plexpy import activity_handler
from plexpy import activity_pinger
if PYTHON2: from plexpy import common
import activity_handler from plexpy import database
import activity_pinger from plexpy import datafactory
import common from plexpy import exporter
import database from plexpy import helpers
import datafactory from plexpy import libraries
import exporter from plexpy import logger
import helpers from plexpy import mobile_app
import libraries from plexpy import newsletters
import logger from plexpy import newsletter_handler
import mobile_app from plexpy import notification_handler
import newsletters from plexpy import notifiers
import newsletter_handler from plexpy import plex
import notification_handler from plexpy import plextv
import notifiers from plexpy import users
import plex from plexpy import versioncheck
import plextv from plexpy import web_socket
import users from plexpy import webstart
import versioncheck from plexpy import config
import web_socket
import webstart
import config
else:
from plexpy import activity_handler
from plexpy import activity_pinger
from plexpy import common
from plexpy import database
from plexpy import datafactory
from plexpy import exporter
from plexpy import helpers
from plexpy import libraries
from plexpy import logger
from plexpy import mobile_app
from plexpy import newsletters
from plexpy import newsletter_handler
from plexpy import notification_handler
from plexpy import notifiers
from plexpy import plex
from plexpy import plextv
from plexpy import users
from plexpy import versioncheck
from plexpy import web_socket
from plexpy import webstart
from plexpy import config
PROG_DIR = None PROG_DIR = None
@ -214,11 +189,10 @@ def initialize(config_file):
logger.initLogger(console=not QUIET, log_dir=CONFIG.LOG_DIR if log_writable else None, logger.initLogger(console=not QUIET, log_dir=CONFIG.LOG_DIR if log_writable else None,
verbose=VERBOSE) verbose=VERBOSE)
if not PYTHON2: os.environ['PLEXAPI_CONFIG_PATH'] = os.path.join(DATA_DIR, 'plexapi.config.ini')
os.environ['PLEXAPI_CONFIG_PATH'] = os.path.join(DATA_DIR, 'plexapi.config.ini') os.environ['PLEXAPI_LOG_PATH'] = os.path.join(CONFIG.LOG_DIR, 'plexapi.log')
os.environ['PLEXAPI_LOG_PATH'] = os.path.join(CONFIG.LOG_DIR, 'plexapi.log') os.environ['PLEXAPI_LOG_LEVEL'] = 'DEBUG'
os.environ['PLEXAPI_LOG_LEVEL'] = 'DEBUG' plex.initialize_plexapi()
plex.initialize_plexapi()
if DOCKER: if DOCKER:
build = '[Docker] ' build = '[Docker] '

View file

@ -25,22 +25,13 @@ from apscheduler.triggers.date import DateTrigger
import pytz import pytz
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import activity_processor
import activity_processor from plexpy import common
import common from plexpy import datafactory
import datafactory from plexpy import helpers
import helpers from plexpy import logger
import logger from plexpy import notification_handler
import notification_handler from plexpy import pmsconnect
import pmsconnect
else:
from plexpy import activity_processor
from plexpy import common
from plexpy import datafactory
from plexpy import helpers
from plexpy import logger
from plexpy import notification_handler
from plexpy import pmsconnect
ACTIVITY_SCHED = None ACTIVITY_SCHED = None

View file

@ -19,28 +19,16 @@ from future.builtins import str
import threading import threading
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import activity_handler
import activity_handler from plexpy import activity_processor
import activity_processor from plexpy import database
import database from plexpy import helpers
import helpers from plexpy import libraries
import libraries from plexpy import logger
import logger from plexpy import notification_handler
import notification_handler from plexpy import plextv
import plextv from plexpy import pmsconnect
import pmsconnect from plexpy import web_socket
import web_socket
else:
from plexpy import activity_handler
from plexpy import activity_processor
from plexpy import database
from plexpy import helpers
from plexpy import libraries
from plexpy import logger
from plexpy import notification_handler
from plexpy import plextv
from plexpy import pmsconnect
from plexpy import web_socket
monitor_lock = threading.Lock() monitor_lock = threading.Lock()

View file

@ -21,20 +21,12 @@ from collections import defaultdict
import json import json
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import database
import database from plexpy import helpers
import helpers from plexpy import libraries
import libraries from plexpy import logger
import logger from plexpy import pmsconnect
import pmsconnect from plexpy import users
import users
else:
from plexpy import database
from plexpy import helpers
from plexpy import libraries
from plexpy import logger
from plexpy import pmsconnect
from plexpy import users
class ActivityProcessor(object): class ActivityProcessor(object):

View file

@ -36,34 +36,19 @@ import cherrypy
import xmltodict import xmltodict
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import common
import common from plexpy import config
import config from plexpy import database
import database from plexpy import helpers
import helpers from plexpy import libraries
import libraries from plexpy import logger
import logger from plexpy import mobile_app
import mobile_app from plexpy import notification_handler
import notification_handler from plexpy import notifiers
import notifiers from plexpy import newsletter_handler
import newsletter_handler from plexpy import newsletters
import newsletters from plexpy import plextv
import plextv from plexpy import users
import users
else:
from plexpy import common
from plexpy import config
from plexpy import database
from plexpy import helpers
from plexpy import libraries
from plexpy import logger
from plexpy import mobile_app
from plexpy import notification_handler
from plexpy import notifiers
from plexpy import newsletter_handler
from plexpy import newsletters
from plexpy import plextv
from plexpy import users
class API2(object): class API2(object):

View file

@ -25,10 +25,7 @@ from __future__ import unicode_literals
from future.moves.urllib.request import FancyURLopener from future.moves.urllib.request import FancyURLopener
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy.common import USER_AGENT
from common import USER_AGENT
else:
from plexpy.common import USER_AGENT
class PlexPyURLopener(FancyURLopener): class PlexPyURLopener(FancyURLopener):

View file

@ -22,10 +22,7 @@ import platform
from collections import OrderedDict from collections import OrderedDict
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import version
import version
else:
from plexpy import version
# Identify Our Application # Identify Our Application

View file

@ -27,12 +27,8 @@ from configobj import ConfigObj, ParseError
from hashing_passwords import make_hash from hashing_passwords import make_hash
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import helpers
import helpers from plexpy import logger
import logger
else:
from plexpy import helpers
from plexpy import logger
def bool_int(value): def bool_int(value):

View file

@ -24,12 +24,8 @@ import threading
import time import time
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import helpers
import helpers from plexpy import logger
import logger
else:
from plexpy import helpers
from plexpy import logger
FILENAME = "tautulli.db" FILENAME = "tautulli.db"

View file

@ -24,26 +24,15 @@ from future.builtins import object
import json import json
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import libraries
import common from plexpy import common
import database from plexpy import database
import datatables from plexpy import datatables
import libraries from plexpy import helpers
import helpers from plexpy import logger
import logger from plexpy import pmsconnect
import pmsconnect from plexpy import session
import session from plexpy import users
import users
else:
from plexpy import libraries
from plexpy import common
from plexpy import database
from plexpy import datatables
from plexpy import helpers
from plexpy import logger
from plexpy import pmsconnect
from plexpy import session
from plexpy import users
# Temporarily store update_metadata row ids in memory to prevent rating_key collisions # Temporarily store update_metadata row ids in memory to prevent rating_key collisions
_UPDATE_METADATA_IDS = { _UPDATE_METADATA_IDS = {

View file

@ -19,14 +19,9 @@ from future.builtins import object
import re import re
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import database
import database from plexpy import helpers
import helpers from plexpy import logger
import logger
else:
from plexpy import database
from plexpy import helpers
from plexpy import logger
class DataTables(object): class DataTables(object):

View file

@ -30,20 +30,12 @@ from io import open
from multiprocessing.dummy import Pool as ThreadPool from multiprocessing.dummy import Pool as ThreadPool
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import database
import database from plexpy import datatables
import datatables from plexpy import helpers
import helpers from plexpy import logger
import logger from plexpy import users
import users from plexpy.plex import Plex
from plex import Plex
else:
from plexpy import database
from plexpy import datatables
from plexpy import helpers
from plexpy import logger
from plexpy import users
from plexpy.plex import Plex
class Export(object): class Export(object):

View file

@ -23,20 +23,12 @@ from future.builtins import object
import arrow import arrow
import datetime import datetime
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import common
import common from plexpy import database
import database from plexpy import helpers
import helpers from plexpy import logger
import logger from plexpy import libraries
import libraries from plexpy import session
import session
else:
from plexpy import common
from plexpy import database
from plexpy import helpers
from plexpy import logger
from plexpy import libraries
from plexpy import session
class Graphs(object): class Graphs(object):

View file

@ -55,16 +55,10 @@ from xml.dom import minidom
import xmltodict import xmltodict
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import common
import common from plexpy import logger
import logger from plexpy import request
import request from plexpy.api2 import API2
from api2 import API2
else:
from plexpy import common
from plexpy import logger
from plexpy import request
from plexpy.api2 import API2
def addtoapi(*dargs, **dkwargs): def addtoapi(*dargs, **dkwargs):
@ -889,17 +883,11 @@ def upload_to_cloudinary(img_data, img_title='', rating_key='', fallback=''):
api_secret=plexpy.CONFIG.CLOUDINARY_API_SECRET api_secret=plexpy.CONFIG.CLOUDINARY_API_SECRET
) )
# Cloudinary library has very poor support for non-ASCII characters on Python 2
if plexpy.PYTHON2:
_img_title = latinToAscii(img_title, replace=True)
else:
_img_title = img_title
try: try:
response = upload((img_title, img_data), response = upload((img_title, img_data),
public_id='{}_{}'.format(fallback, rating_key), public_id='{}_{}'.format(fallback, rating_key),
tags=['tautulli', fallback, str(rating_key)], tags=['tautulli', fallback, str(rating_key)],
context={'title': _img_title, 'rating_key': str(rating_key), 'fallback': fallback}) context={'title': img_title, 'rating_key': str(rating_key), 'fallback': fallback})
logger.debug("Tautulli Helpers :: Image '{}' ({}) uploaded to Cloudinary.".format(img_title, fallback)) logger.debug("Tautulli Helpers :: Image '{}' ({}) uploaded to Cloudinary.".format(img_title, fallback))
img_url = response.get('url', '') img_url = response.get('url', '')
except Exception as e: except Exception as e:
@ -1280,11 +1268,7 @@ def split_args(args=None):
if isinstance(args, list): if isinstance(args, list):
return args return args
elif isinstance(args, str): elif isinstance(args, str):
if plexpy.PYTHON2:
args = args.encode('utf-8')
args = shlex.split(args) args = shlex.split(args)
if plexpy.PYTHON2:
args = [a.decode('utf-8') for a in args]
return args return args
return [] return []

View file

@ -27,12 +27,8 @@ import requests
import urllib3 import urllib3
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import helpers
import helpers from plexpy import logger
import logger
else:
from plexpy import helpers
from plexpy import logger
class HTTPHandler(object): class HTTPHandler(object):

View file

@ -25,28 +25,16 @@ import os
from datetime import datetime, timedelta from datetime import datetime, timedelta
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import common
import common from plexpy import database
import database from plexpy import datatables
import datatables from plexpy import helpers
import helpers from plexpy import logger
import logger from plexpy import plextv
import plextv from plexpy import pmsconnect
import pmsconnect from plexpy import session
import session from plexpy import users
import users from plexpy.plex import Plex
from plex import Plex
else:
from plexpy import common
from plexpy import database
from plexpy import datatables
from plexpy import helpers
from plexpy import logger
from plexpy import plextv
from plexpy import pmsconnect
from plexpy import session
from plexpy import users
from plexpy.plex import Plex
def refresh_libraries(): def refresh_libraries():

View file

@ -23,10 +23,7 @@ import time
import threading import threading
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import logger
import logger
else:
from plexpy import logger
class TimedLock(object): class TimedLock(object):

View file

@ -21,12 +21,8 @@ from io import open
import os import os
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import helpers
import helpers from plexpy import logger
import logger
else:
from plexpy import helpers
from plexpy import logger
def list_plex_logs(): def list_plex_logs():

View file

@ -29,13 +29,8 @@ import threading
import traceback import traceback
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import helpers, users
import helpers from plexpy.config import _BLACKLIST_KEYS, _WHITELIST_KEYS
import users
from config import _BLACKLIST_KEYS, _WHITELIST_KEYS
else:
from plexpy import helpers, users
from plexpy.config import _BLACKLIST_KEYS, _WHITELIST_KEYS
# These settings are for file logging only # These settings are for file logging only

View file

@ -31,14 +31,9 @@ if HAS_PYOBJC:
import rumps import rumps
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import common
import common from plexpy import logger
import logger from plexpy import versioncheck
import versioncheck
else:
from plexpy import common
from plexpy import logger
from plexpy import versioncheck
class MacOSSystemTray(object): class MacOSSystemTray(object):

View file

@ -22,14 +22,9 @@ import requests
import threading import threading
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import database
import database from plexpy import helpers
import helpers from plexpy import logger
import logger
else:
from plexpy import database
from plexpy import helpers
from plexpy import logger
_ONESIGNAL_APP_ID = '3b4b666a-d557-4b92-acdf-e2c8c4b95357' _ONESIGNAL_APP_ID = '3b4b666a-d557-4b92-acdf-e2c8c4b95357'

View file

@ -24,16 +24,10 @@ from apscheduler.triggers.cron import CronTrigger
import email.utils import email.utils
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import database
import database from plexpy import helpers
import helpers from plexpy import logger
import logger from plexpy import newsletters
import newsletters
else:
from plexpy import database
from plexpy import helpers
from plexpy import logger
from plexpy import newsletters
NEWSLETTER_SCHED = None NEWSLETTER_SCHED = None

View file

@ -30,24 +30,14 @@ import os
import re import re
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import common
import common from plexpy import database
import database from plexpy import helpers
import helpers from plexpy import libraries
import libraries from plexpy import logger
import logger from plexpy import newsletter_handler
import newsletter_handler from plexpy import pmsconnect
import pmsconnect from plexpy.notifiers import send_notification, EMAIL
from notifiers import send_notification, EMAIL
else:
from plexpy import common
from plexpy import database
from plexpy import helpers
from plexpy import libraries
from plexpy import logger
from plexpy import newsletter_handler
from plexpy import pmsconnect
from plexpy.notifiers import send_notification, EMAIL
AGENT_IDS = { AGENT_IDS = {

View file

@ -39,28 +39,16 @@ import threading
import musicbrainzngs import musicbrainzngs
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import activity_processor
import activity_processor from plexpy import common
import common from plexpy import database
import database from plexpy import datafactory
import datafactory from plexpy import logger
import logger from plexpy import helpers
import helpers from plexpy import notifiers
import notifiers from plexpy import pmsconnect
import pmsconnect from plexpy import request
import request from plexpy.newsletter_handler import notify as notify_newsletter
from newsletter_handler import notify as notify_newsletter
else:
from plexpy import activity_processor
from plexpy import common
from plexpy import database
from plexpy import datafactory
from plexpy import logger
from plexpy import helpers
from plexpy import notifiers
from plexpy import pmsconnect
from plexpy import request
from plexpy.newsletter_handler import notify as notify_newsletter
def process_queue(): def process_queue():
@ -2071,14 +2059,10 @@ class CustomFormatter(Formatter):
obj = self.convert_field(obj, conversion) obj = self.convert_field(obj, conversion)
# expand the format spec, if needed # expand the format spec, if needed
if plexpy.PYTHON2: format_spec, auto_arg_index = self._vformat(
format_spec = self._vformat(format_spec, args, kwargs, format_spec, args, kwargs,
used_args, recursion_depth - 1) used_args, recursion_depth-1,
else: auto_arg_index=auto_arg_index)
format_spec, auto_arg_index = self._vformat(
format_spec, args, kwargs,
used_args, recursion_depth-1,
auto_arg_index=auto_arg_index)
# format the object and append to the result # format the object and append to the result
formatted_field = self.format_field(obj, format_spec) formatted_field = self.format_field(obj, format_spec)
@ -2090,7 +2074,4 @@ class CustomFormatter(Formatter):
result.append(suffix) result.append(suffix)
# result.append(self.format_field(obj, format_spec)) # result.append(self.format_field(obj, format_spec))
if plexpy.PYTHON2: return ''.join(result), auto_arg_index
return ''.join(result)
else:
return ''.join(result), auto_arg_index

View file

@ -61,24 +61,14 @@ import facebook
import twitter import twitter
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import common
import common from plexpy import database
import database from plexpy import helpers
import helpers from plexpy import logger
import logger from plexpy import mobile_app
import mobile_app from plexpy import pmsconnect
import pmsconnect from plexpy import request
import request from plexpy import users
import users
else:
from plexpy import common
from plexpy import database
from plexpy import helpers
from plexpy import logger
from plexpy import mobile_app
from plexpy import pmsconnect
from plexpy import request
from plexpy import users
BROWSER_NOTIFIERS = {} BROWSER_NOTIFIERS = {}
@ -3450,9 +3440,6 @@ class SCRIPTS(Notifier):
if self.pythonpath and plexpy.INSTALL_TYPE not in ('windows', 'macos'): if self.pythonpath and plexpy.INSTALL_TYPE not in ('windows', 'macos'):
custom_env['PYTHONPATH'] = os.pathsep.join([p for p in sys.path if p]) custom_env['PYTHONPATH'] = os.pathsep.join([p for p in sys.path if p])
if plexpy.PYTHON2:
custom_env = {k.encode('utf-8'): v.encode('utf-8') for k, v in custom_env.items()}
env = os.environ.copy() env = os.environ.copy()
env.update(custom_env) env.update(custom_env)
@ -3557,9 +3544,6 @@ class SCRIPTS(Notifier):
script.extend(script_args) script.extend(script_args)
if plexpy.PYTHON2:
script = [s.encode(plexpy.SYS_ENCODING, 'ignore') for s in script]
logger.debug("Tautulli Notifiers :: Full script is: %s" % script) logger.debug("Tautulli Notifiers :: Full script is: %s" % script)
logger.debug("Tautulli Notifiers :: Executing script in a new thread.") logger.debug("Tautulli Notifiers :: Executing script in a new thread.")
thread = threading.Thread(target=self.run_script, args=(script, user_id)).start() thread = threading.Thread(target=self.run_script, args=(script, user_id)).start()

View file

@ -20,10 +20,7 @@ from future.builtins import object
from future.builtins import str from future.builtins import str
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import logger
import logger
else:
from plexpy import logger
class DummyObject(object): class DummyObject(object):

View file

@ -23,18 +23,11 @@ import sqlite3
from xml.dom import minidom from xml.dom import minidom
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import activity_processor
import activity_processor from plexpy import database
import database from plexpy import helpers
import helpers from plexpy import logger
import logger from plexpy import users
import users
else:
from plexpy import activity_processor
from plexpy import database
from plexpy import helpers
from plexpy import logger
from plexpy import users
def extract_plexivity_xml(xml=None): def extract_plexivity_xml(xml=None):

View file

@ -24,24 +24,14 @@ from future.moves.urllib.parse import unquote
import json import json
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import common
import common from plexpy import helpers
import helpers from plexpy import http_handler
import http_handler from plexpy import logger
import logger from plexpy import users
import users from plexpy import pmsconnect
import pmsconnect from plexpy import session
import session from plexpy.plex import Plex
from plex import Plex
else:
from plexpy import common
from plexpy import helpers
from plexpy import http_handler
from plexpy import logger
from plexpy import users
from plexpy import pmsconnect
from plexpy import session
from plexpy.plex import Plex
def get_server_resources(return_presence=False, return_server=False, return_info=False, **kwargs): def get_server_resources(return_presence=False, return_server=False, return_info=False, **kwargs):

View file

@ -22,18 +22,11 @@ import sqlite3
from xml.dom import minidom from xml.dom import minidom
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import activity_processor
import activity_processor from plexpy import database
import database from plexpy import helpers
import helpers from plexpy import logger
import logger from plexpy import users
import users
else:
from plexpy import activity_processor
from plexpy import database
from plexpy import helpers
from plexpy import logger
from plexpy import users
def extract_plexwatch_xml(xml=None): def extract_plexwatch_xml(xml=None):

View file

@ -27,26 +27,15 @@ from future.moves.urllib.parse import quote, quote_plus, urlencode
from xml.dom.minidom import Node from xml.dom.minidom import Node
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import activity_processor
import activity_processor from plexpy import common
import common from plexpy import helpers
import helpers from plexpy import http_handler
import http_handler from plexpy import libraries
import libraries from plexpy import logger
import logger from plexpy import plextv
import plextv from plexpy import session
import session from plexpy import users
import users
else:
from plexpy import activity_processor
from plexpy import common
from plexpy import helpers
from plexpy import http_handler
from plexpy import libraries
from plexpy import logger
from plexpy import plextv
from plexpy import session
from plexpy import users
def get_server_friendly_name(): def get_server_friendly_name():

View file

@ -26,12 +26,8 @@ import requests
from requests.packages import urllib3 from requests.packages import urllib3
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import lock
import lock from plexpy import logger
import logger
else:
from plexpy import lock
from plexpy import logger
# Dictionary with last request times, for rate limiting. # Dictionary with last request times, for rate limiting.

View file

@ -21,12 +21,8 @@ from future.builtins import str
import cherrypy import cherrypy
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import common
import common from plexpy import users
import users
else:
from plexpy import common
from plexpy import users
def get_session_info(): def get_session_info():

View file

@ -26,24 +26,14 @@ import httpagentparser
from datetime import datetime, timedelta from datetime import datetime, timedelta
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import common
import common from plexpy import database
import database from plexpy import datatables
import datatables from plexpy import helpers
import helpers from plexpy import libraries
import libraries from plexpy import logger
import logger from plexpy import plextv
import plextv from plexpy import session
import session
else:
from plexpy import common
from plexpy import database
from plexpy import datatables
from plexpy import helpers
from plexpy import libraries
from plexpy import logger
from plexpy import plextv
from plexpy import session
def refresh_users(): def refresh_users():

View file

@ -29,16 +29,10 @@ import subprocess
import tarfile import tarfile
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import common
import common from plexpy import helpers
import helpers from plexpy import logger
import logger from plexpy import request
import request
else:
from plexpy import common
from plexpy import helpers
from plexpy import logger
from plexpy import request
def runGit(args): def runGit(args):
@ -292,9 +286,6 @@ def check_github(scheduler=False, notify=False, use_cache=False):
'plexpy_update_commit': plexpy.LATEST_VERSION, 'plexpy_update_commit': plexpy.LATEST_VERSION,
'plexpy_update_behind': plexpy.COMMITS_BEHIND}) 'plexpy_update_behind': plexpy.COMMITS_BEHIND})
if plexpy.PYTHON2:
logger.warn('Tautulli is running using Python 2. Unable to run automatic update.')
elif scheduler and plexpy.CONFIG.PLEXPY_AUTO_UPDATE and \ elif scheduler and plexpy.CONFIG.PLEXPY_AUTO_UPDATE and \
not plexpy.DOCKER and not plexpy.SNAP and not plexpy.FROZEN: not plexpy.DOCKER and not plexpy.SNAP and not plexpy.FROZEN:
logger.info('Running automatic update.') logger.info('Running automatic update.')
@ -307,10 +298,6 @@ def check_github(scheduler=False, notify=False, use_cache=False):
def update(): def update():
if plexpy.PYTHON2:
logger.warn('Tautulli is running using Python 2. Unable to update.')
return
if not plexpy.UPDATE_AVAILABLE: if not plexpy.UPDATE_AVAILABLE:
return return

View file

@ -29,18 +29,11 @@ import certifi
import websocket import websocket
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import activity_handler
import activity_handler from plexpy import activity_pinger
import activity_pinger from plexpy import activity_processor
import activity_processor from plexpy import database
import database from plexpy import logger
import logger
else:
from plexpy import activity_handler
from plexpy import activity_pinger
from plexpy import activity_processor
from plexpy import database
from plexpy import logger
name = 'websocket' name = 'websocket'

View file

@ -30,18 +30,11 @@ from hashing_passwords import check_hash
import jwt import jwt
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import logger
import logger from plexpy.database import MonitorDatabase
from database import MonitorDatabase from plexpy.helpers import timestamp
from helpers import timestamp from plexpy.users import Users, refresh_users
from users import Users, refresh_users from plexpy.plextv import PlexTV
from plextv import PlexTV
else:
from plexpy import logger
from plexpy.database import MonitorDatabase
from plexpy.helpers import timestamp
from plexpy.users import Users, refresh_users
from plexpy.plextv import PlexTV
# Monkey patch SameSite support into cookies. # Monkey patch SameSite support into cookies.
# https://stackoverflow.com/a/50813092 # https://stackoverflow.com/a/50813092

View file

@ -49,76 +49,40 @@ if sys.version_info >= (3, 6):
import secrets import secrets
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import activity_pinger
import activity_pinger from plexpy import activity_processor
import activity_processor from plexpy import common
import common from plexpy import config
import config from plexpy import database
import database from plexpy import datafactory
import datafactory from plexpy import exporter
import exporter from plexpy import graphs
import graphs from plexpy import helpers
import helpers from plexpy import http_handler
import http_handler from plexpy import libraries
import libraries from plexpy import log_reader
import log_reader from plexpy import logger
import logger from plexpy import newsletter_handler
import newsletter_handler from plexpy import newsletters
import newsletters from plexpy import mobile_app
import mobile_app from plexpy import notification_handler
import notification_handler from plexpy import notifiers
import notifiers from plexpy import plextv
import plextv from plexpy import plexivity_import
import plexivity_import from plexpy import plexwatch_import
import plexwatch_import from plexpy import pmsconnect
import pmsconnect from plexpy import users
import users from plexpy import versioncheck
import versioncheck from plexpy import web_socket
import web_socket from plexpy import webstart
import webstart from plexpy.api2 import API2
from api2 import API2 from plexpy.helpers import checked, addtoapi, get_ip, create_https_certificates, build_datatables_json, sanitize_out
from helpers import checked, addtoapi, get_ip, create_https_certificates, build_datatables_json, sanitize_out from plexpy.session import get_session_info, get_session_user_id, allow_session_user, allow_session_library
from session import get_session_info, get_session_user_id, allow_session_user, allow_session_library from plexpy.webauth import AuthController, requireAuth, member_of, check_auth, get_jwt_token
from webauth import AuthController, requireAuth, member_of, check_auth, get_jwt_token if common.PLATFORM == 'Windows':
if common.PLATFORM == 'Windows': from plexpy import windows
import windows elif common.PLATFORM == 'Darwin':
elif common.PLATFORM == 'Darwin': from plexpy import macos
import macos
else:
from plexpy import activity_pinger
from plexpy import activity_processor
from plexpy import common
from plexpy import config
from plexpy import database
from plexpy import datafactory
from plexpy import exporter
from plexpy import graphs
from plexpy import helpers
from plexpy import http_handler
from plexpy import libraries
from plexpy import log_reader
from plexpy import logger
from plexpy import newsletter_handler
from plexpy import newsletters
from plexpy import mobile_app
from plexpy import notification_handler
from plexpy import notifiers
from plexpy import plextv
from plexpy import plexivity_import
from plexpy import plexwatch_import
from plexpy import pmsconnect
from plexpy import users
from plexpy import versioncheck
from plexpy import web_socket
from plexpy import webstart
from plexpy.api2 import API2
from plexpy.helpers import checked, addtoapi, get_ip, create_https_certificates, build_datatables_json, sanitize_out
from plexpy.session import get_session_info, get_session_user_id, allow_session_user, allow_session_library
from plexpy.webauth import AuthController, requireAuth, member_of, check_auth, get_jwt_token
if common.PLATFORM == 'Windows':
from plexpy import windows
elif common.PLATFORM == 'Darwin':
from plexpy import macos
TEMPLATE_LOOKUP = None TEMPLATE_LOOKUP = None
@ -4367,8 +4331,6 @@ class WebInterface(object):
@cherrypy.expose @cherrypy.expose
@requireAuth(member_of("admin")) @requireAuth(member_of("admin"))
def update(self, **kwargs): def update(self, **kwargs):
if plexpy.PYTHON2:
raise cherrypy.HTTPRedirect(plexpy.HTTP_ROOT + "home?update=python2")
if plexpy.DOCKER or plexpy.SNAP: if plexpy.DOCKER or plexpy.SNAP:
raise cherrypy.HTTPRedirect(plexpy.HTTP_ROOT + "home") raise cherrypy.HTTPRedirect(plexpy.HTTP_ROOT + "home")

View file

@ -22,16 +22,10 @@ import sys
import cherrypy import cherrypy
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import logger
import logger from plexpy import webauth
import webauth from plexpy.helpers import create_https_certificates
from helpers import create_https_certificates from plexpy.webserve import WebInterface, BaseRedirect
from webserve import WebInterface, BaseRedirect
else:
from plexpy import logger
from plexpy import webauth
from plexpy.helpers import create_https_certificates
from plexpy.webserve import WebInterface, BaseRedirect
def start(): def start():

View file

@ -30,14 +30,9 @@ except ImportError:
import _winreg as winreg import _winreg as winreg
import plexpy import plexpy
if plexpy.PYTHON2: from plexpy import common
import common from plexpy import logger
import logger from plexpy import versioncheck
import versioncheck
else:
from plexpy import common
from plexpy import logger
from plexpy import versioncheck
class WindowsSystemTray(object): class WindowsSystemTray(object):