Codebeispiele mAirListScript

ok,

jop… nur kein Stress, is eh nich so eilig…und im Endeffekt nur Spielerei :slight_smile:

grüße, michi

Könnte man bei der “NowPlaying.html” oder eher gesagt im Script eine “Blacklist”-Funktion einbauen, dass er die “NowPlaying.html” nicht ändert, nicht den Titel anzeigt, wenn ein bestimmtes Wort im Artist oder Titel steht?
Z.B. “Jingle”?

Zwei Fragen:

Wie kann man den letzten gelaufenen Titel anzeigen lasse?
Und wie funktioniert das GetCount, dass von Torben angesprochenen wurde?

Wenn jemand den genauen Code posten könnte, währe das sehr nett, denn
ich hab von dieser Programmiersprache leider nicht so viel Ahnung.

fahrer

wo willst du es denn anzeigen lassen?

grüße, michi

Könnte man bei der "NowPlaying.html" oder eher gesagt im Script eine "Blacklist"-Funktion einbauen, dass er die "NowPlaying.html" nicht ändert, nicht den Titel anzeigt, wenn ein bestimmtes Wort im Artist oder Titel steht? Z.B. "Jingle"?

Könnte sich darüber jmd noch mal Gedanken machen, bin nicht so der “Coder” :wink:

Hi,

man müsste halt per Schleife die Variable durchsuchen…

Wenn es vergleichbare Funktionen wie charAt bzw. Substring (gibt es in javascript / java) gibt, ist es möglich…

Torben, ist soetwas möglich mit dieser Scriptkomponente?

grüße, michi

Ja, heißt bei Delphi “pos”.

Hi Torben…

kannst du mir bitte ein Beispiel für die Syntax geben?

habe schon verschiedene arten vbersucht:
variable.pos(0)
pos(variable, 0)

kann ich auch ganze zeichenketten aus einer Variable ziehen?

grüße, michi[/code]

Zunächst: Anders als in Java sind Strings in Delphi generische Typen, also keine Objekte, und haben keine Methoden.

Die Syntax von pos ist auf dieser hervorragenden Seite erklärt: http://www.delphibasics.co.uk/RTL.asp?Name=Pos
(ob die Scripts auch das dort erwähnte AnsiPos können, weiß ich gerade nicht.)

Der Vergleich müsste also etwa lauten “if pos(‘Jingle’, pi.GetTitle) > 0 then …”, dann wird der Rest nur ausgeführt, wenn nicht “Jingle” im Titel vorkommt.

Torben

ist ja einfacher als ich gedacht hätte:)

Danke schön…

grüße, michi

Hilfst du dem JC dann mit dem Script?

Hilfst du dem JC dann mit dem Script?

richtig :wink: Denn ich bin eher nur so der “Benutzer”… Mit Codes usw kann ich eher weniger anfangen :wink:

Ich bin mehr so der Coder, aber hab immer so viel zu tun :wink:

Ich kann mal was coden…

Könnte man bei der "NowPlaying.html" oder eher gesagt im Script eine "Blacklist"-Funktion einbauen, dass er die "NowPlaying.html" nicht ändert, nicht den Titel anzeigt, wenn ein bestimmtes Wort im Artist oder Titel steht? Z.B. "Jingle"?

das hier , gell?

für 2.0 oder 2.1???

grüße, michi

richtig das :wink:
Von mir aus kann der auch “einen bestimmten Text” ausgeben, wenn im Titel oder Artist “Jingle” steht.

Thx :smiley:

Hi,

Hier das Script… für die mAirList versionen bis 2.0.X…

musst halt an den 2 stellen für “Jingle” die wörter ändern, wenn du was anderes verglichen haben willst…

[code]var n: INotification;
pi: IPlaylistItem;
sl: TStringList;

begin
// fetch notification data
n := GetNotification;

if (n.GetNotificationType = ntMask) then
// we want to be notified when players start
SetNotificationTypes([ntPlayerStart])
else
if (n.GetNotificationType = ntPlayerStart) then begin
// interface #1 contains a reference to the playlist item
pi := IPlaylistItem(n.GetInterface(1));
if (pos(‘Jingle’, pi.GetTitle) =0) then begin
if (pos(‘Jingle’, pi.GetArtist) =0) then begin
sl := TStringList.Create;
sl.Add(’’);
sl.Add(‘Now Playing’);
sl.Add(’’);
sl.Add(‘

Artist: ’ + pi.GetArtist + ‘
Title: ’ + pi.GetTitle + ‘

’);
sl.Add(’’);
sl.Add(’’);
sl.SaveToFile(‘c:\NowPlaying.html’);
sl.Free;
end;
end;
end;
end.
[/code]

Das Script ändert Jetzt nichts, wenn “Jingle” im Titel oder im artist steht…
wenn du “einen bestimmten” Text ausgeben(in das file schreiben) willst, meldest dich nochmal…

grüße, michi

Hi,

Hier das Script… für die mAirList versionen bis 2.0.X…

Heißt also es funktioniert bei 2.1.5 nicht? Weil im Moment bekomme ich keine Ausgabe. (Habe auf meine Settings angeglichen)

Error loading D:…\NowPlayingHTML.mls: [Error] (1:8): Unknown type ‘INotification’

Nein…funktioniert nur bis 2.0.X

deshalb fragte ich ja auch oben;)

Ich stells dir Morgen bzw. Heute (mann, jetzt muss ich aber ins Bettchen) um…

grüße, michi

Hi,

Doch noch jetzt:

[code]procedure OnPlayerStart(PlayerControl: IPlayerControl; Item: IPlaylistItem);
var sl: TStringList;
begin
if (pos(‘Jingle’, Item.GetTitle) =0) then begin
if (pos(‘Jingle’, Item.GetArtist) =0) then begin
sl := TStringList.Create;
sl.Add(’’);
sl.Add(‘Now Playing’);
sl.Add(’’);
sl.Add(‘

Artist: ’ + Item.GetArtist + ‘
Title: ’ + Item.GetTitle + ‘

’);
sl.Add(’’);
sl.Add(’’);
sl.SaveToFile(‘c:\NowPlaying.html’);
sl.Free;
end;
end;
end;

begin
end.[/code]

nur kurz getestet…aber sollte funktionieren

grüße, michi

Oh ja SUPER! Danke, es funktioniert :wink: freu freu

PS: gn8 :wink: