Browse Source

WIP Include some command lines options

With this, I feel like the `cli` plugin interface is a myth. It would 
need to be included in the core program.
plugins
Zykino 3 years ago
parent
commit
979229aa01
1 changed files with 68 additions and 28 deletions
  1. +68
    -28
      prismedia/core.py

+ 68
- 28
prismedia/core.py View File

@ -1,17 +1,42 @@
#!/usr/bin/python
# coding: utf-8
"""
prismedia - tool to upload videos to Peertube and Youtube
Usage:
prismedia [--interface=INTERFACE [--help]] [--platforms=PLATFORMS] [--consumers=CONSUMERS]
prismedia --list-plugins
prismedia -h | --help
prismedia --version
Options:
-i --interface=INTERFACE Interface plugin to use. Select the interface you want to use (only one) [default: cli]
-p --platforms=PLATFORMS Platforms plugins to use. Usually one platform plugin upload to one platform website (comma separated list) [default: all]
-c --consumers=CONSUMERS Consumers plugins to use. They are executed after an upload has been done (comma separated list) [default: all]
--list-plugins List all the plugins currently installed by category.
-h --help Show this help.
-V --version Show version.
"""
import video
from yapsy.PluginManager import PluginManager
from docopt import docopt
from yapsy.PluginManager import PluginManagerSingleton
import pluginInterfaces as pi
import os
import logging
# logging.basicConfig(level=logging.DEBUG)
VERSION = "prismedia v1.0.0"
def loadPlugins():
manager = PluginManager()
manager.setPluginPlaces(["plugins"]) # TODO: Generate the absolute path
manager = PluginManagerSingleton.get()
manager.setPluginPlaces([os.path.dirname(os.path.abspath(__file__)) + "/plugins"])
print(manager.getPluginLocator().plugins_places)
# Define the various categories corresponding to the different
# kinds of plugins you have defined
@ -22,38 +47,50 @@ def loadPlugins():
})
manager.collectPlugins()
return manager # TODO: Use the singleton PluginManager?
def listPlugins():
manager = PluginManagerSingleton.get()
print("Category: Interface")
for plugin in manager.getPluginsOfCategory("Interface"):
print(plugin.name)
print("Category: Platform")
for plugin in manager.getPluginsOfCategory("Platform"):
print(plugin.name)
print("# Plugins")
#def test_loadPlugins(arg):
manager = loadPlugins()
# Loop round the plugins and print their names.
print("debug")
print(manager.getAllPlugins())
print("Category: Consumer")
for plugin in manager.getPluginsOfCategory("Consumer"):
print(plugin.name)
print("all plugins")
for plugin in manager.getAllPlugins():
print(plugin.name)
# plugin.plugin_object.print_name()
def main():
manager = loadPlugins()
print("Category: Interface")
for plugin in manager.getPluginsOfCategory("Interface"):
print(plugin.name)
# plugin.plugin_object.print_name()
options = docopt(__doc__, version=VERSION)
print(options)
print("Category: Platform")
for plugin in manager.getPluginsOfCategory("Platform"):
print(plugin.name)
# plugin.plugin_object.print_name()
if options.get('--list-plugins'):
listPlugins()
exit(0)
print()
print("# Plugins")
#def test_loadPlugins(arg):
# Loop round the plugins and print their names.
print("debug")
print(manager.getAllPlugins())
print()
print("# Video")
v = video.Video("/path/to/video")
v.name = "vidéo"
print(v.__dict__)
print(v.thumbnail)
print("all plugins")
for plugin in manager.getAllPlugins():
print(plugin.name)
# plugin.plugin_object.print_name()
print()
print("# Video")
v = video.Video("/path/to/video")
v.name = "vidéo"
print(v.__dict__)
print(v.thumbnail)
# def startInterface():
# interface = loadPlugins()
@ -70,3 +107,6 @@ print(v.thumbnail)
# platforms = loadPlugins("platform")
# for platform in options.get('--platform'):
# platforms[platform].run(options)
# TODO: REMOVE ME
main()

Loading…
Cancel
Save