View | Details | Raw Unified | Return to bug 252438
Collapse All | Expand All

(-)rpc.pas (-3 / +14 lines)
Lines 816-836 function TRpc.RequestInfo(TorrentId: integer; const Fields: array of const; cons Link Here
816
  req, args: TJSONObject;
816
  req, args: TJSONObject;
817
  _fields: TJSONArray;
817
  _fields: TJSONArray;
818
  i: integer;
818
  i: integer;
819
  sl: TStringList;
819
begin
820
begin
820
  Result:=nil;
821
  Result:=nil;
821
  req:=TJSONObject.Create;
822
  req:=TJSONObject.Create;
823
  sl:=TStringList.Create;
822
  try
824
  try
823
    req.Add('method', 'torrent-get');
825
    req.Add('method', 'torrent-get');
824
    args:=TJSONObject.Create;
826
    args:=TJSONObject.Create;
825
    if TorrentId <> 0 then
827
    if TorrentId <> 0 then
826
      args.Add('ids', TJSONArray.Create([TorrentId]));
828
      args.Add('ids', TJSONArray.Create([TorrentId]));
827
    _fields:=TJSONArray.Create(Fields);
829
    _fields:=TJSONArray.Create;
828
    for i:=Low(ExtraFields) to High(ExtraFields) do
830
    for i:=Low(Fields) to High(Fields) do
829
      _fields.Add(ExtraFields[i]);
831
      if (Fields[i].VType=vtAnsiString) then
832
         sl.Add(String(Fields[i].VAnsiString));
833
    sl.AddStrings(ExtraFields);
834
    sl.Sort;
835
    for i:=sl.Count-2 downto 0 do
836
      if (sl[i]=sl[i+1]) then
837
        sl.Delete(i+1);
838
    for i:=0 to sl.Count-1 do
839
      _fields.Add(sl[i]);
830
    args.Add('fields', _fields);
840
    args.Add('fields', _fields);
831
    req.Add('arguments', args);
841
    req.Add('arguments', args);
832
    Result:=SendRequest(req);
842
    Result:=SendRequest(req);
833
  finally
843
  finally
844
    sl.Free;
834
    req.Free;
845
    req.Free;
835
  end;
846
  end;
836
end;
847
end;

Return to bug 252438