Browse Source

Update files, functions and code to work with python3

pull/45/head
LecygneNoir 4 years ago
parent
commit
fa633ee5bb
4 changed files with 32 additions and 30 deletions
  1. +14
    -11
      lib/pt_upload.py
  2. +3
    -4
      lib/utils.py
  3. +11
    -11
      lib/yt_upload.py
  4. +4
    -4
      prismedia_upload.py

+ 14
- 11
lib/pt_upload.py View File

@ -1,4 +1,4 @@
#!/usr/bin/env python2
#!/usr/bin/env python
# coding: utf-8 # coding: utf-8
import os import os
@ -10,7 +10,7 @@ import pytz
from os.path import splitext, basename, abspath from os.path import splitext, basename, abspath
from tzlocal import get_localzone from tzlocal import get_localzone
from ConfigParser import RawConfigParser
from configparser import RawConfigParser
from requests_oauthlib import OAuth2Session from requests_oauthlib import OAuth2Session
from oauthlib.oauth2 import LegacyApplicationClient from oauthlib.oauth2 import LegacyApplicationClient
from requests_toolbelt.multipart.encoder import MultipartEncoder from requests_toolbelt.multipart.encoder import MultipartEncoder
@ -57,7 +57,7 @@ def get_default_channel(user_info):
def get_channel_by_name(user_info, options): def get_channel_by_name(user_info, options):
for channel in user_info["videoChannels"]: for channel in user_info["videoChannels"]:
if channel['displayName'].encode('utf8') == str(options.get('--channel')):
if channel['displayName'] == options.get('--channel'):
return channel['id'] return channel['id']
@ -67,16 +67,17 @@ def create_channel(oauth, url, options):
channel_name = utils.cleanString(str(options.get('--channel'))) channel_name = utils.cleanString(str(options.get('--channel')))
# Peertube allows 20 chars max for channel name # Peertube allows 20 chars max for channel name
channel_name = channel_name[:19] channel_name = channel_name[:19]
data = '{"name":"' + channel_name +'", \
"displayName":"' + str(options.get('--channel')) +'", \
"description":null}'
data = '{"name":"' + channel_name + '", \
"displayName":"' + options.get('--channel') + '", \
"description":null, \
"support":null}'
headers = { headers = {
'Content-Type': "application/json"
'Content-Type': "application/json; charset=UTF-8"
} }
try: try:
response = oauth.post(url + "/api/v1/video-channels/", response = oauth.post(url + "/api/v1/video-channels/",
data=data,
data=data.encode('utf-8'),
headers=headers) headers=headers)
except Exception as e: except Exception as e:
if hasattr(e, 'message'): if hasattr(e, 'message'):
@ -89,8 +90,10 @@ def create_channel(oauth, url, options):
jresponse = jresponse['videoChannel'] jresponse = jresponse['videoChannel']
return jresponse['id'] return jresponse['id']
if response.status_code == 409: if response.status_code == 409:
logging.error('Peertube: Error: It seems there is a conflict with an existing channel, please beware '
'Peertube internal name is compiled from 20 firsts characters of channel name.'
logging.error('Peertube: Error: It seems there is a conflict with an existing channel named '
+ channel_name + '.'
' Please beware Peertube internal name is compiled from 20 firsts characters of channel name.'
' Also note that channel name are not case sensitive (no uppercase nor accent)'
' Please check your channel name and retry.') ' Please check your channel name and retry.')
exit(1) exit(1)
else: else:
@ -105,7 +108,7 @@ def get_default_playlist(user_info):
def get_playlist_by_name(user_playlists, options): def get_playlist_by_name(user_playlists, options):
for playlist in user_playlists["data"]: for playlist in user_playlists["data"]:
if playlist['displayName'].encode('utf8') == str(options.get('--playlist')):
if playlist['displayName'] == options.get('--playlist'):
return playlist['id'] return playlist['id']

+ 3
- 4
lib/utils.py View File

@ -1,7 +1,7 @@
#!/usr/bin/python #!/usr/bin/python
# coding: utf-8 # coding: utf-8
from ConfigParser import RawConfigParser, NoOptionError, NoSectionError
from configparser import RawConfigParser, NoOptionError, NoSectionError
from os.path import dirname, splitext, basename, isfile from os.path import dirname, splitext, basename, isfile
import re import re
from os import devnull from os import devnull
@ -102,7 +102,7 @@ def getLanguage(language, platform):
def remove_empty_kwargs(**kwargs): def remove_empty_kwargs(**kwargs):
good_kwargs = {} good_kwargs = {}
if kwargs is not None: if kwargs is not None:
for key, value in kwargs.iteritems():
for key, value in kwargs.items():
if value: if value:
good_kwargs[key] = value good_kwargs[key] = value
return good_kwargs return good_kwargs
@ -172,7 +172,7 @@ def parseNFO(options):
nfo = loadNFO(options) nfo = loadNFO(options)
if nfo: if nfo:
# We need to check all options and replace it with the nfo value if not defined (None or False) # We need to check all options and replace it with the nfo value if not defined (None or False)
for key, value in options.iteritems():
for key, value in options.items():
key = key.replace("-", "") key = key.replace("-", "")
try: try:
# get string options # get string options
@ -192,7 +192,6 @@ def upcaseFirstLetter(s):
return s[0].upper() + s[1:] return s[0].upper() + s[1:]
def cleanString(toclean): def cleanString(toclean):
toclean = toclean.decode('utf-8')
toclean = unidecode.unidecode(toclean) toclean = unidecode.unidecode(toclean)
cleaned = re.sub('[^A-Za-z0-9]+', '', toclean) cleaned = re.sub('[^A-Za-z0-9]+', '', toclean)

+ 11
- 11
lib/yt_upload.py View File

@ -1,8 +1,8 @@
#!/usr/bin/env python2
#!/usr/bin/env python
# coding: utf-8 # coding: utf-8
# From Youtube samples : https://raw.githubusercontent.com/youtube/api-samples/master/python/upload_video.py # noqa # From Youtube samples : https://raw.githubusercontent.com/youtube/api-samples/master/python/upload_video.py # noqa
import httplib
import http.client
import httplib2 import httplib2
import random import random
import time import time
@ -38,13 +38,13 @@ MAX_RETRIES = 10
RETRIABLE_EXCEPTIONS = ( RETRIABLE_EXCEPTIONS = (
IOError, IOError,
httplib2.HttpLib2Error, httplib2.HttpLib2Error,
httplib.NotConnected,
httplib.IncompleteRead,
httplib.ImproperConnectionState,
httplib.CannotSendRequest,
httplib.CannotSendHeader,
httplib.ResponseNotReady,
httplib.BadStatusLine,
http.client.NotConnected,
http.client.IncompleteRead,
http.client.ImproperConnectionState,
http.client.CannotSendRequest,
http.client.CannotSendHeader,
http.client.ResponseNotReady,
http.client.BadStatusLine,
) )
RETRIABLE_STATUS_CODES = [500, 502, 503, 504] RETRIABLE_STATUS_CODES = [500, 502, 503, 504]
@ -146,7 +146,7 @@ def initialize_upload(youtube, options):
# Call the API's videos.insert method to create and upload the video. # Call the API's videos.insert method to create and upload the video.
insert_request = youtube.videos().insert( insert_request = youtube.videos().insert(
part=','.join(body.keys()),
part=','.join(list(body.keys())),
body=body, body=body,
media_body=MediaFileUpload(path, chunksize=-1, resumable=True) media_body=MediaFileUpload(path, chunksize=-1, resumable=True)
) )
@ -168,7 +168,7 @@ def get_playlist_by_name(youtube, playlist_name):
maxResults=50 maxResults=50
).execute() ).execute()
for playlist in response["items"]: for playlist in response["items"]:
if playlist["snippet"]['title'].encode('utf8') == str(playlist_name):
if playlist["snippet"]['title'] == playlist_name:
return playlist['id'] return playlist['id']

+ 4
- 4
prismedia_upload.py View File

@ -1,4 +1,4 @@
#!/usr/bin/env python2
#!/usr/bin/env python
# coding: utf-8 # coding: utf-8
""" """
@ -170,17 +170,17 @@ if __name__ == '__main__':
schema = Schema({ schema = Schema({
'--file': And(str, validateVideo, error='file is not supported, please use mp4'), '--file': And(str, validateVideo, error='file is not supported, please use mp4'),
Optional('--name'): Or(None, And( Optional('--name'): Or(None, And(
basestring,
str,
lambda x: not x.isdigit(), lambda x: not x.isdigit(),
error="The video name should be a string") error="The video name should be a string")
), ),
Optional('--description'): Or(None, And( Optional('--description'): Or(None, And(
basestring,
str,
lambda x: not x.isdigit(), lambda x: not x.isdigit(),
error="The video description should be a string") error="The video description should be a string")
), ),
Optional('--tags'): Or(None, And( Optional('--tags'): Or(None, And(
basestring,
str,
lambda x: not x.isdigit(), lambda x: not x.isdigit(),
error="Tags should be a string") error="Tags should be a string")
), ),

Loading…
Cancel
Save