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