Da sich der Inhalt und Aufbau von Webseite ständig ändert und verschiedene Benutzer unterschiedliche Vorlieben haben, habe ich eine Skript-Schnittstelle zum Import von Daten eingebaut. Hierdurch kann jeder seine Lieblingsdatenquellen relativ einfach in das Video-Modul einbinden.
Bitte schickt mir Eure entwickelten Skripte zu damit ich diese hier zum Download anbieten kann. Je nach Wunsch anonym oder mit Angabe der Autors (Name oder Webseite oder was Ihr wollt). Dieses Feature lebt von Eurer Mitarbeit. Danke
C#
Visual Basic .NET
prinzipiell jede weitere von .NET unterstützte Sprache, dann müsste ich jedoch noch was im Programm erweitern. Bei Bedarf bitte melden.
Sich überlegen von wo man wie die Daten beschafft. Hierzu ist ein 2 Schritte verfahren nötig.
Eine Liste von Filmnamen muss geliefert werden können (nach Suchbegriff)
Die Detail zu einem Film müssen geliefert werden können (zumindest wenn man die Daten importieren möchte)
Erstellen von zwei Skripten (siehe oben Schritt 1 und 2)
Kopieren dieser Skripte in zwei XML-Dateien
Hinzufügen der Skripte im Einstellungsdialog des Videomoduls
also eigentlich nicht viel, das sollte jeder schaffen der ein wenig programmieren kann. Aber auch ohne tiefere Kenntnisse von c# und .NET lassen sich durch leichte Modifizierungen an den Beispielskripten andere Datenquellen einbinden.
Einfach oder? Also erst den Dateityp (xml Version 1) dann den Codesatz (UTF-8) und danach die Knoten:
xmlscript
Scriptlanguage (zur Angabe der verwendeten Skriptsprache
ScriptCode (hier kommt das eigentlich Script rein)
CDATA (Kennung damit der Code so wie ist vom XML-Parser übernommen wird)

Skriptname: der Name des Skriptes so wie er nachher auch im Importdialog angezeigt werden soll. Der Name muss eindeutig sein.
Pfad zur XML-Datei die das Skript zum liefern der Filmliste beinhaltet
Pfad zur XML-Datei die das Skript zum Liefern der Filmdetails beinhaltet.
Gibt man keinen kompletten Pfad an, so sucht das Programm in <Programmpfad>/Scripts/<Name> nach den Skripten.
Jetzt zum Kern des Interfaces, was geht und was geht nicht und vor allem wie geht es und was genau für Schnittstellen stehen einem als Programmierer zu Verfügung.
Prinzipiell implementieren die Skripte das Innere von Methoden. D.h. man muß pro Datenquelle zwei Methoden (Liste + Details) implementieren. Der Datenaustausch erfolgt über Methodenparameter bzw. Rückgabewerte die fest definiert sind.
Das Filmlistenskript bekommt den Suchbegriff (Filmname) als Eingangsdaten und liefert eine Liste von Filmnamen + Quellen (URLs) zurück (ImExportFilmListData). Der Name der Variablen lautet "searchstring". D.h. im Skript kann diese Variable zur suche der Filme verwendet werden.
Das Filmdetailskript bekommt eine URL eines Filmes aus 1. als Eingabeparameter und liefert alle filmrelevanten Detaildaten zurück (ImExportFilmDetailsData). Der Name der Variablen lautet "filmurl". D.h. im Skript muss man diese URL auswerten um die Filmdetails zurückliefern zu können.
Ganz einfach über die Rückgabe einer Instanz der Klasse ImExportFilmListData. Die Rückgabevariable ist bereist angelegt und der Name lautet filmlist (ist eine ArrayList). Die eigentlichen Daten werden in Instanzen der Klasse ImExportFilmListData gespeichter. Also einfach in einer Schleife folgendes aufrufen:
ImExportFilmListData filmlistdata=new ImExportFilmListData();
filmlistdata.FilmName="Name des Filmes";
filmlistdata.FilmSource="Name der Datenquelle zur Anzeige";
filmlistdata.FilmURL="URL der einzelnen Filmdaten zur weiteren Auswertung;
filmlist.Add(filmlistdata);
Ganz einfach über die Rückgabe einer Instanz der Klasse ImExportFilmDetailsData. Der Name der Rückgabevariables ist fest definiert und eine Instanz bereits angelegt. Der Name für die Rückgabevariable lautet filmdata. D.h. man kann im Skript die Daten einfach füllen und braucht sich um nicht mehr kümmern.
<code zur analyse der details mittels URL>
<dann zuweisen der Daten z.B.>
filmdata.Genre=<was auch immer ich bei der Analyse gefunden habe>
filmdata.xyz=.....
Alles was innerhalb der folgenden Namensräume bekannt ist:
Die Dokumentation hierzu findet Ihr auf den Microsoftseiten. Zusätzlich noch folgende Klassen:
Die Klassenbeschreibungen befinden sich HIER.
Hierzu kann man sein Skript mit Debugausgaben versehen. Z.B:
log.Info("VDB: Filmlistenabfrage
gestartet...");
zusätzlich zu Info gibt es noch Warn, Error, Debug. Die Ausgaben
landen alle im Logfile.
Man kann man sich auch mit einer MessageBox behelfen:
MessageBox.Show("Text der
angezeigt werden soll");
Syntaxfehler im Skript werden in einer Fehlerbox bei der Ausführung ausgegeben z.B:

Hier wurde in Zeile 30 eine Methode WriteLine aufgerufen die es nicht gibt.
|
Letzte Änderung:
01.11.05 |