Ziel: aktuellen Track auf der Website anzeigen, ohne Port 80 zum server durchzurouten…
umsetzung:
ein Notificationsscript schickt den aktuellen Track an ein php-script auf der website:
[code]var n: INotification;
pi: IPlaylistItem;
begin
n := GetNotification;
if (n.GetNotificationType = ntMask) then
SetNotificationTypes([ntPlayerStart])
else
if (n.GetNotificationType = ntPlayerStart) then begin
pi := IPlaylistItem(n.GetInterface(1));
SystemLog(HTTPGet(‘http://src.sthoerfunk.de/now/michi.php?artist=’ + pi.GetArtist + ‘&title=’ + pi.GetTitle));
SystemLog(‘artist=’ + pi.GetArtist + ‘&title=’ + pi.GetTitle);
end;
end.
[/code] (originalscript von radio80FM)
dort werden die Tracks dann in ein javascript integriert, und dann in die webseite integriert.
Jetzt habe Ich 2 Probleme:
im LAN funktioniert’s wunderbar, doch wenn die adresse ins internet rausgeht, passiert folgendes: das erste mal (also beim ersten playerstart) wird das Script manchmal ausgeführt, dann aber komischerweise nichtmehr.
woran könnte es liegen?
wenn du es ausprobieren willst, angezeigt al html wird das ganze unter: http://src.sthoerfunk.de/now/index.html
oder hab ich gar einen fehler im mls???
Im LAN funktionierts ja wunderbar, nur wenn leerzeichen drin sind, wird der “get-befehl”(nenn ihn jetzt einfach mal so) nach diesem leerzeichen agebroichen… bsp:
artist: Basement Jaxx title: Plug It In
der “get befehl” sieht folgendermaßen aus: ?artist=Basement Jaxx&title=Plug It In
im endeffekt steht dann auf der website: “Basement”
wenn dich die get zeile im browser eingebe, funktionierts
während dem schreiben ist mir aufgefallen: der browser is so schlau, und macht aus leerzeichen “%20”, und mairlist nicht…
kannst du evtl mairlist auch so “schlau” machen?
habe mir überlegt, man könnte das auch mit mls machen…
gbts in “mls-sisch” so etwas ähnliches wie variable.charAt(stelle) und variable.length in java/javascript??
zu 1.
scheint so, als würde alles gut funktionieren, solange kein leerzeichen irgendwo ist. sobald ein leerzeichen auftaucht, bleibt das script hängen, und lässt sich danach auch nichtmehr starten…
vllt hilft das ja weiter…
wenn du wegen den tests noch die php und js datei haben willst, meldest dich einfach;-)
Das mit den Leerzeichen hab ich jetzt korrigiert, wird in 1.5.49 drin sein.
Dass teilweise Anfragen “verschluckt” werden ist mir auch schonmal aufgefallen, ich konnte aber zunächst den Grund nicht ermitteln. Ich forsche mal weiter nach.
HTTPGet schmeißt tatsächlich eine Exception, wenn keine Verbindung hergestellt werden konnte. Je nach Grund (keine Verbindung, unbekannter Host, Rechner antwortet nicht, …) dauert das einige Sekunden. Wenn du die Exception nicht innerhalb des Scripts abfängst, bricht das Script ab, allerdings sollte mAirList die Exception dann abfangen und die Situation bereinigen. Evtl. ist da was kaputt. Ich forsche mal nach.