Vorwort:
Generell wurde als Antwortformat JSON gewählt um ein einfaches parsing zu ermöglichen. Die Antworten der API haben immer folgendes Format:
{ "code": 200, "status": "ok", "data": {} }
Zur Authentifizierung wird HTTP Basic authentifizierung verwendet.
Zusätzlich wurde der Free- und Anonymous Download um JSON als Antwortformat erweitert. Dazu muss einfach ".json" an die aufzurufende Url angehängt werden.
Beispiel:
http://filer.net/get/.json
Ansonsten bleibt das Handling vollkommen gleich (inkl. Session-Auth per Cookie). Benötigte Daten wir Token (token) und mögliche Wartezeiten (wait) werden unter "data" zurückgegeben. Damit kann auf die Seite automatisiert ohne HTML-Parsing zugegriffen werden.
Statuscodes:
* 200 - ok
Wird immer zurückgegeben, wenn alles passt
* 201 - folder password needed
Wird beim Aufruf von "/folder/<folderhash>.json" zurückgegeben, wenn
der Folder mit PW geschützt und das PW nicht per ?password=<pass>
übergeben wurde.
* 202 - file captcha input needed
Wird beim Aufruf von "/get/<filehash>.json" zurückgegeben, wenn eine
ReCaptcha-Eingabe gebraucht wird. Recaptcha-Challange wird mit
zurückgegeben.
* 203 - file wait needed
Wird beim Aufruf von "/get/<filehash>.json" zurückgegeben, wenn eine
Wartezeit abgewartet werden muss.
* 400 - api disabled
Wird immer zurückgegeben, wenn die API aus irgendwelchen Gründen
ausgeschaltet ist.
* 401 - login required
Wird bei "/profile" und "/dl/<filehash>.json" zurückgegeben, wenn
keine Authentifizierung angegeben ist.
* 413 - Payload Too Large
Wird bei "/multi_status" zurückgegeben, wenn mehr als 400 hashes
übergeben werden.
* 500 - download temporary disabled
Wird zurückgegeben, wenn versucht wird, ein File herunterzuladen und
der Download temporär ausgeschaltet ist.
* 501 - global download slots filled
Wird beim Free-Download zurückgegeben, wenn alle Downloadslots belegt
sind.
* 502 - user download slots filled
Wird beim Free-Download zurückgegeben, wenn der User bereits eine
Datei herunterlädt.
* 503 - hour download limit reached
Wird beim Free-Download zurückgegeben, wenn der User bereits zuviel
heruntergeladen hat. Die Wartezeit zum nächsten DL wird mit zurückgegeben.
* 504 - bandwidth limit reached
Wird beim Premium-Download zurückgegeben, wenn der User keinen Traffic
mehr hat.
* 505 - file not found
Wird zurückgegeben, wenn "/file/<filehash>.json" aufgerufen wird und
der hash nicht gefunden wird.
* 506 - folder not found
Wird zurückgegeben, wenn "/folder/<folderhash>.json" aufgerufen wird
und der hash nicht gefunden wird.
* 599 - unkown file error
Wird zurückgegeben, wenn ein unbekannter Fehler beim Download auftritt
(Free+Premium).
Methoden:
Url: http://api.filer.net/profile.json (http-auth required)
Antwort:
{ "code": 200, "status": "ok", "data": { "email": "user@email.de", "state": "premium", | möglichkeiten: premium, free "until": 1383581217, | unix-timestamp, 0 bei free "traffic": 104857600 | verfügbarer traffic in byte, 0 bei free "traffic_str": "100.00 MB" | verfügbarer traffic als string, Einheiten: 'B', 'KB', 'MB', 'GB', 'TB', 'PB' "maxtraffic": 134217728000, | maximaler traffic in byte auf den angespart werden kann "maxtraffic_str": "125.00 GB" | maximaler traffic als string, Einheiten: 'B', 'KB', 'MB', 'GB', 'TB', 'PB' } }
Mögliche Fehler:
* 401 - login required
{ "code": 401, "status": "login required", "data": {} }
Url: http://api.filer.net/status/{filehash}.json
Beispiel: http://api.filer.net/status/a2yc5vlluhulz82b.json
Antwort:
{ "code": 200, "status": "ok", "data": { "name": "filename.rar", | Filename als string "size": 99614720, | Filesize in byte "hash": "a2yc5vlluhulz82b", | Filehash als string } }
Mögliche Fehler:
* 505 - file not found
* 599 - unkown file error
{ "code": 505, "status": "file not found", "data": {} }
Url: http://api.filer.net/multi_status/{filehash_1}|{filehash_2}|{filehash_3}.json
Beispiel: http://api.filer.net/multi_status/a2yc5vlluhulz82b|l3cry9w8idehinkk|X2yc5vlluhulz82b.json
Antwort:
{ "code": 200, "status": "ok", "data": [{ "name": "filename1.rar", | Filename als string "size": 99614720, | Filesize in byte "hash": "a2yc5vlluhulz82b", | Filehash als string }, { "name": "filename2.rar", "size": 34561456, "hash": "l3cry9w8idehinkk", }, { "name": "filename3.rar", "size": 634567, "hash": "X2yc5vlluhulz82b", }] }
Mögliche Fehler:
* 413 - Payload Too Large
* 599 - unkown file error
Url: http://api.filer.net/folder/{folderhash}.json[?password=abcdef]
Beispiel: http://api.filer.net/folder/l3cry9w8idehinkk.json
Anmerkung: Falls der folder mit einem Passwort geschützt ist, wird dies durch "password": 1 und status "201" signalisiert und die files werden nicht angegeben. Wird anschließend die URL mit ?password=
Antwort:
{ "code": 200, "status": "ok", "data": { "name": "Folder name bla", | Foldername als string "size": 10000000, | Foldersize in byte "count": 2, | Anzahl der files im folder als int "password": 0, | Passwortgeschützt? 0 = nein, 1 = ja "files": [ { "name": "filename.part01.rar", "size": "5000000" "link": "http:\/\/filer.net\/get\/aaaaaaaaaaaaaaaa" }, { "name": "filename.part02.rar", "size": "5000000" "link": "http:\/\/filer.net\/get\/aaaaaaaaaaaaaaab" }, ] } }
Mögliche Fehler:
* 401 - login required
* 506 - folder not found
* 599 - unkown file error
{ "code": 506, "status": "folder not found", "data": {} }
Url: http://api.filer.net/dl/{filehash}.json (http-auth required)
Beispiel: http://api.filer.net/dl/a2yc5vlluhulz82b.json
Anmerkung: Diese Methode ist nur für premium-User verfügbar. geantwortet wird entweder mit einem Fehler in JSON oder einem HTTP-Redirect zum Fileserver. Der Vorteil in der Anwendung liegt vorallem darin, das man sich das parsen und senden von Cookies sparen kann.
Antwort: HTTP-Redirect zum Fileserver
Mögliche Fehler:
* 505 - file not found
* 599 - unkown file error
{ "code": 505, "status": "file not found", "data": {} }