Scripting way to upload videos to peertube and youtube
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

78 lines
2.8 KiB

import pluginInterfaces as pi
import video as vid
from yapsy.PluginManager import PluginManagerSingleton
def helperFunctionnality(options):
optionName = "--list-plugins"
if options.get(optionName):
_listPlugins()
return True
else:
options.pop(optionName)
optionName = "--hearthbeat"
if options.get(optionName):
for plugin in manager.getPluginsOfCategory(pi.PluginTypes.PLATFORM):
plugin.plugin_object.hearthbeat()
return True
else:
options.pop(optionName)
return False
def parseOptions(options):
video = vid.Video()
video.path = _getOption(options, "--file", video.path)
video.thumbnail = _getOption(options, "--thumbnail", video.thumbnail)
video.name = _getOption(options, "--name", video.name)
video.description = _getOption(options, "--description", video.description)
video.playlistName = _getOption(options, "--playlist", video.playlistName)
video.privacy = _getOption(options, "--privacy", video.privacy)
video.category = _getOption(options, "--category", video.category)
video.tags = _getOption(options, "--tag", video.tags)
video.language = _getOption(options, "--language", video.language)
video.originalDate = _getOption(options, "--original-date", video.originalDate)
# TODO: set as an object: { "all": date1, "platformX": date2, …}?
# Maybe the publishAt by platform is better placed in `self.platform`
# And so publishAt would only contains the global date.
video.publishAt = _getOption(options, "--publish-at", video.publishAt)
# TODO: Add a list of licences
video.licence = _getOption(options, "--licence", video.licence)
video.disableComments = _getOption(options, "--disable-comments", video.disableComments)
video.nsfw = _getOption(options, "--nsfw", video.nsfw)
autoOriginalDate = _getOption(options, "--auto-original-date", False)
if autoOriginalDate:
raise Exception("Unimplemented!")
return video
def _getOption(options, optionName, defaultValue = None):
value = options.get(optionName)
options.pop(optionName)
if value is None:
return defaultValue
return value
def _listPlugins():
manager = PluginManagerSingleton.get()
print("The plugins are stored in the following folders:", manager.getPluginLocator().plugins_places)
print("Category:", pi.PluginTypes.INTERFACE.value)
for plugin in manager.getPluginsOfCategory(pi.PluginTypes.INTERFACE):
print("\t" + plugin.name)
print("Category:", pi.PluginTypes.PLATFORM.value)
for plugin in manager.getPluginsOfCategory(pi.PluginTypes.PLATFORM):
print("\t" + plugin.name)
print("Category:", pi.PluginTypes.CONSUMER.value)
for plugin in manager.getPluginsOfCategory(pi.PluginTypes.CONSUMER):
print("\t" + plugin.name)