OnAir SDK (Internet Radio Programm)
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Welt :-D
Ich möchte hier mal mein OnAir SDK vorstellen. (Version 1, release heute) Worum geht es? Programm.Freizeitradio.de ist ein senderübergreifendes Programmagazin für Internetradios, indem die Programminformationen vieler Radios zusammenkommen sollen. Mein Programm? Im Prinzip nur eine bescheidene Klasse zum Absetzen eines Request an die OnAir API (Doku/Referenz). Die Funktionen der API: Sendung hinzufügen, Sendung löschen, individuellen Sendeplan (für die eigene Homepage) zusammenstellen. Anbei liegt OnAir.exe (und Sourcecode) zum durchtesten. Zugang zur API? Kostenlos ( Anmeldung/Key: http://programm.freizeitradio.de/OnAir/mysettings.html ) Wer testen will, darf das gerne tun (Nur-TestSendungen bitte wieder löschen) Der Account kann jederzeit wieder gelöscht werden. http://programm.freizeitradio.de/API:API_KEY Download: 24.90 Kb http://www.webfan.de/v_downloads/OnAir_SDK_1_delphi.zip php-Äquivalent: http://www.webfan.de/Downloads-lid-SDK-1-php--30.html Sourcecode:
Delphi-Quellcode:
unit SDK_1;
{* by Webfan.de Free, Public Domain *} interface uses classes, sysutils,idhttp,dialogs; const _API_URL_ = 'http://programm.freizeitradio.de/OnAir/api.php'; type TWebArrayElement = record key:string; value:string; end; type TRequestArray = array of TWebArrayElement; type TOnAir = class(TObject) info:pointer; procedure start(user, key, APIfunction:string; sender:tobject;modus:boolean = false); procedure assignData(data:TRequestArray;sender:Tobject); procedure addData(data:TWebArrayElement;sender:Tobject); procedure clearquery; procedure clearquery_string; procedure CreateQueryString; procedure SendRequestIndy(client:tidhttp;sender:tobject); private { Private-Deklarationen } //AUTH api_user:string[255]; api_key:string[255]; SubuserApiUsername:string[255]; SubuserApiKey:string[255]; public { Public-Deklarationen } //API apifunction:string; query:TRequestArray; query_string:string; //RESULT error:integer; result:string; //RESULT CACHE cacheDir:string; CacheActivate:boolean; defaultExpire:integer; CacheFilename:string; testmodus:boolean; end; implementation procedure TOnAir.start(user, key, APIfunction:string; sender:tobject;modus:boolean = false); begin self.api_user := user; self.api_key := key; self.apifunction := apifunction; self.testmodus :=modus; end; procedure TOnAir.assignData(data:TRequestArray;sender:Tobject); begin self.query :=data; end; procedure TOnAir.addData(data:TWebArrayElement;sender:Tobject); begin setlength(self.query, length(self.query) +1); self.query[high(self.query)].key := data.key; self.query[high(self.query)].value := data.value; end; procedure TOnAir.clearquery; begin setlength(self.query,0); end; procedure TOnAir.clearquery_string; begin self.query_string := ''; end; procedure TOnAir.CreateQueryString; var i:integer; begin self.query_string := ''; self.query_string := self.query_string + 'api_user='+self.api_user; self.query_string := self.query_string + '&api_key='+self.api_key; self.query_string := self.query_string + '&api_function='+self.apifunction; for i := 0 to length(self.query) - 1 do begin self.query_string := self.query_string + '&'+self.query[i].key + '=' + self.query[i].value; end; end; {* Stolen forom Easy Helper *} procedure TOnAir.SendRequestIndy(client:tidhttp;sender:tobject); //Ahttp: Die HTTP Komponente von Indy 8.0 bzw. 9.0 //AtoURL: An diese URL werden die Informationen gesendet //Result: HTML-Ergebnis (Antwort des Scripts) Var lStream: TMemoryStream; //HTML-Result des PHP-Scripts lParams: TStringStream; I: Integer; AtoURL: String; begin atourl:= _API_URL_; Result:=''; if not Assigned(client) then exit; lStream := TMemoryStream.create; lParams := TStringStream.create(''); try client.Request.ContentType := 'application/x-www-form-urlencoded'; //Dieser Stream wird letztendlich gesendet //Stream mit Werten füllen lParams.WriteString(self.query_string); try //Stream an das PHP-Script senden client.Post(AtoURL, lParams, lStream); except on E: Exception do showmessage('Fehler bei der Übertragung: ' + E.Message); end; SetLength(self.Result,lStream.Size); lStream.Position:=0; lStream.ReadBuffer(self.Result[1],lStream.Size); finally lParams.Free; lStream.Free; end; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz