mirror of
https://git.lecygnenoir.info/LecygneNoir/prismedia.git
synced 2025-10-04 09:59:16 +02:00
Update files, functions and code to work with python3
This commit is contained in:
parent
8b26f0ee53
commit
fa633ee5bb
4 changed files with 32 additions and 30 deletions
|
@ -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 +'", \
|
data = '{"name":"' + channel_name + '", \
|
||||||
"displayName":"' + str(options.get('--channel')) +'", \
|
"displayName":"' + options.get('--channel') + '", \
|
||||||
"description":null}'
|
"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 '
|
logging.error('Peertube: Error: It seems there is a conflict with an existing channel named '
|
||||||
'Peertube internal name is compiled from 20 firsts characters of channel name.'
|
+ 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']
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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,
|
http.client.NotConnected,
|
||||||
httplib.IncompleteRead,
|
http.client.IncompleteRead,
|
||||||
httplib.ImproperConnectionState,
|
http.client.ImproperConnectionState,
|
||||||
httplib.CannotSendRequest,
|
http.client.CannotSendRequest,
|
||||||
httplib.CannotSendHeader,
|
http.client.CannotSendHeader,
|
||||||
httplib.ResponseNotReady,
|
http.client.ResponseNotReady,
|
||||||
httplib.BadStatusLine,
|
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']
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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…
Add table
Add a link
Reference in a new issue