Run futurize --stage2

This commit is contained in:
JonnyWong16 2020-07-04 13:23:47 -07:00
parent 30dbccda77
commit dc6507ffed
No known key found for this signature in database
GPG Key ID: B1F1F9807184697A
32 changed files with 82 additions and 31 deletions

View File

@ -99,6 +99,7 @@ optional arguments:
"""
from builtins import str
import sys
import os
import random

View File

@ -16,7 +16,10 @@ Tautulli > Settings > Notification Agents > Scripts > Gear icon:
"""
from __future__ import print_function
from __future__ import division
from builtins import str
from past.utils import old_div
import requests
from operator import itemgetter
import unicodedata
@ -44,7 +47,7 @@ def kill_session(sess_key, message):
# Check for users stream
username = session.usernames[0]
if session.sessionKey == sess_key:
title = unicode(session.grandparentTitle + ' - ' if session.type == 'episode' else '') + session.title
title = str(session.grandparentTitle + ' - ' if session.type == 'episode' else '') + session.title
title = unicodedata.normalize('NFKD', title).encode('ascii', 'ignore').translate(None, "'")
session.stop(reason=message)
print('Terminated {user}\'s stream of {title} to prioritize admin stream.'.format(user=username,
@ -68,8 +71,8 @@ def main():
if trans_dec == 'transcode' and username not in ADMIN_USER:
sess_key = session.sessionKey
percent_comp = int((float(session.viewOffset) / float(session.duration)) * 100)
time_to_comp = int(int(session.duration) - int(session.viewOffset)) / 1000 / 60
title = unicode(session.grandparentTitle + ' - ' if session.type == 'episode' else '') + session.title
time_to_comp = old_div(old_div(int(int(session.duration) - int(session.viewOffset)), 1000), 60)
title = str(session.grandparentTitle + ' - ' if session.type == 'episode' else '') + session.title
title = unicodedata.normalize('NFKD', title).encode('ascii', 'ignore').translate(None, "'")
add_to_dictlist(user_dict, username, [sess_key, percent_comp, title, username, time_to_comp])

View File

@ -48,6 +48,8 @@ Tautulli > Settings > Notification Agents > New Script > Script Arguments:
from __future__ import print_function
from builtins import object
from builtins import str
import os
import sys
import json
@ -236,7 +238,7 @@ def basic_notify(notifier_id, session_id, username=None, message=None, stream=No
notification.send(SUBJECT_TEXT, body)
class Tautulli:
class Tautulli(object):
def __init__(self, url, apikey, verify_ssl=False, debug=None):
self.url = url
self.apikey = apikey
@ -320,7 +322,7 @@ class Tautulli:
return self._call_api('terminate_session', payload)
class Stream:
class Stream(object):
def __init__(self, session_id=None, user_id=None, username=None, tautulli=None, session=None):
self.state = None
self.ip_address = None
@ -406,7 +408,7 @@ class Stream:
return False
class Notification:
class Notification(object):
def __init__(self, notifier_id, subject, body, tautulli, stream):
self.notifier_id = notifier_id
self.subject = subject

View File

@ -47,6 +47,7 @@ Taultulli > Settings > Notification Agents > New Script > Script Arguments:
"""
from __future__ import print_function
from builtins import range
import requests
import argparse
from datetime import datetime, timedelta

View File

@ -28,6 +28,10 @@ optional arguments:
"""
from __future__ import print_function
from builtins import zip
from builtins import str
from builtins import range
from builtins import object
import requests
import sys
import json
@ -213,7 +217,7 @@ def get_geo_dict(length, users):
def get_geojson_dict(user_locations):
locs = []
for username, locations in user_locations.iteritems():
for username, locations in user_locations.items():
for location in locations:
try:
locs.append({
@ -349,9 +353,9 @@ def draw_map(map_type, geo_dict, filename, headless, leg_choice):
0))
labels = labels[idx:] + labels[:idx]
handles = handles[idx:] + handles[:idx]
by_label = OrderedDict(zip(labels, handles))
by_label = OrderedDict(list(zip(labels, handles)))
leg = plt.legend(by_label.values(), by_label.keys(), fancybox=True, fontsize='x-small',
leg = plt.legend(list(by_label.values()), list(by_label.keys()), fancybox=True, fontsize='x-small',
numpoints=1, title="Legend", labelspacing=1., borderpad=1.5, handletextpad=2.)
if leg:
lleng = len(leg.legendHandles)

View File

@ -8,6 +8,8 @@ TAUTULLI_URL + delete_media_info_cache?section_id={section_id}
"""
from __future__ import print_function
from builtins import object
from builtins import str
import requests
import sys
import time

View File

@ -17,7 +17,9 @@ Tautulli > Settings > Notification Agents > Scripts > Gear icon:
Tautulli Settings > Notification Agents > Scripts (Gear) > Script Timeout: 0 to disable or set to > 180
"""
from __future__ import print_function
from __future__ import division
from past.utils import old_div
import requests
import sys
import argparse
@ -67,7 +69,7 @@ def send_notification(subject_text, body_text):
"""Format notification text."""
try:
subject = subject_text.format(p=p, total=cc_total)
body = body_text.format(p=p, total=cc_total, time=TIMEOUT / 60)
body = body_text.format(p=p, total=cc_total, time=old_div(TIMEOUT, 60))
except LookupError as e:
sys.stderr.write("Unable to substitute '{0}' in the notification subject or body".format(e))

View File

@ -19,6 +19,7 @@ Tautulli > Settings > Notification Agents > Scripts > Gear icon:
"""
from __future__ import print_function
from builtins import object
import requests
from email.mime.text import MIMEText
import email.utils
@ -244,7 +245,7 @@ if __name__ == '__main__':
if p.media_type == 'movie':
email_subject = MOVIE_SUBJECT.format(p=p)
to = filter(None, [x['email'] for x in get_users() if x['user_id'] not in IGNORE_LST])
to = [_f for _f in [x['email'] for x in get_users() if x['user_id'] not in IGNORE_LST] if _f]
body_html = MOVIE_BODY.format(p=p)
send_email(to, email_subject, body_html)

View File

@ -17,6 +17,7 @@ Arguments passed from Tautulli
"""
from builtins import object
import argparse
import requests
import sys

View File

@ -18,6 +18,7 @@ Tautulli > Settings > Notification Agents > Scripts > Gear icon:
"""
from __future__ import print_function
from builtins import object
import requests
from email.mime.text import MIMEText
import email.utils

View File

@ -10,6 +10,7 @@ Restart Tautulli.
Place in Playback Start
"""
from __future__ import print_function
from builtins import object
import argparse
import requests
import sys

View File

@ -9,6 +9,8 @@ Uncomment Exceptions if you run into problem and need to investigate.
"""
from __future__ import print_function
from builtins import str
from builtins import object
import requests
import sys
import time

View File

@ -7,6 +7,7 @@
# {user} {title}
# Add to Playback Resume
from builtins import object
import requests
import sys

View File

@ -8,6 +8,7 @@ I corrupted a file to test.
"""
from __future__ import print_function
from builtins import object
import requests
import sys

View File

@ -26,6 +26,7 @@ Usage:
"""
from __future__ import print_function
from builtins import str
import requests
import sys
import argparse

View File

@ -28,6 +28,7 @@ If title is matched in both, Amazon is first then Netflix.
"""
from __future__ import print_function
from builtins import str
import requests
import argparse
from xmljson import badgerfish as bf

View File

@ -6,6 +6,7 @@ Use Tautulli to count how many plays per user occurred this week.
Notify via Tautulli Notification
"""
from builtins import object
import requests
import sys
import time

View File

@ -2,6 +2,7 @@
# -*- coding: utf-8 -*-
from __future__ import print_function
from builtins import object
import time
import argparse
from plexapi.myplex import MyPlexAccount
@ -40,7 +41,7 @@ VERIFY_SSL = False
timestr = time.strftime("%Y%m%d-%H%M%S")
class Connection:
class Connection(object):
def __init__(self, url=None, apikey=None, verify_ssl=False):
self.url = url
self.apikey = apikey
@ -75,7 +76,7 @@ class Library(object):
pass
class Tautulli:
class Tautulli(object):
def __init__(self, connection):
self.connection = connection
@ -128,7 +129,7 @@ class Tautulli:
return self._call_api('get_libraries', payload)
class Plex:
class Plex(object):
def __init__(self, token, url=None):
if token and not url:
self.account = MyPlexAccount(token)

View File

@ -12,6 +12,8 @@ Tautulli Settings > Extra Settings > Check - Calculate Total File Sizes [experi
"""
from __future__ import print_function
from builtins import range
from builtins import object
from plexapi.server import CONFIG
from datetime import datetime, timedelta, date
from requests import Session
@ -220,7 +222,7 @@ def get_library_stats(libraries, tautulli, rich, notify=None):
return sections_stats_lst
class Tautulli:
class Tautulli(object):
def __init__(self, url, apikey, verify_ssl=False, debug=None):
self.url = url
self.apikey = apikey
@ -317,7 +319,7 @@ class Tautulli:
return
class Notification:
class Notification(object):
def __init__(self, notifier_id, subject, body, tautulli, stats=None):
self.notifier_id = notifier_id
self.subject = subject

View File

@ -9,6 +9,7 @@ Add deletion via Plex.
"""
from __future__ import print_function
from builtins import object
import requests
import sys
import os

View File

@ -6,6 +6,9 @@ Find what was added TFRAME ago and not watched using Tautulli.
"""
from __future__ import print_function
from builtins import input
from builtins import str
from builtins import object
import requests
import sys
import time
@ -123,7 +126,7 @@ def get_libraries_table():
def delete_files(tmp_lst):
del_file = raw_input('Delete all unwatched files? (yes/no)').lower()
del_file = input('Delete all unwatched files? (yes/no)').lower()
if del_file.startswith('y'):
for x in tmp_lst:
print("Removing {}".format(x))

View File

@ -7,6 +7,8 @@ Author: DirtyCajunRice
Requires: requests, plexapi, python3.6+
"""
from __future__ import print_function
from __future__ import division
from past.utils import old_div
from requests import Session
from plexapi.server import CONFIG
from datetime import date, timedelta
@ -57,7 +59,7 @@ for play in HISTORY:
PARAMS = {'cmd': 'get_user', 'user_id': 0}
for user, counts in USERS.items():
TOTAL_PLAYS = counts['transcode'] + counts['direct play'] + counts['copy']
TRANSCODE_PERCENT = round(counts['transcode'] * 100 / TOTAL_PLAYS, 2)
TRANSCODE_PERCENT = round(old_div(counts['transcode'] * 100, TOTAL_PLAYS), 2)
if TRANSCODE_PERCENT >= THRESHOLD_PERCENT:
PARAMS['user_id'] = user
NAUGHTY = SESSION.get(FORMATTED_URL, params=PARAMS).json()['response']['data']

View File

@ -6,6 +6,7 @@ https://gist.github.com/blacktwin/f435aa0ccd498b0840d2407d599bf31d
"""
from __future__ import print_function
from builtins import input
import os
import httplib2
@ -35,7 +36,7 @@ if credentials is None:
flow = OAuth2WebServerFlow(CLIENT_ID, CLIENT_SECRET, OAUTH_SCOPE, REDIRECT_URI)
authorize_url = flow.step1_get_authorize_url()
print('Go to the following link in your browser: ' + authorize_url)
code = raw_input('Enter verification code: ').strip()
code = input('Enter verification code: ').strip()
credentials = flow.step2_exchange(code)
storage.put(credentials)

View File

@ -16,6 +16,7 @@
# --rating_key {rating_key} --filename {filename}
from __future__ import print_function
from builtins import str
import argparse
import os
from plexapi.server import PlexServer

View File

@ -24,6 +24,7 @@ Enabling Scripts in Tautulli:
"""
from __future__ import print_function
from builtins import object
import argparse
import datetime
import time
@ -71,7 +72,7 @@ OPTIMIZE_DEFAULT = {'targetTagID': 'Mobile',
'policyUnwatched': 0,
'videoQuality': None}
class Connection:
class Connection(object):
def __init__(self, url=None, apikey=None, verify_ssl=False):
self.url = url
self.apikey = apikey
@ -160,7 +161,7 @@ class User(object):
self.direct = {}
class Tautulli:
class Tautulli(object):
def __init__(self, connection):
self.connection = connection

View File

@ -46,6 +46,7 @@ original.
"""
from __future__ import print_function
from builtins import range
import requests
import argparse
import datetime

View File

@ -15,11 +15,13 @@ Requires: plexapi
"""
from __future__ import print_function
from future import standard_library
standard_library.install_aliases()
from plexapi.server import PlexServer, CONFIG
import requests
import re
import os
import urllib
import urllib.request, urllib.parse, urllib.error
library_name = ['Movies', 'TV Shows'] # Your library names
@ -71,4 +73,4 @@ for library in library_name:
print("ERROR, %s already exist" % image_path)
else:
# Save to directory
urllib.urlretrieve(thumb_url, image_path)
urllib.request.urlretrieve(thumb_url, image_path)

View File

@ -10,8 +10,11 @@ Skips download if showname.jpg exists or if show does not exist.
"""
from __future__ import print_function
from future import standard_library
standard_library.install_aliases()
from builtins import object
import requests
import urllib
import urllib.request, urllib.parse, urllib.error
import os
@ -50,6 +53,6 @@ for x in get_imgur():
print("Poster for {} was already downloaded or filename already exists, skipping.".format(x.description))
else:
print("Downloading poster for {}.".format(x.description))
urllib.urlretrieve(x.link, '{}.jpg'.format((os.path.join(SHOW_PATH, x.description, x.description))))
urllib.request.urlretrieve(x.link, '{}.jpg'.format((os.path.join(SHOW_PATH, x.description, x.description))))
else:
print("{} - {} did not match your library.".format(x.description, x.link))

View File

@ -9,11 +9,13 @@ Songs are saved in a 'Theme Songs' directory located in script's path.
"""
from future import standard_library
standard_library.install_aliases()
from plexapi.server import PlexServer, CONFIG
# pip install plexapi
import os
import re
import urllib
import urllib.request, urllib.parse, urllib.error
import requests
# ## Edit ##
@ -56,4 +58,4 @@ for show in plex.library.section(TV_LIBRARY).all():
# Get tvdb_if from first episode, no need to go through all episodes
tvdb_id = show.episodes()[0].guid.split('/')[2]
# Download theme song to output path
urllib.urlretrieve(themes_url.format(tvdb_id), theme_path)
urllib.request.urlretrieve(themes_url.format(tvdb_id), theme_path)

View File

@ -7,6 +7,8 @@ Deletion is prompted
"""
from __future__ import print_function
from builtins import input
from builtins import object
import requests
import sys
import os
@ -76,7 +78,7 @@ def get_history(user, start, length):
def delete_files(tmp_lst):
del_file = raw_input('Delete all watched files? (yes/no)').lower()
del_file = input('Delete all watched files? (yes/no)').lower()
if del_file.startswith('y'):
for x in tmp_lst:
print("Removing {}".format(os.path.dirname(x)))

View File

@ -52,6 +52,8 @@ Concurrent stream count is the trigger. Trigger can be anything you want.
from __future__ import print_function
from builtins import str
from builtins import object
import requests
import sys
from xml.dom import minidom

View File

@ -56,6 +56,7 @@ Taultulli > Settings > Notification Agents > New Script > Script Arguments:
**Rating key must be a movie or episode. Shows and Seasons not support.... yet.
"""
from __future__ import print_function
from builtins import object
import argparse
from plexapi.myplex import MyPlexAccount
from plexapi.server import PlexServer
@ -79,7 +80,7 @@ if not TAUTULLI_APIKEY:
VERIFY_SSL = False
class Connection:
class Connection(object):
def __init__(self, url=None, apikey=None, verify_ssl=False):
self.url = url
self.apikey = apikey
@ -133,7 +134,7 @@ class Metadata(object):
pass
class Tautulli:
class Tautulli(object):
def __init__(self, connection):
self.connection = connection
@ -190,7 +191,7 @@ class Tautulli:
return self._call_api('get_libraries', payload)
class Plex:
class Plex(object):
def __init__(self, token, url=None):
if token and not url:
self.account = MyPlexAccount(token)