|
|
- 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)
|