(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=Nicezia
Title=XBMC .nfo Export
Description=Exports Movies to individual .nfo files that XBMC can read for movie Information
Site=
Language=?
Version=1.0.32
Requires=3.5.1
Comments=Contains sample code written by antp to export actors
License=
GetInfo=0
[Options]
***************************************************)
program XBMCNfo;
var
MovieActors: string;
MovieGenre: string;
SavefileName: string;
DirSelected: string;
FormatedData: string;
OutToFile: TStringList;
function ActorsToXml(actors: string): string;
var
lstActor: TStringList;
iActor: Integer;
sActor: string;
begin
lstActor := TStringList.Create;
lstActor.Text := StringReplace(actors, ', ', #13#10);
for iActor := 0 to lstActor.Count - iActor do
begin
sActor := ' ' + #13#10 + ' ' + lstActor.GetString(iActor) + '' + #13#10 +' ';
if lstActor.GetString(iActor) <> #13#10 then lstActor.SetString(iActor, sActor);
end;
Result := lstActor.Text;
lstActor.Free;
end;
function GenreToXML(genre: string): string;
var
lstGenre: TStringList;
iGenre: Integer;
sGenre: string;
begin
lstGenre := TStringList.Create;
lstGenre.Text := StringReplace(genre, ', ', #13#10);
for iGenre := 0 to lstGenre.Count -iGenre do
begin
sGenre := ' ' + lstGenre.GetString(iGenre) + '';
lstGenre.SetString(iGenre, sGenre);
end
Result := lstGenre.Text;
lstGenre.Free;
end;
function ChooseTitle(Original: string; Translated: string): string;
begin
if Translated <> '' then Result := Translated else Result := Original
end;
begin
if DirSelected ='' then
begin
Input('Folder Select','Select Folder to save NFO files',DirSelected)
end;
begin
OutToFile := TStringList.Create;
SaveFileName := IncludeTrailingPathDelimiter(DirSelected) + GetField(fieldOriginalTitle) + '.nfo';
FormatedData := FormatedData +''+#13#10;
FormatedData := FormatedData +' '+ ChooseTitle(GetField(fieldOriginalTitle), GetField(fieldTranslatedTitle)) + ''+#13#10;
FormatedData := FormatedData +' '+GetField(fieldRating)+''+#13#10;
FormatedData := FormatedData +' '+GetField(fieldYear)+''+#13#10;
(* FormatedData := FormatedData +' '+GetFeild(fieldWhatever)+''+#13#10;
FormatedData := FormatedData +' '+GetField(fieldWhatever)+''+#13#10;
FormatedData := FormatedData +' '+GetField(Whatever)+''+#13#10; *)
FormatedData := FormatedData +' '+GetField(fieldDescription)+''+#13#10;
FormatedData := FormatedData +' '+GetField(fieldComments)+''+#13#10;
FormatedData := FormatedData +' '+GetField(fieldLength)+'min'+#13#10;
FormatedData := FormatedData +' '+GetField(fieldOriginalTitle)+'.tbn'+#13#10;
FormatedData := FormatedData +' X'+#13#10;
FormatedData := FormatedData +' '+GetField(fieldDirector)+''+#13#10;
FormatedData := FormatedData +' '+GetField(fieldProducer)+'' + #13#10;
(* Run Actor Script here*)
MovieActors := ActorsToXML(GetField(fieldActors));
MovieGenre := GenreToXML(GetField(fieldCategory));
OutToFile.Append(UTF8Encode(FormatedData + MovieGenre + MovieActors + ''));
OutToFile.SaveToFile(SaveFileName);
OutToFile.Free;
FormatedData := ''
end;
end.