Ignore:
Timestamp:
Apr 5, 2009, 5:52:21 PM (13 years ago)
Author:
charles
Message:

(trunk) Use proper notation for json floating-point and bool types. For backwards compatability, still allow old-style printf strings as doubles, and 0s and 1s as bools.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/rpc-spec.txt

    r8148 r8154  
    1313
    14142.  Message Format
    15 
    16    Messages are formatted in a subset of JSON easily represented
    17    as bencoded data.  Arrays, objects, strings, and whole numbers
    18    all have one-to-one mappings between JSON and benc.
    19 
    20    Booleans and floating-point numbers are also used in the JSON messages.
    21    Those two types aren't native to benc, so they're encoded this way:
    22    Booleans are encoded as numbers where 0 is false and 1 is true.
    23    Floating-point numbers are represented as strings.
    2415
    2516   Messages are formatted as objects.  There are two types:
     
    9990   ----------------------------------+-------------------------------------------------
    10091   "downloadLimit"                   | number     maximum download speed (in K/s)
    101    "downloadLimited"                 | 'boolean'  true if "downloadLimit" is honored
     92   "downloadLimited"                 | boolean    true if "downloadLimit" is honored
    10293   "files-wanted"                    | array      indices of file(s) to download
    10394   "files-unwanted"                  | array      indices of file(s) to not download
    104    "honorsSessionLimits"             | 'boolean'  true if session upload limits are honored
     95   "honorsSessionLimits"             | boolean    true if session upload limits are honored
    10596   "ids"                             | array      torrent list, as described in 3.1
    10697   "peer-limit"                      | number     maximum number of peers
     
    10899   "priority-low"                    | array      indices of low-priority file(s)
    109100   "priority-normal"                 | array      indices of normal-priority file(s)
    110    "seedRatioLimit"                  | 'double'   session seeding ratio
     101   "seedRatioLimit"                  | double     session seeding ratio
    111102   "seedRatioMode"                   | number     which ratio to use.  See tr_ratiolimit
    112103   "uploadLimit"                     | number     maximum upload speed (in K/s)
    113    "uploadLimited"                   | 'boolean'  true if "uploadLimit" is honored
     104   "uploadLimited"                   | boolean    true if "uploadLimit" is honored
    114105
    115106   Just as an empty "ids" value is shorthand for "all ids", using an empty array
     
    152143   downloaders                     | number                      | tr_stat
    153144   downloadLimit                   | number                      | tr_torrent
    154    downloadLimited                 | 'boolean'                   | tr_torrent
     145   downloadLimited                 | boolean                     | tr_torrent
    155146   error                           | number                      | tr_stat
    156147   errorString                     | number                      | tr_stat
     
    161152   haveUnchecked                   | number                      | tr_stat
    162153   haveValid                       | number                      | tr_stat
    163    honorsSessionLimits             | 'boolean'                   | tr_torrent
     154   honorsSessionLimits             | boolean                     | tr_torrent
    164155   id                              | number                      | tr_torrent
    165    isPrivate                       | 'boolean'                   | tr_torrent
     156   isPrivate                       | boolean                     | tr_torrent
    166157   lastAnnounceTime                | number                      | tr_stat
    167158   lastScrapeTime                  | number                      | tr_stat
     
    180171   peersKnown                      | number                      | tr_stat
    181172   peersSendingToUs                | number                      | tr_stat
    182    percentDone                     | 'double'                    | tr_stat
     173   percentDone                     | double                      | tr_stat
    183174   pieces                          | string (see below)          | tr_torrent
    184175   pieceCount                      | tnumber                     | tr_info
    185176   pieceSize                       | tnumber                     | tr_info
    186177   priorities                      | array (see below)           | n/a
    187    ratio                           | 'double'                    | tr_stat
     178   ratio                           | double                      | tr_stat
    188179   rateDownload (B/s)              | number                      | tr_stat
    189180   rateUpload (B/s)                | number                      | tr_stat
    190    recheckProgress                 | 'double'                    | tr_stat
     181   recheckProgress                 | double                      | tr_stat
    191182   scrapeResponse                  | string                      | tr_stat
    192183   scrapeURL                       | string                      | tr_stat
    193184   seeders                         | number                      | tr_stat
    194    seedRatioLimit                  | 'double'                    | tr_torrent
     185   seedRatioLimit                  | double                      | tr_torrent
    195186   seedRatioMode                   | number                      | tr_ratiolimit
    196187   sizeWhenDone                    | number                      | tr_stat
     
    204195   uploadedEver                    | number                      | tr_stat
    205196   uploadLimit                     | number                      | tr_torrent
    206    uploadLimited                   | 'boolean'                   | tr_torrent
    207    uploadRatio                     | 'double'                    | tr_stat
     197   uploadLimited                   | boolean                     | tr_torrent
     198   uploadRatio                     | double                      | tr_stat
    208199   wanted                          | array (see below)           | n/a
    209200   webseeds                        | array (see below)           | n/a
     
    224215                          +-------------------------+------------+
    225216                          | bytesCompleted          | number     | tr_torrent
    226                           | wanted                  | 'boolean'  | tr_info
     217                          | wanted                  | boolean    | tr_info
    227218                          | priority                | number     | tr_info
    228219   -----------------------+--------------------------------------+
     
    231222                          | address                 | string     | tr_peer_stat
    232223                          | clientName              | string     | tr_peer_stat
    233                           | clientIsChoked          | 'boolean'  | tr_peer_stat
    234                           | clientIsInterested      | 'boolean'  | tr_peer_stat
    235                           | isDownloadingFrom       | 'boolean'  | tr_peer_stat
    236                           | isEncrypted             | 'boolean'  | tr_peer_stat
    237                           | isIncoming              | 'boolean'  | tr_peer_stat
    238                           | isUploadingTo           | 'boolean'  | tr_peer_stat
    239                           | peerIsChoked            | 'boolean'  | tr_peer_stat
    240                           | peerIsInterested        | 'boolean'  | tr_peer_stat
     224                          | clientIsChoked          | boolean    | tr_peer_stat
     225                          | clientIsInterested      | boolean    | tr_peer_stat
     226                          | isDownloadingFrom       | boolean    | tr_peer_stat
     227                          | isEncrypted             | boolean    | tr_peer_stat
     228                          | isIncoming              | boolean    | tr_peer_stat
     229                          | isUploadingTo           | boolean    | tr_peer_stat
     230                          | peerIsChoked            | boolean    | tr_peer_stat
     231                          | peerIsInterested        | boolean    | tr_peer_stat
    241232                          | port                    | number     | tr_peer_stat
    242                           | progress                | 'double'   | tr_peer_stat
     233                          | progress                | double     | tr_peer_stat
    243234                          | rateToClient (B/s)      | number     | tr_peer_stat
    244235                          | rateToPeer (B/s)        | number     | tr_peer_stat
     
    324315   "filename"         | string      filename or URL of the .torrent file
    325316   "metainfo"         | string      base64-encoded .torrent content
    326    "paused"           | 'boolean'   if true, don't start the torrent
     317   "paused"           | boolean     if true, don't start the torrent
    327318   "peer-limit"       | number      maximum number of peers
    328319   "files-wanted"     | array       indices of file(s) to download
     
    348339   ---------------------------+-------------------------------------------------
    349340   "ids"                      | array      torrent list, as described in 3.1
    350    "delete-local-data"        | 'boolean'  delete local data. (default: false)
     341   "delete-local-data"        | boolean    delete local data. (default: false)
    351342
    352343   Response arguments: none
     
    360351   ---------------------------+-------------------------------------------------
    361352   "alt-speed-down"           | number     max global download speed (in K/s)
    362    "alt-speed-enabled"        | 'boolean'  true means use the alt speeds
     353   "alt-speed-enabled"        | boolean    true means use the alt speeds
    363354   "alt-speed-time-begin"     | number     when to turn on alt speeds (units: minutes after midnight)
    364    "alt-speed-time-enabled"   | 'boolean'  true means the scheduled on/off times are used
     355   "alt-speed-time-enabled"   | boolean    true means the scheduled on/off times are used
    365356   "alt-speed-time-end"       | number     when to turn off alt speeds (units: same)
    366357   "alt-speed-time-day"       | number     what day(s) to turn on alt speeds (look at tr_sched_day)
    367358   "alt-speed-up"             | number     max global upload speed (in K/s)
    368    "blocklist-enabled"        | 'boolean'  true means enabled
     359   "blocklist-enabled"        | boolean    true means enabled
    369360   "blocklist-size"           | number     number of rules in the blocklist
    370361   "encryption"               | string     "required", "preferred", "tolerated"
     
    372363   "peer-limit-global"        | number     maximum global number of peers
    373364   "peer-limit-per-torrent"   | number     maximum global number of peers
    374    "pex-enabled"              | 'boolean'  true means allow pex in public torrents
     365   "pex-enabled"              | boolean    true means allow pex in public torrents
    375366   "peer-port"                | number     port number
    376    "peer-port-random-on-start"| 'boolean'  true means pick a random peer port on launch
    377    "port-forwarding-enabled"  | 'boolean'  true means enabled
     367   "peer-port-random-on-start"| boolean    true means pick a random peer port on launch
     368   "port-forwarding-enabled"  | boolean    true means enabled
    378369   "rpc-version"              | number     the current RPC API version
    379370   "rpc-version-minimum"      | number     the minimum RPC API version supported
    380    "seedRatioLimit"           | 'double'   the default seed ratio for torrents to use
    381    "seedRatioLimited"         | 'boolean'  true if seedRatioLimit is honored by default
     371   "seedRatioLimit"           | double     the default seed ratio for torrents to use
     372   "seedRatioLimited"         | boolean    true if seedRatioLimit is honored by default
    382373   "speed-limit-down"         | number     max global download speed (in K/s)
    383    "speed-limit-down-enabled" | 'boolean'  true means enabled
     374   "speed-limit-down-enabled" | boolean    true means enabled
    384375   "speed-limit-up"           | number     max global upload speed (in K/s)
    385    "speed-limit-up-enabled"   | 'boolean'  true means enabled
     376   "speed-limit-up-enabled"   | boolean    true means enabled
    386377   "version"                  | string     long version string "$version ($revision)"
    387378
Note: See TracChangeset for help on using the changeset viewer.