JDownloader Community - Appwork GmbH
 

Reply
 
Thread Tools Display Modes
  #1  
Old 08.11.2023, 05:01
mav mav is offline
Wind Gust
 
Join Date: Mar 2021
Posts: 42
Default API issues and questions

I'm trying to use the so called 'Deprecated API' of jdownloader ...

in the attached xlsx are some differences between the documentation here https://my.jdownloader.org/developers and http://localhost:53128/help (default port 3128 = 53128 in my setup) - some methods are missing / params are different

maybe just some stupid mistake on my side but API seems not consistent: (get, post) and how parameters are supposed to be passed according to api docs
there is no mention, which of the http / rest methods are supposed to be used per API call and the response headers suggest that OPTIONS, GET, POST are implemented for all calls (as does the docs)

some samples, I've tried with mixed success - detailed results are below in code sections

request header is set {"Content-Type": "application/json; charset=utf-8"}

hope you can put me on the right track. thanks!

querypackages: {"availableOfflineCount":true,"availableOnlineCount":true,"availableTempUnknownCount":true,"availabl eUnknownCount":true,"bytesTotal":true,"childCount":true,"comment":true,"enabled":true,"hosts":true," maxResults":-1,"packageUUIDs":[],"priority":
true,"saveTo":true,"startAt":0,"status":true}
querypackages, GET, parameters as json -> url encoded - ok
querypackages, GET, parameters -> url encoded - BAD_PARAMETERS
querypackages, POST, parameters as json -> body - BAD_PARAMETERS

queryLinks: {"availability":true,"bytesTotal":true,"comment":true,"enabled":true,"host":true,"jobUUIDs":[],"maxResults":-1,"packageUUIDs":[1699409911552],"password":true,"priority":true,"startAt":0,"status":true,"url":true,"variantID":true,"variantIcon" :true,
"variantName":true,"variants":true}
queryLinks, GET, parameters as json -> url encoded - ok
queryLinks, GET, parameters -> url encoded - BAD_PARAMETERS
queryLinks, POST, parameters as json -> body - BAD_PARAMETERS

setComment: {"linkIds":[1699409911553],"packageIds":[1699409911552],"allPackageLinks":false,"comment":"newtestfilecommentnospaces"}
setComment, GET, parameters as json -> url encoded - BAD_PARAMETERS
setComment, GET, parameters -> url encoded - BAD_PARAMETERS
setComment, POST, parameters as json -> body - BAD_PARAMETERS

setComment: {"linkIds":[],"packageIds":[1699405618466],"allPackageLinks":true,"comment":"newtestpackagecommentnospacesalllinks"}
setComment, GET, parameters as json -> url encoded - BAD_PARAMETERS
setComment, GET, parameters -> url encoded - BAD_PARAMETERS
setComment, POST, parameters as json -> body - BAD_PARAMETERS

setEnabled: {"enabled":false,"linkIds":[],"packageIds":[1699405618466]}
setEnabled, GET, parameters as json -> url encoded - BAD_PARAMETERS
setEnabled, GET, parameters -> url encoded - BAD_PARAMETERS
setEnabled, POST, parameters as json -> body - BAD_PARAMETERS

setEnabled: {"enabled":false,"linkIds":[],"packageIds":[1699405618466]}
setEnabled, GET, parameters as json -> url encoded - BAD_PARAMETERS
setEnabled, GET, paraeters -> url encoded - BAD_PARAMETERS
setEnabled, POST, parameters as json -> body - BAD_PARAMETERS

setEnabled: {"enabled":false,"linkIds":[1699405618481],"packageIds":[1699405618466]}
setEnabled, GET, parameters as json -> url encoded - BAD_PARAMETERS
setEnabled, GET, parameters -> url encoded - BAD_PARAMETERS
setEnabled, POST, parameters as json -> body - BAD_PARAMETERS

addContainer - ok (somewhat)
Based on java source code, I was able to "guess" based on filetype (extension) and url parsing how to add a DLC. Call is successfull, when parameters are passed in url encoded form, not as json.
request: GET /linkgrabberv2/addContainer?type=dlc&content=;base64,base64enc_DLC_file_content
source code:
* src/org/jdownloader/api/linkcollector/v2/LinkCollectorAPIImplV2.java#L746 -> param type
File tmp = Application.getTempResource("uploads/linkcollectorAPI" + System.nanoTime() + "." + type);
* src/org/jdownloader/api/linkcollector/v2/LinkCollectorAPIImplV2.java#L730 -> param content
final int base64Index = dataURL.indexOf(";base64,");

Code:
querypackages, GET, parameters as json -> url encoded
GET localhost:53128/linkgrabberv2/queryPackages?%7B%22availableOfflineCount%22%3Atrue%2C%22availableOnlineCount%22%3Atrue%2C%22availableTempUnknownCount%22%3Atrue%2C%22availableUnknownCount%22%3Atrue%2C%22bytesTotal%22%3Atrue%2C%22childCount%22%3Atrue%2C%22comment%22%3Atrue%2C%22enabled%22%3Atrue%2
C%22hosts%22%3Atrue%2C%22maxResults%22%3A-1%2C%22packageUUIDs%22%3A%5B%5D%2C%22priority%22%3Atrue%2C%22saveTo%22%3Atrue%2C%22startAt%22%3A0%2C%22status%22%3Atrue%7D
200 {"data":[{"onlineCount":0,"offlineCount":0,"saveTo":"C:\\temp\\testpackage","unknownCount":1,"hosts":["http links"],"name":"testpackage","childCount":1,"comment":"TEST PACKAGE COMMENT","uuid":1699409911552,"enabled":true,"tempUnknownCount":0}]}

querypackages, GET, parameters -> url encoded
GET localhost:53128/linkgrabberv2/queryPackages?availableOfflineCount=True&availableOnlineCount=True&availableTempUnknownCount=True&availableUnknownCount=True&bytesTotal=True&childCount=True&comment=True&enabled=True&hosts=True&maxResults=-1&packageUUIDs=%5B%5D&priority=True&saveTo=True&startAt=0&s
tatus=True
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/queryPackages?availableOfflineCount=True&availableOnlineCount=True&availableTempUnknownCount=True&availableUnknownCount=True&bytesTotal=True&childCount=True&comment=True&enabled=True&hosts=True&maxResults=-1&packageUUIDs=%5B%5D&priority=True&saveTo=True&startAt=0&status=Tr
ue",
 "type" : "BAD_PARAMETERS"
}

querypackages, POST, parameters as json -> body
POST localhost:53128/linkgrabberv2/queryPackages BODY: {"availableOfflineCount":true,"availableOnlineCount":true,"availableTempUnknownCount":true,"availableUnknownCount":true,"bytesTotal":true,"childCount":true,"comment":true,"enabled":true,"hosts":true,"maxResults":-1,"packageUUIDs":[],"priority":
true,"saveTo":true,"startAt":0,"status":true}

400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/queryPackages",
 "type" : "BAD_PARAMETERS"
}
Code:
queryLinks, GET, parameters as json -> url encoded
GET localhost:53128/linkgrabberv2/queryLinks?%7B%22availability%22%3Atrue%2C%22bytesTotal%22%3Atrue%2C%22comment%22%3Atrue%2C%22enabled%22%3Atrue%2C%22host%22%3Atrue%2C%22jobUUIDs%22%3A%5B%5D%2C%22maxResults%22%3A-1%2C%22packageUUIDs%22%3A%5B1699409911552%5D%2C%22password%22%3Atrue%2C%22priority%22
%3Atrue%2C%22startAt%22%3A0%2C%22status%22%3Atrue%2C%22url%22%3Atrue%2C%22variantID%22%3Atrue%2C%22variantIcon%22%3Atrue%2C%22variantName%22%3Atrue%2C%22variants%22%3Atrue%7D
200 {"data":[{"host":"http links","name":"testfile.zip","comment":"TEST LINK COMMENT","availability":"UNKNOWN","packageUUID":1699409911552,"uuid":1699409911553,"url":"**External links are only visible to Support Staff**,"enabled":true}]}

queryLinks, GET, parameters -> url encoded
GET localhost:53128/linkgrabberv2/queryLinks?availability=True&bytesTotal=True&comment=True&enabled=True&host=True&jobUUIDs=%5B%5D&maxResults=-1&packageUUIDs=%5B1699409911552%5D&password=True&priority=True&startAt=0&status=True&url=True&variantID=True&variantIcon=True&variantName=True&variants=True

400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/queryLinks?availability=True&bytesTotal=True&comment=True&enabled=True&host=True&jobUUIDs=%5B%5D&maxResults=-1&packageUUIDs=%5B1699409911552%5D&password=True&priority=True&startAt=0&status=True&url=True&variantID=True&variantIcon=True&variantName=True&variants=True",
 "type" : "BAD_PARAMETERS"
}

queryLinks, POST, parameters as json -> body
POST localhost:53128/linkgrabberv2/queryLinks BODY: {"availability":true,"bytesTotal":true,"comment":true,"enabled":true,"host":true,"jobUUIDs":[],"maxResults":-1,"packageUUIDs":[1699409911552],"password":true,"priority":true,"startAt":0,"status":true,"url":true,"variantID":true,"variantIcon":true,
"variantName":true,"variants":true}
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/queryLinks",
 "type" : "BAD_PARAMETERS"
}
Code:
setComment, GET, parameters as json -> url encoded
GET localhost:53128/linkgrabberv2/setComment?%7B%22linkIds%22%3A%5B1699409911553%5D%2C%22packageIds%22%3A%5B1699409911552%5D%2C%22allPackageLinks%22%3Afalse%2C%22comment%22%3A%22newtestfilecommentnospaces%22%7D
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/setComment?%7B%22linkIds%22%3A%5B1699409911553%5D%2C%22packageIds%22%3A%5B1699409911552%5D%2C%22allPackageLinks%22%3Afalse%2C%22comment%22%3A%22newtestfilecommentnospaces%22%7D",
 "type" : "BAD_PARAMETERS"
}

setComment, GET, parameters -> url encoded
GET localhost:53128/linkgrabberv2/setComment?linkIds=%5B1699409911553%5D&packageIds=%5B1699409911552%5D&allPackageLinks=False&comment=newtestfilecommentnospaces
400 {
 "src"  : "DEVICE",
 "data" : "False",
 "type" : "BAD_PARAMETERS"
}

setComment, POST, parameters as json -> body
POST localhost:53128/linkgrabberv2/setComment BODY: {"linkIds":[1699409911553],"packageIds":[1699409911552],"allPackageLinks":false,"comment":"newtestfilecommentnospaces"}
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/setComment",
 "type" : "BAD_PARAMETERS"
}
Code:
setComment, GET, parameters as json -> url encoded
GET localhost:53128/linkgrabberv2/setComment?%7B%22linkIds%22%3A%5B%5D%2C%22packageIds%22%3A%5B1699405618466%5D%2C%22allPackageLinks%22%3Atrue%2C%22comment%22%3A%22newtestpackagecommentnospacesalllinks%22%7D
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/setComment?%7B%22linkIds%22%3A%5B%5D%2C%22packageIds%22%3A%5B1699405618466%5D%2C%22allPackageLinks%22%3Atrue%2C%22comment%22%3A%22newtestpackagecommentnospacesalllinks%22%7D",
 "type" : "BAD_PARAMETERS"
}

setComment, GET, parameters -> url encoded
GET localhost:53128/linkgrabberv2/setComment?linkIds=%5B%5D&packageIds=%5B1699405618466%5D&allPackageLinks=True&comment=newtestpackagecommentnospacesalllinks
400 {
 "src"  : "DEVICE",
 "data" : "True",
 "type" : "BAD_PARAMETERS"
}

setComment, POST, parameters as json -> body
POST localhost:53128/linkgrabberv2/setComment BODY: {"linkIds":[],"packageIds":[1699405618466],"allPackageLinks":true,"comment":"newtestpackagecommentnospacesalllinks"}
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/setComment",
 "type" : "BAD_PARAMETERS"
}
Code:
setEnabled, GET, parameters as json -> url encoded
GET localhost:53128/linkgrabberv2/setEnabled?%7B%22enabled%22%3Afalse%2C%22packageIds%22%3A%5B1699405618466%5D%7D
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/setEnabled?%7B%22enabled%22%3Afalse%2C%22packageIds%22%3A%5B1699405618466%5D%7D",
 "type" : "BAD_PARAMETERS"
}

setEnabled, GET, parameters -> url encoded
GET localhost:53128/linkgrabberv2/setEnabled?enabled=False&packageIds=%5B1699405618466%5D
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/setEnabled?enabled=False&packageIds=%5B1699405618466%5D",
 "type" : "BAD_PARAMETERS"
}

setEnabled, POST, parameters as json -> body
POST localhost:53128/linkgrabberv2/setEnabled BODY: {"enabled":false,"packageIds":[1699405618466]}
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/setEnabled",
 "type" : "BAD_PARAMETERS"
}
Code:
setEnabled, GET, parameters as json -> url encoded
GET localhost:53128/linkgrabberv2/setEnabled?%7B%22enabled%22%3Afalse%2C%22linkIds%22%3A%5B%5D%2C%22packageIds%22%3A%5B1699405618466%5D%7D
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/setEnabled?%7B%22enabled%22%3Afalse%2C%22linkIds%22%3A%5B%5D%2C%22packageIds%22%3A%5B1699405618466%5D%7D",
 "type" : "BAD_PARAMETERS"
}

setEnabled, GET, parameters -> url encoded
GET localhost:53128/linkgrabberv2/setEnabled?enabled=False&linkIds=%5B%5D&packageIds=%5B1699405618466%5D
400 {
 "src"  : "DEVICE",
 "data" : "False",
 "type" : "BAD_PARAMETERS"
}

setEnabled, POST, parameters as json -> body
POST localhost:53128/linkgrabberv2/setEnabled BODY: {"enabled":false,"linkIds":[],"packageIds":[1699405618466]}
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/setEnabled",
 "type" : "BAD_PARAMETERS"
}
Code:
setEnabled, GET, parameters as json -> url encoded
GET localhost:53128/linkgrabberv2/setEnabled?%7B%22enabled%22%3Afalse%2C%22linkIds%22%3A%5B1699405618481%5D%2C%22packageIds%22%3A%5B1699405618466%5D%7D
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/setEnabled?%7B%22enabled%22%3Afalse%2C%22linkIds%22%3A%5B1699405618481%5D%2C%22packageIds%22%3A%5B1699405618466%5D%7D",
 "type" : "BAD_PARAMETERS"
}

setEnabled, GET, parameters -> url encoded
GET localhost:53128/linkgrabberv2/setEnabled?enabled=False&linkIds=%5B1699405618481%5D&packageIds=%5B1699405618466%5D
400 {
 "src"  : "DEVICE",
 "data" : "False",
 "type" : "BAD_PARAMETERS"
}

setEnabled, POST, parameters as json -> body
POST localhost:53128/linkgrabberv2/setEnabled BODY: {"enabled":false,"linkIds":[1699405618481],"packageIds":[1699405618466]}
400 {
 "src"  : "DEVICE",
 "data" : "/linkgrabberv2/setEnabled",
 "type" : "BAD_PARAMETERS"
}
Attached Files
File Type: xlsx jd2_api_doc_diff.xlsx (10.9 KB, 0 views)

Last edited by mav; 08.11.2023 at 08:02. Reason: typo
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 14:39.
Provided By AppWork GmbH | Privacy | Imprint
Parts of the Design are used from Kirsch designed by Andrew & Austin
Powered by vBulletin® Version 3.8.10 Beta 1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.