From 698d37f535e28c4fbfe6f24e6ca89769a5bb17a3 Mon Sep 17 00:00:00 2001 From: Damien Churchill Date: Mon, 20 Jul 2009 10:51:33 +0000 Subject: [PATCH] setup automatically generating the core's rpc api --- deluge/_rpcapi.py | 20 ++ docs/build/doctrees/core/index.doctree | Bin 2387 -> 2630 bytes docs/build/doctrees/core/rpc.doctree | Bin 0 -> 112179 bytes docs/build/doctrees/environment.pickle | Bin 15743 -> 27515 bytes docs/build/html/_sources/core/rpc.txt | 3 +- docs/build/html/core/rpc.html | 342 ++++++++++++++++++++++++- docs/build/html/genindex.html | 84 +++++- docs/build/html/objects.inv | 106 ++++++-- docs/build/html/searchindex.js | 2 +- docs/source/conf.py | 2 +- docs/source/core/index.rst | 6 +- docs/source/core/rpc.rst | 105 ++++++++ 12 files changed, 630 insertions(+), 40 deletions(-) create mode 100644 deluge/_rpcapi.py create mode 100644 docs/build/doctrees/core/rpc.doctree create mode 100644 docs/source/core/rpc.rst diff --git a/deluge/_rpcapi.py b/deluge/_rpcapi.py new file mode 100644 index 000000000..4ca9dc226 --- /dev/null +++ b/deluge/_rpcapi.py @@ -0,0 +1,20 @@ +from new import classobj +from deluge.core.core import Core +from deluge.core.daemon import Daemon + +class RpcApi: + pass + +def scan_for_methods(obj): + methods = { + '__doc__': 'Methods available in %s' % obj.__name__.lower() + } + for d in dir(obj): + if not hasattr(getattr(obj,d), '_rpcserver_export'): + continue + methods[d] = getattr(obj, d) + cobj = classobj(obj.__name__.lower(), (object,), methods) + setattr(RpcApi, obj.__name__.lower(), cobj) + +scan_for_methods(Core) +scan_for_methods(Daemon) diff --git a/docs/build/doctrees/core/index.doctree b/docs/build/doctrees/core/index.doctree index d935f89a728173803efc9a162c39ddb119442e81..f5eac5438c2b4d53683f0acc2587b4ec101b7823 100644 GIT binary patch literal 2630 zcmZ`*_haNn6?S~~dUwz5E?07m93`-U*a{FJgq{l}G1(l4Uvd;7w9@R3Vo9SnGqTsf zl7v7Khu(Ydy?6NA;2TM6`yAMxR?^Iy?|tw4-kZl~dr_>S(k7`{&s8i;*F9z;w_UzT z@$7_;^{A7FnXtQsFg!Qm`Rgk)Gc#6-%dtqyk+>WwEx6S;bi$MaV-t&TDi2~YG`uk3 zHZ2#SHX_J`G2sY7IzD%4IV!crIe}57jszd?Q#Tff6}sKL*r$_WY1L3En=2~-)Mvgk% zX^@6%qV$$2!bo_9R*xdQ z@oGq()n&frfmY+yfjkG&OY&HZ*R`>HjuvbSRz_PDq(h6-PE`xAWkgkOte z4?wW_U(tQJV(^@`sx;Wr{0%^U)}&@A9L zImmAY)p?l>gcdQsWlx@^?m^A?UYZ-FYQR_aTqgIqoZjkEe49)0?Jlu*&;rDx6O`tD zpC7p1fnjQ@u3f!yy^W_ToGv2Xc#7W{QcEUr46#1AM~g`wr6tUhq}bl~`60OxQacOB zu_&zMs}KAKKgV2a%G|rkfk56aB|2_(n46)}nb3T#PfPm-s-*Gm32#yxe``U|gde6= zvzrZ68cbIje#GbNbm9j4RlDEg^Ly#kk>x@4>3u%GpE^-uEBhMueg1&MM~hRRSCR{0 z>wSa=9pQsMBS$R?r7ds|`qWP1#_|y?zjPRj;n-(EOVh(@0K*B7XcewXG~5@UTa1J? zEPYO>ZG^Q+J~I61A#o42%B{%b?!#ePqVw^V;&j4Uk4{dh2%M(?e9LeS7&jxd(lJ_F zfqf#6T!mGi7WFW~QuMe|r(DnlX>Dq?J2X|vR0rVbd0gbU3YQI`u* zxE!FiJVHRzr)2~66hWji*NP2W6cP$O1gE5VC$U}LrlmB@M#K>}$&KC%_e&T9OY{v+OBH@=mC82NKM!Hj~eOVe=k?8ZE`B9#x55r49& z6%@Cfn8Yg0pF-p)RpC}3vM@;l^dODNhr)jP8M=f_vVEr=R6VF>2Y+Udj){DmKihBe zDvT&&%e#AIqHl=E^r?Jsow*Hs?Z0ie;=ZD z72NmT59rp$cRM>f>&32>DzAJOi){}pjmJNvi#H~6M87|hPtvmMHNimwKc?9v=AYnv z%n&yT8;*avM;B^`h*VTIMT%Ai)1mw`=&+%rQkmhO`}_+!Qz*mFHmG0x3NMzbocFueulwbIP9N>R_08xv8#DFH|Luf-Cs*Yu17#e(kJTOj_Y?ku zJde(dG55!6GXKdP-8g;eYu2Pinc+;(GC~3IDqs Gtp68==hP|y delta 1381 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∾aRup14JbCvFwuiQ7PVV#|2S+)ja? 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 literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index ca33f75b2dc030903d5b88fe6cf77d783130b6f9..45f09cb8528984ddfb50d681915302f2316506b5 100644 GIT binary patch literal 27515 zcmb_l2b>c{`=*zpgV@CrM1#tm1wrf}h=?F<^(-Oga(lPQ<&x~14IJv)ImO-;QS23a z@4ffld+)t`_W$$DX0qAKmGJ#Pem~}UXJ+SlpPAVyTe5dpw@@sbvEr%bDl@e(F6mU0 znQ|&7=im+XG{fNG()3@l+&Iku{M#D7<8@J-F6bJ(_dUb?I0nmJ@;c2=wHVrafeq z(LI{U*h6O-z4C&Gx%O%yOUbP1-=#~Jnd->O=~RETJ={`iYkDFlpR~HA^w#u4(mYjx z%GuEd^JsgGoKZo4d0%V7N4yC+S$i#ude^p;yme}gUQXO$E!TDJ^+HBZuUSTfVo=Qb zW~)-^Ix}0Lj;gTNPurEQy+O$6E73*SbWUQXJ<{lcW_KKk*XA5BjdJY`(d>1(4BIJd zj}F@#8NFl4Xf})3#$g+7yqqy%dlRF3ye?~R8n!nx`qV~ajbhek?Xh9IDrfYGS?Fi9 znOz;WH*c+IzS)dc-U5}`(zUk=S(MSEF6u<>aWx~+9($X~Sh~rqbkdbm%w(>?+&Ejw zO7RSeI`MRB1AA+uS0>6nvBz7Lx!S1F+le+%nmxhjscLL*ldClbdaanPj-^xe@dkTh z$U-}8>)P8XuNEr2eaJ#Jcd$^q9W7LACkr*&*+M-g~n@`3#cpk+a5I+tR^Ii!CwBwfFQijk9(|))Z9A znqc(KJF{o2xW!5hji(@>J{mJsy|QVXl53gk+rNylFYTK+lE_Uq$3my+r9uKBRmmUwH z$3yAyFy--ZhX9U$750VH8_p-3RSi9UHgJUV_v8l^CC9p z#ca$=*qE2HF)ve%dASmFg==4_8?&hUrp=$h?z;+2dA{G2MYBLtQ#xg@R9>%k?Q05N zuT@^Jqu1-{^#*#qkzQ|7UT+Rr811*X_N^!q9PNtoHjeh&70DeWxsxP!k>qZY+{4j+ zHAnlsO8$MWeScoQbsMs7@x=OrJZB7ONTzEePCDj@iOKf?Z`yy*=o?uSl~jE$6|*0j zWmI5ZuA(pM?YF1aB&&b-37{gnyV`@gXADw0NUT8`d6RQ2#jPWUIY7 zu-cJas*w`1)%m67NmZe2Hi9`@;;7J5UWJ}EdgUj~XY^w2#VarcVal$spT+F>oNGUi z9YRwyitg`mouKkWNFtfOUi&Qp}brxe*ei!Yi_CWS~#vpPv zQ@dKnviAF7`vbjfqaVG+1BV!^d3NQL;w8`MU##5d)f7$TqDja8Flr39oTg+1i?kET zWw4Bzb*erep+2>`J|7#s^L=E0V)XJRJNr{(2#Z=~G83tdX4U4%{>

Remote API

-

TODO

+
+
+ +class deluge._rpcapi.RpcApi
+
+
+ +class core
+

Methods available in core

+
+
+add_torrent_file(filename, filedump, options)
+

Adds a torrent file to the session.

+ +++ + + + + + +
Parameters:
    +
  • filename – str, the filename of the torrent
  • +
  • filedump – str, a base64 encoded string of the torrent file contents
  • +
  • options – dict, the options to apply to the torrent on add
  • +
+
Returns:

the torrent_id as a str or None

+
+
+ +
+
+add_torrent_magnet(uri, options)
+

Adds a torrent from a magnet link.

+ +++ + + + +
Parameters:
    +
  • uri – str, the magnet link
  • +
  • options – dict, the options to apply to the torrent on add
  • +
+
+
+ +
+
+add_torrent_url(url, options, headers=None)
+

Adds a torrent from a url. Deluge will attempt to fetch the torrent +from url prior to adding it to the session.

+ +++ + + + + + +
Parameters:
    +
  • url – str, the url pointing to the torrent file
  • +
  • options – dict, the options to apply to the torrent on add
  • +
  • headers – dict, any optional headers to send
  • +
+
Returns:

the torrent_id as a str or None, if calling locally, then it +will return a Deferred that fires once the torrent has been added

+
+
+ +
+
+force_recheck(torrent_ids)
+
Forces a data recheck on torrent_ids
+ +
+
+get_available_plugins()
+
Returns a list of plugins available in the core
+ +
+
+get_cache_status()
+

Returns a dictionary of the session’s cache status.

+ +++ + + + +
Returns:a dict of the cache status
+
+ +
+
+get_config()
+
Get all the preferences as a dictionary
+ +
+
+get_config_value(key)
+
Get the config value for key
+ +
+
+get_config_values(keys)
+
Get the config values for the entered keys
+ +
+
+get_dht_nodes()
+
Returns the number of dht nodes
+ +
+
+get_download_rate()
+
Returns the payload download rate
+ +
+
+get_enabled_plugins()
+
Returns a list of enabled plugins in the core
+ +
+
+get_filter_tree(show_zero_hits=True, hide_cat=None)
+
returns {field: [(value,count)] } +for use in sidebar(s)
+ +
+
+get_health()
+
Returns True if we have established incoming connections
+ +
+
+get_listen_port()
+
Returns the active listen port
+ +
+
+get_num_connections()
+
Returns the current number of connections
+ +
+
+get_path_size(path)
+
Returns the size of the file or folder ‘path’ and -1 if the path is +unaccessible (non-existent or insufficient privs)
+ +
+
+get_session_state()
+
Returns a list of torrent_ids in the session.
+ +
+
+get_session_status(keys)
+

Gets the session status values for ‘keys’

+ +++ + + + + + + + +
Parameter:keys – list of strings, the keys for which we want values
Returns:a dictionary of {key: value, ...}
Return type:dict
+
+ +
+
+get_stats()
+
document me!!!
+ +
+
+get_status_keys()
+
returns all possible keys for the keys argument in get_torrent(s)_status.
+ +
+
+get_torrents_status(filter_dict, keys)
+
returns all torrents , optionally filtered by filter_dict.
+ +
+
+get_upload_rate()
+
Returns the payload upload rate
+ +
+
+pause_all_torrents()
+
Pause all torrents in the session
+ +
+
+rename_files(torrent_id, filenames)
+
Renames files in ‘torrent_id’. The ‘filenames’ parameter should be a +list of (index, filename) pairs.
+ +
+
+rename_folder(torrent_id, folder, new_folder)
+
Renames the ‘folder’ to ‘new_folder’ in ‘torrent_id’.
+ +
+
+rescan_plugins()
+
Rescans the plugin folders for new plugins
+ +
+
+resume_all_torrents()
+
Resume all torrents in the session
+ +
+
+set_config(config)
+
Set the config with values from dictionary
+ +
+
+set_torrent_auto_managed(torrent_id, value)
+
Sets the auto managed flag for queueing purposes
+ +
+
+set_torrent_file_priorities(torrent_id, priorities)
+
Sets a torrents file priorities
+ +
+
+set_torrent_max_connections(torrent_id, value)
+
Sets a torrents max number of connections
+ +
+
+set_torrent_max_download_speed(torrent_id, value)
+
Sets a torrents max download speed
+ +
+
+set_torrent_max_upload_slots(torrent_id, value)
+
Sets a torrents max number of upload slots
+ +
+
+set_torrent_max_upload_speed(torrent_id, value)
+
Sets a torrents max upload speed
+ +
+
+set_torrent_move_completed(torrent_id, value)
+
Sets the torrent to be moved when completed
+ +
+
+set_torrent_move_completed_path(torrent_id, value)
+
Sets the path for the torrent to be moved when completed
+ +
+
+set_torrent_options(torrent_ids, options)
+
Sets the torrent options for torrent_ids
+ +
+
+set_torrent_prioritize_first_last(torrent_id, value)
+
Sets a higher priority to the first and last pieces
+ +
+
+set_torrent_remove_at_ratio(torrent_id, value)
+
Sets the torrent to be removed at ‘stop_ratio’
+ +
+
+set_torrent_stop_at_ratio(torrent_id, value)
+
Sets the torrent to stop at ‘stop_ratio’
+ +
+
+set_torrent_stop_ratio(torrent_id, value)
+
Sets the ratio when to stop a torrent if ‘stop_at_ratio’ is set
+ +
+
+set_torrent_trackers(torrent_id, trackers)
+
Sets a torrents tracker list. trackers will be [{“url”, “tier”}]
+ +
+
+test_listen_port()
+
Checks if active port is open
+ +
+
+upload_plugin(filename, plugin_data)
+
This method is used to upload new plugins to the daemon. It is used +when connecting to the daemon remotely and installing a new plugin on +the client side. ‘plugin_data’ is a xmlrpc.Binary object of the file data, +ie, plugin_file.read()
+ +
+ +
+
+ +class RpcApi.daemon
+

Methods available in daemon

+
+
+get_method_list()
+
Returns a list of the exported methods.
+ +
+
+info()
+

Returns some info from the daemon.

+ +++ + + + +
Returns:str, the version number
+
+ +
+ +
+
diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html index 2f8757b0e..d5a99141e 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -43,7 +43,7 @@

Index

- _ | A | C | D | F | G | I | L | O | R | S | V | W + _ | A | C | D | F | G | I | L | O | P | R | S | T | U | V | W
@@ -60,8 +60,11 @@
+
add_torrent_file() (deluge._rpcapi.RpcApi.core method)
+
add_torrent_magnet() (deluge._rpcapi.RpcApi.core method)
+
add_torrent_url() (deluge._rpcapi.RpcApi.core method)
apply_all() (deluge.config.Config method)
-
apply_set_functions() (deluge.config.Config method)
+
apply_set_functions() (deluge.config.Config method)

C

@@ -88,9 +91,10 @@
fdate() (in module deluge.common)
fetch_url() (in module deluge.common)
+
force_recheck() (deluge._rpcapi.RpcApi.core method)
fpcnt() (in module deluge.common)
-
fpeer() (in module deluge.common)
-
free_space() (in module deluge.common)
+
fpeer() (in module deluge.common)
+
free_space() (in module deluge.common)
fsize() (in module deluge.common)
fspeed() (in module deluge.common)
ftime() (in module deluge.common)
@@ -100,12 +104,34 @@
+
get_available_plugins() (deluge._rpcapi.RpcApi.core method)
+
get_cache_status() (deluge._rpcapi.RpcApi.core method)
+
get_config() (deluge._rpcapi.RpcApi.core method)
+
get_config_value() (deluge._rpcapi.RpcApi.core method)
+
get_config_values() (deluge._rpcapi.RpcApi.core method)
get_default_config_dir() (in module deluge.common)
get_default_download_dir() (in module deluge.common)
+
get_dht_nodes() (deluge._rpcapi.RpcApi.core method)
+
get_download_rate() (deluge._rpcapi.RpcApi.core method)
+
get_enabled_plugins() (deluge._rpcapi.RpcApi.core method)
+
get_filter_tree() (deluge._rpcapi.RpcApi.core method)
+
get_health() (deluge._rpcapi.RpcApi.core method)
get_item() (deluge.config.Config method)
-
get_path_size() (in module deluge.common)
+
get_listen_port() (deluge._rpcapi.RpcApi.core method)
+
get_method_list() (deluge._rpcapi.RpcApi.daemon method)
+
get_num_connections() (deluge._rpcapi.RpcApi.core method)
+
get_path_size() (deluge._rpcapi.RpcApi.core method)
+
+
(in module deluge.common)
+
get_pixmap() (in module deluge.common)
get_revision() (in module deluge.common)
+
get_session_state() (deluge._rpcapi.RpcApi.core method)
+
get_session_status() (deluge._rpcapi.RpcApi.core method)
+
get_stats() (deluge._rpcapi.RpcApi.core method)
+
get_status_keys() (deluge._rpcapi.RpcApi.core method)
+
get_torrents_status() (deluge._rpcapi.RpcApi.core method)
+
get_upload_rate() (deluge._rpcapi.RpcApi.core method)
get_version() (in module deluge.common)
@@ -113,6 +139,7 @@
+
info() (deluge._rpcapi.RpcApi.daemon method)
is_ip() (in module deluge.common)
is_magnet() (in module deluge.common)
is_url() (in module deluge.common)
@@ -134,12 +161,26 @@
osx_check() (in module deluge.common)
+

P

+
+
+ +
pause_all_torrents() (deluge._rpcapi.RpcApi.core method)
+
+

R

register_change_callback() (deluge.config.Config method)
-
register_set_function() (deluge.config.Config method)
+
register_set_function() (deluge.config.Config method)
+
rename_files() (deluge._rpcapi.RpcApi.core method)
+
rename_folder() (deluge._rpcapi.RpcApi.core method)
+
rescan_plugins() (deluge._rpcapi.RpcApi.core method)
+
resume_all_torrents() (deluge._rpcapi.RpcApi.core method)
+
RpcApi (class in deluge._rpcapi)
+
RpcApi.core (class in deluge._rpcapi)
+
RpcApi.daemon (class in deluge._rpcapi)
run_converter() (deluge.config.Config method)
@@ -148,7 +189,36 @@
save() (deluge.config.Config method)
-
set_item() (deluge.config.Config method)
+
set_config() (deluge._rpcapi.RpcApi.core method)
+
set_item() (deluge.config.Config method)
+
set_torrent_auto_managed() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_file_priorities() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_max_connections() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_max_download_speed() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_max_upload_slots() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_max_upload_speed() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_move_completed() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_move_completed_path() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_options() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_prioritize_first_last() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_remove_at_ratio() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_stop_at_ratio() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_stop_ratio() (deluge._rpcapi.RpcApi.core method)
+
set_torrent_trackers() (deluge._rpcapi.RpcApi.core method)
+
+ +

T

+
+
+ +
test_listen_port() (deluge._rpcapi.RpcApi.core method)
+
+ +

U

+
+
+ +
upload_plugin() (deluge._rpcapi.RpcApi.core method)

V

diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 33d615883..8e7ff0b1e 100644 --- a/docs/build/html/objects.inv +++ b/docs/build/html/objects.inv @@ -3,40 +3,90 @@ # Version: 1.2.0-dev deluge.config mod modules/config.html deluge.common mod modules/common.html -deluge.config.Config.apply_all method modules/config.html deluge.config.Config.__getitem__ method modules/config.html -deluge.config.Config.__setitem__ method modules/config.html -deluge.config.Config class modules/config.html -deluge.common.is_ip function modules/common.html -deluge.config.Config.get_item method modules/config.html -deluge.common.fsize function modules/common.html -deluge.common.ftime function modules/common.html -deluge.common.free_space function modules/common.html -deluge.config.Config.config_file attribute modules/config.html -deluge.common.open_file function modules/common.html -deluge.common.get_default_config_dir function modules/common.html -deluge.common.open_url_in_browser function modules/common.html -deluge.common.get_path_size function modules/common.html -deluge.config.Config.register_set_function method modules/config.html -deluge.common.is_url function modules/common.html -deluge.common.fpcnt function modules/common.html -deluge.common.fspeed function modules/common.html -deluge.config.Config.run_converter method modules/config.html -deluge.config.Config.register_change_callback method modules/config.html -deluge.common.get_version function modules/common.html +deluge._rpcapi.RpcApi.core.set_torrent_stop_at_ratio method core/rpc.html +deluge._rpcapi.RpcApi.core.get_config_values method core/rpc.html +deluge._rpcapi.RpcApi.core.get_status_keys method core/rpc.html +deluge._rpcapi.RpcApi.core.get_torrents_status method core/rpc.html +deluge._rpcapi.RpcApi.core.set_torrent_max_download_speed method core/rpc.html +deluge._rpcapi.RpcApi.core.set_torrent_prioritize_first_last method core/rpc.html deluge.config.Config.config attribute modules/config.html -deluge.config.Config.apply_set_functions method modules/config.html -deluge.common.get_revision function modules/common.html -deluge.common.fdate function modules/common.html -deluge.common.get_pixmap function modules/common.html +deluge._rpcapi.RpcApi.daemon.get_method_list method core/rpc.html +deluge._rpcapi.RpcApi.core.rescan_plugins method core/rpc.html deluge.common.fpeer function modules/common.html -deluge.common.is_magnet function modules/common.html -deluge.common.fetch_url function modules/common.html deluge.config.Config.load method modules/config.html deluge.common.create_magnet_uri function modules/common.html +deluge.common.vista_check function modules/common.html +deluge._rpcapi.RpcApi.core.add_torrent_magnet method core/rpc.html +deluge.common.is_ip function modules/common.html +deluge._rpcapi.RpcApi.core.rename_files method core/rpc.html +deluge._rpcapi.RpcApi.core.get_session_status method core/rpc.html +deluge._rpcapi.RpcApi.core.test_listen_port method core/rpc.html +deluge.common.ftime function modules/common.html +deluge.common.get_default_config_dir function modules/common.html +deluge._rpcapi.RpcApi.core.get_dht_nodes method core/rpc.html +deluge._rpcapi.RpcApi.core.set_torrent_auto_managed method core/rpc.html +deluge.common.fpcnt function modules/common.html +deluge._rpcapi.RpcApi.core.set_torrent_max_connections method core/rpc.html +deluge.common.fspeed function modules/common.html +deluge._rpcapi.RpcApi.core.get_cache_status method core/rpc.html +deluge._rpcapi.RpcApi.core.set_config method core/rpc.html +deluge._rpcapi.RpcApi.daemon.info method core/rpc.html +deluge._rpcapi.RpcApi.core.force_recheck method core/rpc.html +deluge.common.get_version function modules/common.html +deluge._rpcapi.RpcApi.core.get_stats method core/rpc.html +deluge._rpcapi.RpcApi.core.set_torrent_move_completed_path method core/rpc.html +deluge._rpcapi.RpcApi.core.get_health method core/rpc.html +deluge.common.fdate function modules/common.html +deluge._rpcapi.RpcApi.core.set_torrent_remove_at_ratio method core/rpc.html +deluge._rpcapi.RpcApi.core.get_download_rate method core/rpc.html +deluge._rpcapi.RpcApi.core.rename_folder method core/rpc.html +deluge.common.get_default_download_dir function modules/common.html +deluge._rpcapi.RpcApi.daemon class core/rpc.html +deluge._rpcapi.RpcApi.core.set_torrent_options method core/rpc.html +deluge._rpcapi.RpcApi.core.get_config_value method core/rpc.html +deluge._rpcapi.RpcApi.core.get_num_connections method core/rpc.html +deluge.config.Config.apply_all method modules/config.html +deluge._rpcapi.RpcApi.core.get_path_size method core/rpc.html +deluge.config.Config.__setitem__ method modules/config.html +deluge._rpcapi.RpcApi.core.pause_all_torrents method core/rpc.html +deluge.config.Config.get_item method modules/config.html +deluge._rpcapi.RpcApi.core.add_torrent_file method core/rpc.html +deluge.config.Config.register_set_function method modules/config.html +deluge.common.free_space function modules/common.html +deluge.common.open_file function modules/common.html +deluge._rpcapi.RpcApi.core.get_listen_port method core/rpc.html +deluge.common.is_url function modules/common.html +deluge._rpcapi.RpcApi.core.get_enabled_plugins method core/rpc.html +deluge.config.Config.register_change_callback method modules/config.html +deluge._rpcapi.RpcApi.core.get_upload_rate method core/rpc.html +deluge.config.Config.apply_set_functions method modules/config.html +deluge._rpcapi.RpcApi.core.set_torrent_max_upload_speed method core/rpc.html +deluge.common.is_magnet function modules/common.html +deluge._rpcapi.RpcApi.core.get_available_plugins method core/rpc.html +deluge._rpcapi.RpcApi.core.get_session_state method core/rpc.html +deluge.common.get_path_size function modules/common.html +deluge._rpcapi.RpcApi.core.set_torrent_stop_ratio method core/rpc.html +deluge._rpcapi.RpcApi.core class core/rpc.html deluge.common.osx_check function modules/common.html deluge.config.Config.save method modules/config.html +deluge._rpcapi.RpcApi.core.get_filter_tree method core/rpc.html +deluge._rpcapi.RpcApi.core.upload_plugin method core/rpc.html +deluge._rpcapi.RpcApi.core.resume_all_torrents method core/rpc.html +deluge.common.fsize function modules/common.html +deluge._rpcapi.RpcApi.core.set_torrent_file_priorities method core/rpc.html +deluge._rpcapi.RpcApi class core/rpc.html +deluge.config.Config.config_file attribute modules/config.html +deluge.common.open_url_in_browser function modules/common.html +deluge.config.Config.run_converter method modules/config.html +deluge._rpcapi.RpcApi.core.set_torrent_move_completed method core/rpc.html +deluge.common.get_revision function modules/common.html +deluge._rpcapi.RpcApi.core.get_config method core/rpc.html +deluge.common.get_pixmap function modules/common.html +deluge.common.fetch_url function modules/common.html +deluge._rpcapi.RpcApi.core.set_torrent_max_upload_slots method core/rpc.html +deluge.config.Config class modules/config.html deluge.config.Config.set_item method modules/config.html deluge.common.windows_check function modules/common.html -deluge.common.vista_check function modules/common.html -deluge.common.get_default_download_dir function modules/common.html +deluge._rpcapi.RpcApi.core.set_torrent_trackers method core/rpc.html +deluge._rpcapi.RpcApi.core.add_torrent_url method core/rpc.html diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index 053aef1a3..77269916b 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({desctypes:{"0":"method","1":"class","2":"function","3":"attribute"},terms:{represent:8,all:[6,1],is_ip:8,four:6,follow:1,disk:1,dht:[],output_vers:1,privat:4,exception_typ:6,base64:[],readabl:8,send:[],program:8,sent:6,liter:[1,8],string:[6,1,8],fals:[1,8],util:8,stop_at_ratio:[],list:[6,8],upload:[],magnet:8,item:1,create_magnet_uri:8,rpc_respons:6,direct:0,second:8,download:8,config_dir:1,port:[],index:0,what:[6,1],repli:6,abl:4,access:[1,4,8],version:[1,8],"new":[],method:6,metadata:8,slot:[],full:4,hash:8,filter_dict:[],gener:6,get_health:[],rename_fil:[],path:[1,8],along:1,modifi:1,sinc:[1,8],valu:[6,1,4,8],open_url_in_brows:8,search:0,purpos:[],convers:1,get_download_r:[],queue:[],prior:[],osx_check:8,chang:[6,1],infohash:8,overrid:4,decim:8,appli:[],modul:[0,1],prefer:4,filenam:[1,8],initiliaz:1,api:[6,5],rename_fold:[],instal:[],total:8,establish:[],unit:8,regex:8,from:[6,8],would:[6,1],commun:6,regist:1,two:8,call:[6,1],type:[6,1,8],flag:[],accept:1,hold:6,cach:[],dot:6,must:1,none:[1,8],augment:1,can:[0,1,6],dec:8,root:0,fetch:8,def:1,control:1,defer:[],quickstart:0,process:6,get_default_download_dir:8,indic:0,want:[1,4],serial:1,multipl:6,filepath:8,anoth:6,add_torrent_url:[],how:4,set_item:1,instead:6,simpl:8,"23m":8,set_torrent_max_connect:[],get_filter_tre:[],max:[],lag:6,befor:1,mac:8,date:8,data:[6,8],attempt:[],add_torrent_magnet:[],caus:6,callback:1,su5225urmtueqldxqwrb2eqwn6kltykn:8,allow:1,enter:[],egg:8,order:6,config_fil:1,get_pixmap:8,move:[],rpc_event:6,paramet:[1,8],pixmap:8,monitor:1,set_torrent_track:[],gtk:[0,7,3],set_torrent_move_complet:[],platform:8,window:[4,8],bittorr:8,non:[],within:8,"return":[6,1,8],"__getitem__":1,auto:[],set_torrent_auto_manag:[],initi:[6,1],framework:4,new_fold:[],nov:0,register_set_funct:1,name:[6,1,8],anyth:1,config:[0,1,8],stop_ratio:[],request_id:6,delugerpc:[0,5,6],higher:[],event_nam:6,extj:4,replac:6,realli:1,filedump:[],connect:8,todo:6,event:[6,5],shown:8,space:8,payload:[],content:[0,1],adapt:0,print:1,get_default_config_dir:8,unaccess:[],sphinx:0,earlier:6,given:8,free:8,"__setitem__":1,base:[1,8],rencod:6,dictionari:1,org:8,"byte":8,could:[6,1],traceback:6,set_torrent_remove_at_ratio:[],set_config:[],filter:[],get_config:[],place:8,timezon:8,first:[],rang:[1,8],directli:1,onc:[],number:8,tier:[],done:1,messag:[6,5],owner:1,open:8,add_torrent_fil:[],size:8,prioriti:[],differ:[1,4],fetch_url:8,top:4,get_session_st:[],system:8,least:0,get_upload_r:[],master:0,interfac:[0,4,3],listen:[],consol:[0,2,3],option:8,specifi:4,part:8,than:1,serv:6,kind:6,keyword:6,remot:[6,5],free_spac:8,remov:[],rate:[],fpcnt:8,str:[6,1],is_magnet:8,torrent:8,recheck:[],browser:8,pre:[1,8],test_listen_port:[],arg:6,argument:[6,1],set_torrent_file_prior:[],have:1,tabl:0,need:[6,1],built:4,inform:4,mib:8,fsize:8,get_revis:8,note:1,without:6,take:[6,1],which:[6,1,4],fsize_b:8,unless:1,get_stat:[],object:[6,1],compress:6,pair:[],"class":[1,8],apply_al:1,url:8,urn:8,request:[6,5],uri:8,doe:[1,8],btih:8,set_torrent_max_upload_slot:[],determin:[6,8],apply_now:1,get_enabled_plugin:[],get_torrents_statu:[],show:8,upload_plugin:[],session:[],is_url:8,priv:[],involv:6,current:[1,8],onli:[1,8],ratio:8,configur:[3,1,4,8],activ:[],state:6,should:[0,1],dict:[6,1],get_num_connect:[],get_listen_port:[],get_dht_nod:[],folder:8,local:8,count:[],get_vers:8,variou:[1,8],get:[1,8],stop:[],ssl:[3,4],enabl:4,provid:8,fpeer:8,common:[0,8],contain:0,respond:6,certif:4,set:1,fspeed:8,delug:[0,1,2,3,4,5,6,7,8],signifi:1,respons:[6,5],awar:6,statu:[],someth:1,listen_interfac:[],set_torrent_prioritize_first_last:[],written:1,ftime:8,altern:6,kei:[1,4],vista_check:8,succeed:1,come:6,tue:0,addit:6,last:[],rtype:1,rescan_plugin:[],rpc_error:6,com:[],load:1,simpli:1,point:[],rescan:[],set_torrent_move_completed_path:[],header:[],rpc:[6,5],been:[],insuffici:[],valueerror:1,plugin_data:[],files:8,fire:[],convert:1,ani:[],func:1,those:1,"case":6,look:8,exception_msg:6,zlib:6,windows_check:8,"while":6,error:[6,5],get_available_plugin:[],"default":[1,4,8],kwarg:6,set_torrent_stop_ratio:[],conf:1,incom:[],revis:8,"_statu":[],welcom:0,receiv:6,get_status_kei:[],same:[6,1,4],binari:[],epoch:8,document:0,complet:0,http:8,webserv:4,see:[1,4,8],upon:6,get_cache_statu:[],rais:[6,1],apply_set_funct:1,kib:8,resume_all_torr:[],exampl:1,thi:[0,1,6],plugin:6,show_zero_hit:[],protocol:6,paus:[],less:1,hide_cat:[],via:4,human:8,sidebar:[],speed:8,web:[0,4,3],run_convert:1,easi:8,except:6,param:1,desktop:8,add:4,valid:8,register_change_callback:1,input:1,save:1,build:8,fname:8,xmlrpc:[],format:[6,1,5,8],read:[],piec:[],set_torrent_max_download_spe:[],know:6,get_item:1,daemon:[6,4],like:0,docutil:[1,8],get_session_statu:[],integ:6,server:6,page:0,depend:6,"function":[1,8],www:[],num_peer:8,set_torrent_max_upload_spe:[],some:1,percentag:8,intern:1,toctre:0,get_torr:[],save_dht_st:[],per:8,tracker:8,total_p:8,core:[0,5],set_torrent_stop_at_ratio:[],run:[1,4],usag:[1,8],peer:8,after:1,plugin_fil:[],side:6,includ:8,input_rang:1,client:6,"float":8,encod:[],ensur:6,announc:8,your:[0,4],manag:[],span:[1,8],wai:[1,4],transfer:8,force_recheck:[],why:6,avail:8,start:[],return_valu:6,gib:8,resum:[],pause_all_torr:[],torrent_id:[],form:8,forc:[],tupl:1,bundl:6,message_typ:6,keyerror:1,link:[],newer:1,renam:[],line:1,"true":[1,8],info:8,made:6,possibl:[],whether:1,wish:4,displai:8,below:[6,1],fdate:8,similar:1,emit:6,featur:4,creat:[0,1,8,4,6],"int":[6,1,8],get_config_valu:[],repres:8,twist:4,exist:8,file:[0,1,8],check:8,vista:8,encrypt:4,set_torrent_opt:[],when:[1,4],detail:6,field:[],other:[6,4],bool:[1,8],test:[1,8],you:[0,1,4],node:[],intend:4,svn:8,open_fil:8,longer:6,directori:[1,8],yatblog:[],time:8,get_path_s:8},titles:["Welcome to Deluge’s documentation!","deluge.config","Deluge Console UI","Deluge’s Interfaces","Deluge Web UI","The Deluge Core","Deluge RPC","Deluge GTK UI","deluge.common"],modules:{"deluge.config":1,"deluge.common":8},descrefs:{"deluge.config":{Config:[1,1]},"deluge.common":{is_ip:[8,2],get_pixmap:[8,2],get_default_download_dir:[8,2],fspeed:[8,2],fpeer:[8,2],get_revision:[8,2],is_url:[8,2],vista_check:[8,2],fetch_url:[8,2],open_file:[8,2],get_version:[8,2],fsize:[8,2],ftime:[8,2],get_default_config_dir:[8,2],open_url_in_browser:[8,2],get_path_size:[8,2],free_space:[8,2],windows_check:[8,2],fpcnt:[8,2],osx_check:[8,2],fdate:[8,2],create_magnet_uri:[8,2],is_magnet:[8,2]},"deluge.config.Config":{apply_set_functions:[1,0],apply_all:[1,0],config_file:[1,3],"__getitem__":[1,0],run_converter:[1,0],set_item:[1,0],load:[1,0],"__setitem__":[1,0],register_change_callback:[1,0],register_set_function:[1,0],save:[1,0],config:[1,3],get_item:[1,0]}},filenames:["index","modules/config","interfaces/console","interfaces/index","interfaces/web","core/index","core/rpc","interfaces/gtk","modules/common"]}) \ No newline at end of file +Search.setIndex({desctypes:{"0":"method","1":"attribute","2":"function","3":"class"},terms:{represent:8,all:[6,1],is_ip:8,four:6,follow:1,disk:1,dht:6,output_vers:1,privat:4,exception_typ:6,base64:6,readabl:8,send:6,program:8,sent:6,liter:[1,8],string:[6,1,8],fals:[1,8],util:8,stop_at_ratio:6,list:[6,8],upload:6,magnet:[6,8],item:1,create_magnet_uri:8,rpc_respons:6,direct:0,second:8,download:[6,8],config_dir:1,port:6,index:[0,6],what:[6,1],repli:6,abl:4,access:[1,4,8],version:[6,1,8],"new":6,method:6,metadata:8,slot:6,full:4,hash:8,filter_dict:6,gener:6,get_health:6,rename_fil:6,path:[6,1,8],along:1,modifi:1,sinc:[1,8],valu:[6,1,4,8],open_url_in_brows:8,search:0,purpos:6,convers:1,get_download_r:6,queue:6,prior:6,osx_check:8,chang:[6,1],infohash:8,overrid:4,via:4,appli:6,modul:[0,1],prefer:[6,4],filenam:[6,1,8],initiliaz:1,api:[6,5],rename_fold:6,instal:6,total:8,establish:6,unit:8,regex:8,from:[6,8],would:[6,1],commun:6,regist:1,two:8,call:[6,1],type:[6,1,8],flag:6,accept:1,hold:6,cach:6,dot:6,must:1,none:[6,1,8],augment:1,can:[0,1,6],dec:8,root:0,fetch:[6,8],def:1,control:1,defer:6,quickstart:0,process:6,get_default_download_dir:8,indic:0,want:[6,1,4],serial:1,multipl:6,filepath:8,anoth:6,add_torrent_url:6,how:4,set_item:1,instead:6,simpl:8,"23m":8,set_torrent_max_connect:6,get_filter_tre:6,max:6,lag:6,befor:1,mac:8,date:8,data:[6,8],attempt:6,add_torrent_magnet:6,caus:6,callback:1,su5225urmtueqldxqwrb2eqwn6kltykn:8,allow:1,enter:6,egg:8,order:6,config_fil:1,get_pixmap:8,move:6,rpc_event:6,paramet:[6,1,8],pixmap:8,monitor:1,set_torrent_track:6,gtk:[0,7,3],set_torrent_move_complet:6,platform:8,window:[4,8],bittorr:8,non:6,within:8,"return":[6,1,8],"__getitem__":1,auto:6,set_torrent_auto_manag:6,initi:[6,1],framework:4,new_fold:6,nov:0,register_set_funct:1,name:[6,1,8],anyth:1,config:[0,1,8,6],stop_ratio:6,request_id:6,delugerpc:[0,5,6],higher:6,event_nam:6,extj:4,replac:6,realli:1,filedump:6,connect:[6,8],todo:[],event:[6,5],shown:8,space:8,payload:6,content:[0,1,6],adapt:0,print:1,get_default_config_dir:8,unaccess:6,sphinx:0,earlier:6,given:8,free:8,"__setitem__":1,base:[1,8],rencod:6,dictionari:[6,1],org:8,"byte":8,could:[6,1],traceback:6,set_torrent_remove_at_ratio:6,set_config:6,filter:6,get_config:6,place:8,timezon:8,first:6,rang:[1,8],directli:1,onc:6,number:[6,8],tier:6,done:1,messag:[6,5],owner:1,open:[6,8],add_torrent_fil:6,size:[6,8],prioriti:6,differ:[1,4],fetch_url:8,top:4,get_session_st:6,system:8,least:0,get_upload_r:6,master:0,interfac:[0,4,3],listen:6,consol:[0,2,3],option:[6,8],specifi:4,part:8,than:1,serv:6,kind:6,keyword:6,remot:[6,5],free_spac:8,remov:6,rate:6,fpcnt:8,str:[6,1],is_magnet:8,torrent:[6,8],recheck:6,browser:8,pre:[1,8],test_listen_port:6,arg:6,argument:[6,1],set_torrent_file_prior:6,have:[6,1],tabl:0,need:[6,1],built:4,inform:4,mib:8,fsize:8,get_revis:8,note:1,without:6,take:[6,1],which:[6,1,4],fsize_b:8,unless:1,get_stat:6,object:[6,1],compress:6,pair:6,"_rpcapi":6,"class":[6,1,8],apply_al:1,url:[6,8],urn:8,request:[6,5],uri:[6,8],doe:[1,8],btih:8,set_torrent_max_upload_slot:6,determin:[6,8],apply_now:1,get_enabled_plugin:6,get_torrents_statu:6,show:8,upload_plugin:6,session:6,is_url:8,priv:6,involv:6,current:[6,1,8],onli:[1,8],ratio:[6,8],configur:[3,1,4,8],activ:6,state:6,should:[0,1,6],dict:[6,1],get_num_connect:6,get_listen_port:6,get_dht_nod:6,folder:[6,8],local:[6,8],count:6,get_vers:8,variou:[1,8],get:[6,1,8],stop:6,ssl:[3,4],enabl:[6,4],provid:8,common:[0,8],contain:0,respond:6,certif:4,set:[6,1],fspeed:8,delug:[0,1,2,3,4,5,6,7,8],signifi:1,respons:[6,5],awar:6,statu:6,someth:1,listen_interfac:[],set_torrent_prioritize_first_last:6,written:1,ftime:8,rpcapi:6,altern:6,kei:[6,1,4],vista_check:8,succeed:1,come:6,tue:0,addit:6,last:6,rtype:1,rescan_plugin:6,rpc_error:6,com:[],load:1,simpli:1,point:6,rescan:6,set_torrent_move_completed_path:6,header:6,rpc:[6,5],been:6,insuffici:6,valueerror:1,plugin_data:6,files:8,fire:6,convert:1,ani:6,decim:8,func:1,those:1,"case":6,look:8,exception_msg:6,zlib:6,windows_check:8,"while":6,error:[6,5],get_method_list:6,get_available_plugin:6,"default":[1,4,8],kwarg:6,set_torrent_stop_ratio:6,conf:1,incom:6,revis:8,"_statu":6,welcom:0,receiv:6,get_status_kei:6,same:[6,1,4],binari:6,epoch:8,document:[0,6],complet:[0,6],http:8,webserv:4,see:[1,4,8],upon:6,get_cache_statu:6,rais:[6,1],apply_set_funct:1,kib:8,resume_all_torr:6,exampl:1,thi:[0,1,6],plugin:6,show_zero_hit:6,protocol:6,paus:6,less:1,hide_cat:6,fpeer:8,human:8,sidebar:6,speed:[6,8],web:[0,4,3],run_convert:1,easi:8,except:6,param:1,desktop:8,add:[6,4],valid:8,register_change_callback:1,input:1,save:1,build:8,fname:8,xmlrpc:6,format:[6,1,5,8],read:6,piec:6,set_torrent_max_download_spe:6,know:6,get_item:1,daemon:[6,4],like:0,docutil:[1,8],get_session_statu:6,integ:6,server:6,page:0,depend:6,"function":[1,8],www:[],num_peer:8,set_torrent_max_upload_spe:6,some:[6,1],percentag:8,intern:1,"export":6,toctre:0,get_torr:6,save_dht_st:[],per:8,tracker:[6,8],total_p:8,core:[0,5,6],set_torrent_stop_at_ratio:6,run:[1,4],usag:[1,8],peer:8,after:1,plugin_fil:6,side:6,includ:8,input_rang:1,client:6,"float":8,encod:6,ensur:6,announc:8,your:[0,4],manag:6,span:[1,8],wai:[1,4],transfer:8,force_recheck:6,why:6,avail:[6,8],start:[],return_valu:6,gib:8,resum:6,pause_all_torr:6,torrent_id:6,form:8,forc:6,tupl:1,bundl:6,message_typ:6,keyerror:1,link:6,newer:1,renam:6,line:1,"true":[6,1,8],info:[6,8],made:6,possibl:6,whether:1,wish:4,displai:8,below:[6,1],fdate:8,similar:1,emit:6,featur:4,creat:[0,1,8,4,6],"int":[6,1,8],get_config_valu:6,repres:8,twist:4,exist:[6,8],file:[0,1,8,6],check:[6,8],vista:8,encrypt:4,set_torrent_opt:6,when:[6,1,4],detail:6,field:6,other:[6,4],bool:[1,8],test:[1,8],you:[0,1,4],node:6,junk:[],intend:4,svn:8,open_fil:8,longer:6,directori:[1,8],yatblog:[],time:8,get_path_s:[6,8]},titles:["Welcome to Deluge’s documentation!","deluge.config","Deluge Console UI","Deluge’s Interfaces","Deluge Web UI","The Deluge Core","Deluge RPC","Deluge GTK UI","deluge.common"],modules:{"deluge.config":1,"deluge.common":8},descrefs:{"deluge._rpcapi.RpcApi.core":{force_recheck:[6,0],rename_files:[6,0],get_upload_rate:[6,0],set_torrent_move_completed_path:[6,0],add_torrent_file:[6,0],set_torrent_stop_ratio:[6,0],get_enabled_plugins:[6,0],get_available_plugins:[6,0],get_torrents_status:[6,0],get_path_size:[6,0],rename_folder:[6,0],add_torrent_url:[6,0],set_torrent_prioritize_first_last:[6,0],set_torrent_trackers:[6,0],get_dht_nodes:[6,0],get_status_keys:[6,0],set_torrent_max_download_speed:[6,0],upload_plugin:[6,0],test_listen_port:[6,0],get_stats:[6,0],get_filter_tree:[6,0],set_torrent_stop_at_ratio:[6,0],get_config_values:[6,0],get_listen_port:[6,0],resume_all_torrents:[6,0],get_session_status:[6,0],pause_all_torrents:[6,0],get_health:[6,0],set_torrent_move_completed:[6,0],get_cache_status:[6,0],rescan_plugins:[6,0],get_num_connections:[6,0],set_torrent_max_upload_speed:[6,0],set_torrent_max_upload_slots:[6,0],get_config_value:[6,0],add_torrent_magnet:[6,0],set_torrent_options:[6,0],set_torrent_remove_at_ratio:[6,0],set_config:[6,0],set_torrent_max_connections:[6,0],get_config:[6,0],get_download_rate:[6,0],set_torrent_file_priorities:[6,0],get_session_state:[6,0],set_torrent_auto_managed:[6,0]},"deluge.config":{Config:[1,3]},"deluge._rpcapi":{RpcApi:[6,3]},"deluge._rpcapi.RpcApi.daemon":{get_method_list:[6,0],info:[6,0]},"deluge.config.Config":{load:[1,0],apply_all:[1,0],config_file:[1,1],"__getitem__":[1,0],apply_set_functions:[1,0],run_converter:[1,0],set_item:[1,0],"__setitem__":[1,0],register_change_callback:[1,0],register_set_function:[1,0],save:[1,0],config:[1,1],get_item:[1,0]},"deluge._rpcapi.RpcApi":{core:[6,3],daemon:[6,3]},"deluge.common":{is_ip:[8,2],get_pixmap:[8,2],get_default_download_dir:[8,2],fspeed:[8,2],fpeer:[8,2],get_revision:[8,2],is_url:[8,2],vista_check:[8,2],fetch_url:[8,2],open_file:[8,2],get_version:[8,2],fsize:[8,2],ftime:[8,2],get_default_config_dir:[8,2],open_url_in_browser:[8,2],get_path_size:[8,2],free_space:[8,2],windows_check:[8,2],fpcnt:[8,2],osx_check:[8,2],fdate:[8,2],create_magnet_uri:[8,2],is_magnet:[8,2]}},filenames:["index","modules/config","interfaces/console","interfaces/index","interfaces/web","core/index","core/rpc","interfaces/gtk","modules/common"]}) \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index a77e2f4e0..250f33a4c 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -36,7 +36,7 @@ source_suffix = '.rst' master_doc = 'index' # General substitutions. -project = 'deluge' +project = 'Deluge' copyright = '2008, Andrew Resch' # The default replacements for |version| and |release|, also used in various diff --git a/docs/source/core/index.rst b/docs/source/core/index.rst index f276a1b2d..1a45bd549 100644 --- a/docs/source/core/index.rst +++ b/docs/source/core/index.rst @@ -1,2 +1,6 @@ The Deluge Core -=============== \ No newline at end of file +=============== + +.. toctree:: + + DelugeRPC \ No newline at end of file diff --git a/docs/source/core/rpc.rst b/docs/source/core/rpc.rst new file mode 100644 index 000000000..a229c1eb8 --- /dev/null +++ b/docs/source/core/rpc.rst @@ -0,0 +1,105 @@ +Deluge RPC +========== +--------------- +Message Formats +--------------- +DelugeRPC is a protocol used for daemon/client communication. There are four +types of messages involved in the protocol: RPC Request, RPC Response, +RPC Error and Event. All messages are zlib compressed rencoded strings and +their data formats are detailed below. + +""""""""""" +RPC Request +""""""""""" +This message is created and sent by the client to the server requesting that a +remote method be called. Multiple requests can be bundled in a list. + +**[[request_id, method, [args], {kwargs}], ...]** + +**request_id** (int) + An integer determined by the client that is used in replies from the server. + This is used to ensure the client knows which request the data is in + response to. Another alternative would be to respond in the same order the + requests come in, but this could cause lag if an earlier request takes + longer to process. + +**method** (str) + The name of the remote method to call. This name can be in dotted format to + call other objects or plugins methods. + +**args** (list) + The arguments to call the method with. + +**kwargs** (dict) + The keyword arguments to call the method with. + +"""""""""""" +RPC Response +"""""""""""" +This message is created and sent in response to a RPC Request from a client. It +will hold the return value of the requested method call. In the case of an +error, a RPC Error message will be sent instead. + +**[message_type, request_id, [return_value]]** + +**message_type** (int) + This will be a RPC_RESPONSE type id. This is used on the client side to + determine what kind of message is being received from the daemon. + +**request_id** (int) + The request_id is the same as the one sent by the client in the initial + request. It used on the client side to determine what message this is in + response to. + +**return_value** (list) + The return value of the method call. + +""""""""" +RPC Error +""""""""" +This message is created in response to an error generated while processing a +RPC Request and will serve as a replacement for a RPC Response message. + +**[message_type, request_id, exception_type, exception_msg, traceback]** + +**message_type** (int) + This will be a RPC_ERROR type id. + +**request_id** (int) + The request_id is the same as the one sent by the client in the initial + request. + +**exception_type** (str) + The type of exception raised. + +**exception_msg** (str) + The message as to why the exception was raised. + +**traceback** (str) + The traceback of the generated exception. + +""""" +Event +""""" +This message is created by the daemon and sent to the clients without being in +response to a RPC Request. Events are generally sent for changes in the +daemon's state that the clients need to be made aware of. + +**[message_type, event_name, data]** + +**message_type** (int) + This will be a RPC_EVENT type id. + +**event_name** (str) + This is the name of the event being emitted by the daemon. + +**data** (list) + Additional data to be sent with the event. This is dependent upon the event + being emitted. + +---------- +Remote API +---------- + +.. autoclass:: deluge._rpcapi.RpcApi + :members: \ No newline at end of file

`DZJC?w=uF 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 CP#J6h diff --git a/docs/build/html/_sources/core/rpc.txt b/docs/build/html/_sources/core/rpc.txt index 8c25f874c..a229c1eb8 100644 --- a/docs/build/html/_sources/core/rpc.txt +++ b/docs/build/html/_sources/core/rpc.txt @@ -101,4 +101,5 @@ daemon's state that the clients need to be made aware of. Remote API ---------- -TODO \ No newline at end of file +.. autoclass:: deluge._rpcapi.RpcApi + :members: \ No newline at end of file diff --git a/docs/build/html/core/rpc.html b/docs/build/html/core/rpc.html index 1cdf59186..8a45d4518 100644 --- a/docs/build/html/core/rpc.html +++ b/docs/build/html/core/rpc.html @@ -135,7 +135,347 @@ being emitted.