Wie verwende ich Lapicon in meinem eigenen Programm? (.NET)
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:
- Rechtsklick auf “Veweise” im Projektmappen-Explorer, dann Klick auf “Verweis hinzufügen…”:

- Unter “Durchsuchen” die Datei “Lapicon.exe” suchen und auswählen. Klick auf “OK”.

Jetzt kann die Programmentwicklung losgehen. Wir erstellen ein Fenster, das in etwa so aussieht:
![]()
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:
![]()
Viel einfacher geht es wirklich nicht mehr. Ich hoffe, damit allen, die Interesse an Lapicon haben, ein Stück weiter geholfen zu haben.
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
Nachtrag: Es ist irgendwas mit der Method Signature. Was auch immer das sein mag.
guinea
7 Feb 10 at 16:09
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