[gelöst] Script: Dateien aus Ordner auswählen

Hallo zusammen

Gibt es per mAirList Script einen Weg, dass ich aus einem Ordner die neusten 3 Dateien in die Playlist laden kann?
Auf den Filenamen kann ich nicht zurückgreifen.

Hintergrund: Möchte per Actionmenü ein Notfallzugang zu den letzten 3 Nachrichten Bulletin schaffen
Danke für Eure Hilfe

Michel

PS: Sonst versuche ich das ganze per VBScript zu schreiben, welches per CURL die Datei in mAirList bringt.

Es gibt die Funktion FindFiles, die dir die Liste aller Dateien in einem bestimmten Ordner (auf Wunsch auch rekursiv) zurückgibt:

var 
  dateien: IStrings;

begin
  dateien := FindFiles('c:\ganzwoanders\*.mp3', false); // false = nicht rekursiv
end.

Nun müsstest du dir einen Algorithmus überlegen, der die neuesten drei Dateien aus der Liste ermittelt.

Vielleicht Hilft mir da FileAge 8)
Kann ich eigentlich über CURL bzw. REST eine bestimmte Datei laden?

Michel

Ich dachte, den Teil mit FileAge kriegst du jetzt schon hin :wink:

Du kannst bei CreateFilePlaylistItem direkt die URL angeben.

Hi Torben

Mein Script sieht mal so aus. Funktioniert eigentlich schon sehr gut.
Kann ich beim CurrentPlaylist.InsertFile noch irgendwelche Metadaten (Title, Type, Kommentar) mitgeben?

[code]var
str: IStrings;
i: integer;

begin
str := FindFiles(‘M:\news*.mp2’, false);
SystemLog(IntToStr(str.GetCount));
for i:= 0 to str.GetCount-1 do
begin
CurrentPlaylist.InsertFile(CurrentPlaylist.GetNextIndex, str.GetItem(i));
end;
end.[/code]

Danke Michel

Dazu musst du das Element von Hand (Factory) erzeugen und einfügen:

var
  str: IStrings;
  i: integer;
  pi: IPlaylistItem;

begin
  str := FindFiles('M:\news\*.mp2', false);
  SystemLog(IntToStr(str.GetCount));
  for i:= 0 to str.GetCount-1 do
  begin
    pi := Factory.CreateFilePlaylistItem(str.GetItem(i), []);
    pi.SetTitle('Titel');
    // usw.
    CurrentPlaylist.Insert(CurrentPlaylist.GetNextIndex, pi);
  end;
end.

Man beachte die leeren eckigen Klammern [] bei CreateFilePlaylistItem. Da kann man noch angeben, welche Metadaten-Quellen (Datei-Tag, MMD, Länge auslesen) herangezogen werden sollen. Das hatte ich hier mal erläutert: http://forum.mairlist.com/index.php/topic,5215.msg37385.html#msg37385

Soweit so gut.

Im mAirListScript, welches irgendwie defekt ist (Die Navigation zu der Webseite wurde abgebrochen), habe ich SetItemType gefunden. Wie muss ich SetItemType setzen, dass ich News erhalte?

SetItemType(pitNews)

Perfekt! ;D