diff options
-rw-r--r-- | README | 95 | ||||
-rw-r--r-- | module/remote/thriftbackend/pyload.thrift | 57 |
2 files changed, 106 insertions, 46 deletions
@@ -1,19 +1,4 @@ - ?IIIIIIII77777:~~. NM M - +III777777$$$$$7~~~~, NM M - III777777$$$$$$+~~~== MMMMMMM 8M M NM MMI OMM$ MMO M - I777777++++++=.~~==== M MM 8M M NM 7M MN M MD M - 77777 ~~~~~~~~~====== M NM 8M M NM MO M $DDDM NM M - 77777~~~~~~~========= M MM 8M M NM M8 M MM M NM M - 777$~~~~~========== MNMZ8MM +MMMMM?M NM $M MM MM M MZ M - ~~~==,,,,,, M M NMMMMMN 7MMO MMM= IMMD - ~======= =~ M M - ~======~ = DMMO - ~======= - :===== - :=== - ,=, - Description =========== @@ -23,47 +8,81 @@ It supports link decryption as well as all important container formats. pyLoad is written entirely in Python and is currently under heavy development. -To read the newest info, get the latest version, find help or contribute -to the wiki, visit <http://pyload.org/> +For news, downloads, wiki, forum and further information visit http://pyload.org/ To report bugs, suggest features, ask a question, get the developer version -or help us out, visit <http://bitbucket.org/spoob/pyload/> +or help us out, visit http://bitbucket.org/spoob/pyload/ + +Documentation about extending pyLoad can be found at http://docs.pyload.org or join us at #pyload on irc.freenode.net -Requirements +Dependencies ============ -pycrypto: RSDF/CCF/DLC support -pycurl: lower memory footprint while downloading -pyqt4: for the GUI -tesseract, PIL: Captcha recognition +You need at least python 2.5 to run pyLoad and all of these required libaries. +They should be automatically installed when using pip install. +The prebuilt pyload packages also install these dependencies or have them included, so manuall install +is only needed when installing pyLoad from source. + +Required +-------- + +- pycurl a.k.a python-curl +- jinja2 +- beaker +- thrift +- simplejson (for python <= 2.6) + +Some plugins require additional packages, only install these when needed. + +Optional +-------- + +- pycrypto: RSDF/CCF/DLC support +- tesseract, python-pil a.k.a python-imaging: Automatic captcha recognition for a small amount of plugins +- jsengine (spidermonkey, ossp-js, pyv8, rhino): Used for several hoster, ClickNLoad +- feedparser +- BeautifulSoup First start =========== -First, run -$ python pyLoadCore.py -Follow the instructions of the setup assistent. +Note: If you installed pyload via package-manager `python pyLoadCore.py` is probably equivalent to `pyLoadCore` + +Run:: + + python pyLoadCore.py + +and follow the instructions of the setup assistent. + +For a list of options use:: + + python pyLoadCore.py -h Configuration -=========== +============= -After the first start you can configurate pyLoad with the webinterface or the GUI. -Additionally you could simply edit the config files located in your pyLoad home dir(defaults to: ~/.pyload) +After finishing the setup assistent pyLoad is ready to use and more configuration can be done via webinterface. +Additionally you could simply edit the config files located in your pyLoad home dir (defaults to: ~/.pyload) with your favorite editor and edit the appropriate options. For a short description of -the options take a look at <http://pyload.org/configuration>. +the options take a look at<http://pyload.org/configuration. + +To restart the configure assistent run:: + + python pyLoadCore.py -s Adding downloads -================ +---------------- + +To start the CLI and connect to a local server, run:: + + python pyLoadCli.py -l -To start the CLI and connect to a local server, run -$ python pyLoadCli.py -l +for more options refer to:: -If you want to connect from graphical enviroment, you can also use the GUI: -$ python pyLoadGui.py + python pyLoadCli.py -h -Or access the address you setted for the webinterface with your webbrowser. +The webinterface can be accessed when pointing your webbrowser to the ip and configured port, defaults to http://localhost:8000 Notes ===== -For more information, see -<http://pyload.org/> +For more information, see http://pyload.org/ diff --git a/module/remote/thriftbackend/pyload.thrift b/module/remote/thriftbackend/pyload.thrift index 5d828854c..1542e651a 100644 --- a/module/remote/thriftbackend/pyload.thrift +++ b/module/remote/thriftbackend/pyload.thrift @@ -4,6 +4,7 @@ typedef i32 FileID typedef i32 PackageID typedef i32 TaskID typedef i32 ResultID +typedef i32 InteractionID typedef list<string> LinkList typedef string PluginName typedef byte Progress @@ -38,6 +39,31 @@ enum ElementType { File } +// types for user interaction +// some may only be place holder currently not supported +// also all input - output combination are not reasonable, see InteractionManager for further info +enum Input { + NONE, + TEXT, + TEXTBOX, + PASSWORD, + BOOL, // confirm like, yes or no dialog + CLICK, // for positional captchas + CHOICE, // choice from list + MULTIPLE, // multiple choice from list of elements + LIST, // arbitary list of elements + TABLE // table like data structure +} +// more can be implemented by need + +// this describes the type of the outgoing interaction +// ensure they can be logcial or'ed +enum Output { + CAPTCHA = 1, + QUESTION = 2, + NOTIFICATION = 4, +} + struct DownloadInfo { 1: FileID fid, 2: string name, @@ -111,6 +137,18 @@ struct PackageData { 13: optional list<FileID> fids } +struct InteractionTask { + 1: InteractionID iid, + 2: Input input, + 3: list<string> structure, + 4: list<string> preset, + 5: Output output, + 6: list<string> data, + 7: string title, + 8: string description, + 9: string plugin, +} + struct CaptchaTask { 1: i16 tid, 2: binary data, @@ -257,13 +295,6 @@ service Pyload { list<PackageID> deleteFinished(), void restartFailed(), - - //captcha - bool isCaptchaWaiting(), - CaptchaTask getCaptchaTask(1: bool exclusive), - string getCaptchaTaskStatus(1: TaskID tid), - void setCaptchaResult(1: TaskID tid, 2: string result), - //events list<EventInfo> getEvents(1: string uuid) @@ -289,8 +320,18 @@ service Pyload { //info // {plugin: {name: value}} map<PluginName, map<string,string>> getAllInfo(), - map<string, string> getInfoByPlugin(1: PluginName plugin) + map<string, string> getInfoByPlugin(1: PluginName plugin), //scheduler + // TODO + + + // User interaction + + //captcha + bool isCaptchaWaiting(), + CaptchaTask getCaptchaTask(1: bool exclusive), + string getCaptchaTaskStatus(1: TaskID tid), + void setCaptchaResult(1: TaskID tid, 2: string result), } |