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; |