xscDevBlog – LastSharp & Co.

Der xscheme-DevelopmentBlog

Wie verwende ich Lapicon in meinem eigenen Programm? (.NET)

with 3 comments

Lapicon (Loose API Connection Language) kann (ab Version 1.0.10) auf einfache Art und Weise im eigenen Programm verwendet werden.

Um zu lernen, wie das geht, entwickeln wir hier (mit C#, aber eine Übertragung auf andere .NET-Sprachen dürfte jeder einigermaßen versierte Programmierer hinbekommen) ein Mini-Programm, das in einem Fenster zwei Eingabefelder für “Interpret” und “Titel” bereitstellt und das zugehörige Album findet. Ich gebe zu, keine bahnbrechende Idee, aber zur Demonstration reicht’s.

Zuallererst erstellen wir ein neues Projekt vom Typ “Windows Forms Anwendung” mit beliebigem Namen und erstellen einen Verweis auf Lapicon. Das geht folgendermaßen:

  1. Rechtsklick auf “Veweise” im Projektmappen-Explorer, dann Klick auf “Verweis hinzufügen…”:Lapicon Tutorial: Verweis hinzufügen
  2. Unter “Durchsuchen” die Datei “Lapicon.exe” suchen und auswählen. Klick auf “OK”.Lapicon Tutorial: Lapicon.exe einbinden

Jetzt kann die Programmentwicklung losgehen. Wir erstellen ein Fenster, das in etwa so aussieht:

Lapicon Tutorial: Fenster

Jetzt geht es an die Implementierung der Funktionen. Alle Lapicon-Funktionen werden durch das Objekt “LapiconProcessor” im Namespace “Lapicon” bereitgestellt. Da “LapiconProcessor” ein ziemlich langer Name ist und Programmierer von Haus aus faul sind, fügen wir folgendes Statement an den Anfang des Codes unseres Fensters (Rechtsklick auf das Fenster >> “Code anzeigen”) ein:

using L = Lapicon.LapiconProcessor;

Damit kürzen wir das Objekt “LapiconProcessor” als “L” ab und können ab sofort in unserem Code darauf zugreifen. Zuallererst ist unsere Anwendung ja auf das Last.FM-API ausgelegt, d.h. beim Laden der Anwendung würde es sich anbieten, Lapicon für dieses API zu konfigurieren. Hierfür verwenden wir das “Load”-Ereignis des Fensters, indem wir an irgendeine freie Stelle (im Fensterentwurf) doppelklicken. Anschließend ergänzen wir den so erstellten Code folgendermaßen:

private void AlbumFinderForm_Load(object sender, EventArgs e)
{
   // Lapicon: Initialisierung für Last.FM (entspricht L.Process("#lastfm"))
   L.LastFMInit(); 
}

Jetzt müssen wir noch festlegen, was passiert, wenn wir auf den Button klicken. Also erstellen wir mit einem Doppelklick darauf das “Click”-Event und verwenden die verschiedenen Lapicon-Funktionen, um eine Anfrage an Last.FM zu senden und das Ergebnis in einer MessageBox anzuzeigen. Die wichtigsten Lapicon-Funktionen sind:

  • Process(“statement1″, “statement2″, …) führt die angegebenen Lapicon-Befehle nacheinander aus.
  • Var(“var”) liefert den Wert einer Variablen.
  • Var(“var”, “wert”) speichert “wert” in der Variable “var”.
  • VarExists(“var”) liefert “true”, wenn eine Variable existiert.
  • List(“var”) liefert eine Liste.
  • ListCreate(“var”) erstellt eine Liste.
  • List(“var”, “wert”) fügt “wert” zur Liste hinzu.
  • ListExists(“var”) liefert “true”, wenn eine Liste existiert.

Mehr braucht man meistens nicht. Unser Click-Event wird demnach folgendermaßen aussehen:

private void btFindAlbum_Click(object sender, EventArgs e)
{
    // Interpret und Titel
    string artist = txtArtist.Text.Trim();
    string track = txtTrack.Text.Trim();

    // Wenn eins von beidem leer ist: nicht weitermachen
    if (artist == "" || track == "") return;

    // Ansonsten: Album (und richtig geschriebene Infos) holen
    L.Process(
        "[track.getInfo : track=" + track + "&artist=" + artist + "]",
        "store track/album/title in album",
        "store track/artist/name in artist",
        "store track/name in track"
    );

    // Ausgabe oder Fehler
    if (L.Var("album") == "")
    {
        MessageBox.Show(
            "Kein Album zu diesen Eingaben gefunden!",
            "Kein Album",
            MessageBoxButtons.OK,
            MessageBoxIcon.Exclamation);
    }
    else
    {
        MessageBox.Show(
            "Gefundene Informationen:\n\n" +
               "   " + L.Var("artist") + " - " + L.Var("track") + "\n" +
               "   Album: " + L.Var("album"),
            "Album gefunden!",
            MessageBoxButtons.OK,
            MessageBoxIcon.Information);
    }
}

Das war auch schon alles. Mit “Process” wird die Anfrage abgeschickt und die nötigen Daten gesichert, mit “Var” erfolgt die Verwendung der Daten. Und schon ist das Programm good to go:

Lapicon Tutorial: Fertiges Programm

Viel einfacher geht es wirklich nicht mehr. Ich hoffe, damit allen, die Interesse an Lapicon haben, ein Stück weiter geholfen zu haben.

Written by xsc

April 26th, 2009 at 8:43 pm

Posted in HowTo, Lapicon

Tagged with , ,

3 Responses to 'Wie verwende ich Lapicon in meinem eigenen Programm? (.NET)'

Subscribe to comments with RSS or TrackBack to 'Wie verwende ich Lapicon in meinem eigenen Programm? (.NET)'.

  1. Das klappt ja alles auch ganz super, aber ich wollte mal eine Anmeldung probieren. Also Token holen, Erlaubnis holen, geht. Aber wenn ich den Session Key hole, kommt da nix. Wieso?

    guinea

    7 Feb 10 at 15:49

  2. Nachtrag: Es ist irgendwas mit der Method Signature. Was auch immer das sein mag.

    guinea

    7 Feb 10 at 16:09

  3. Lapicon ist nur für nicht authentifizierte API-Anfragen gedacht (zumindest in dieser Version). Die “Method Signature” ist eine bestimmte Zeichenkette, die anhand der Anfrage-Parameter errechnet wird (siehe hier, Punkt 8), was mit Lapicon leider nicht möglich ist.

    Ich hab zwar mit einer neueren Version angefangen, die auch das unterstützen soll, aber das liegt jetzt schon seit längerem auf Eis.

    Yannick

    xsc

    8 Feb 10 at 01:54

Leave a Reply