Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   OnAir SDK (Internet Radio Programm) (https://www.delphipraxis.net/117771-onair-sdk-internet-radio-programm.html)

TillWe 24. Jul 2008 14:44


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