Ticket #1493: rpc.diff

File rpc.diff, 7.2 KB (added by charles, 12 years ago)

first draft

  • libtransmission/rpcimpl.c

    addField( const tr_torrent * tor, 
    308308        tr_bencDictAddInt( d, key, st->eta );
    309309    else if( !strcmp( key, "files" ) )
    310310        addFiles( tor, tr_bencDictAddList( d, key, inf->fileCount ) );
     311    else if( !strcmp( key, "fileBytesCompleted" ) ) {
     312        tr_file_index_t i, n;
     313        tr_file_stat * files = tr_torrentFiles( tor, &n );
     314        tr_benc * p = tr_bencDictAddList( d, key, n );
     315        for( i=0; i<n; ++i )
     316            tr_bencListAddInt( p, files[i].bytesCompleted );
     317        tr_torrentFilesFree( files, n );
     318    }
     319    else if( !strcmp( key, "filePriorities" ) || !strcmp( key, "priorities" ) ) {
     320        tr_file_index_t i;
     321        tr_benc * p = tr_bencDictAddList( d, key, inf->fileCount );
     322        for( i=0; i<inf->fileCount; ++i )
     323            tr_bencListAddInt( p, inf->files[i].priority );
     324    }
     325    else if( !strcmp( key, "filesWanted" ) || !strcmp( key, "wanted" ) ) {
     326        tr_file_index_t i;
     327        tr_benc * w = tr_bencDictAddList( d, key, inf->fileCount );
     328        for( i=0; i < inf->fileCount; ++i )
     329            tr_bencListAddInt( w, inf->files[i].dnd ? 0 : 1 );
     330    }
    311331    else if( !strcmp( key, "hashString" ) )
    312332        tr_bencDictAddStr( d, key, tor->info.hashString );
    313333    else if( !strcmp( key, "haveUnchecked" ) )
    addField( const tr_torrent * tor, 
    359379        tr_bencDictAddInt( d, key, inf->pieceCount );
    360380    else if( !strcmp( key, "pieceSize" ) )
    361381        tr_bencDictAddInt( d, key, inf->pieceSize );
    362     else if( !strcmp( key, "priorities" ) )
    363     {
    364         tr_file_index_t i;
    365         tr_benc *       p = tr_bencDictAddList( d, key, inf->fileCount );
    366         for( i = 0; i < inf->fileCount; ++i )
    367             tr_bencListAddInt( p, inf->files[i].priority );
    368     }
    369382    else if( !strcmp( key, "rateDownload" ) )
    370383        tr_bencDictAddInt( d, key, (int)( st->pieceDownloadSpeed * 1024 ) );
    371384    else if( !strcmp( key, "rateUpload" ) )
    addField( const tr_torrent * tor, 
    400413        tr_bencDictAddInt( d, key, tr_torrentGetSpeedLimit( tor, TR_UP ) );
    401414    else if( !strcmp( key, "uploadRatio" ) )
    402415        tr_bencDictAddDouble( d, key,
    403                              tr_getRatio( st->uploadedEver,
    404                                           st->downloadedEver ) );
    405     else if( !strcmp( key, "wanted" ) )
    406     {
    407         tr_file_index_t i;
    408         tr_benc *       w = tr_bencDictAddList( d, key, inf->fileCount );
    409         for( i = 0; i < inf->fileCount; ++i )
    410             tr_bencListAddInt( w, inf->files[i].dnd ? 0 : 1 );
    411     }
     416                             tr_getRatio( st->uploadedEver, st->downloadedEver ) );
    412417    else if( !strcmp( key, "webseeds" ) )
    413418        addWebseeds( inf, tr_bencDictAddList( d, key, inf->trackerCount ) );
    414419    else if( !strcmp( key, "webseedsSendingToUs" ) )
  • doc/rpc-spec.txt

     
    139139   errorString            | number                               | tr_stat
    140140   eta                    | number                               | tr_stat
    141141   files                  | array (see below)                    | n/a
     142   filePriorities         | array (see below)                    | n/a
     143   fileWanted             | array (see below)                    | n/a
     144   fileBytesCompleted     | array (see below)                    | n/a
    142145   hashString             | string                               | tr_info
    143146   haveUnchecked          | number                               | tr_stat
    144147   haveValid              | number                               | tr_stat
     
    185188                          |                                      |
    186189                          |                                      |
    187190   -----------------------+--------------------------------------+
    188    files                  | array of objects, each containing:   |
     191   files                  | deprecated; will be removed in 1.60  |
     192                          | array of objects, each containing:   |
    189193                          +-------------------------+------------+
    190194                          | key                     | type       |
    191195                          | bytesCompleted          | number     | tr_torrent
    192196                          | length                  | number     | tr_info
    193197                          | name                    | string     | tr_info
    194198   -----------------------+--------------------------------------+
     199   fileBytesCompleted     | an array of tr_info.filecount        | tr_info
     200                          | numbers telling how many bytes we    |
     201                          | have of the corresponding files.     |
     202   -----------------------+--------------------------------------+
     203   filePriorities         | an array of tr_info.filecount        | tr_info
     204                          | numbers. each is the tr_priority_t   |
     205                          | mode for the corresponding files.    |
     206   -----------------------+--------------------------------------+
     207   filesWanted            | an array of tr_info.fileCount        | tr_info
     208                          | 'booleans' true if the corresponding |
     209                          | files are to be downloaded.          |
     210   -----------------------+--------------------------------------+
    195211   peers                  | array of objects, each containing:   |
    196212                          +-------------------------+------------+
    197213                          | address                 | string     | tr_peer_stat
     
    216232                          | fromPex                 | number     | tr_stat
    217233                          | fromTracker             | number     | tr_stat
    218234   -----------------------+--------------------------------------+
    219    priorities             | an array of tr_info.filecount        | tr_info
    220                           | numbers. each is the tr_priority_t   |
    221                           | mode for the corresponding file.     |
     235   priorities             | same as "filePriorities".            |
     236                          | deprecated; will be removed in 1.60  |
    222237   -----------------------+--------------------------------------+
    223238   trackers               | array of objects, each containing:   |
    224239                          +-------------------------+------------+
     
    226241                          | scrape                  | string     | tr_info
    227242                          | tier                    | number     | tr_info
    228243   -----------------------+--------------------------------------+
    229    wanted                 | an array of tr_info.fileCount        | tr_info
    230                           | 'booleans' true if the corresponding |
    231                           | file is to be downloaded.            |
     244   wanted                 | same as "filesWanted".               |
     245                          | deprecated; will be removed in 1.60  |
    232246   -----------------------+--------------------------------------+
    233247   webseeds               | an array of strings:                 |
    234248                          +-------------------------+------------+