Script for export to Kodi ( 15.x tested)
Posted: 2015-12-12 23:20:51
What does this script:
Exports data to simple xml as filename.nfo for use in Kodi.
Exports Picture to filename-poster.ext for use in Kodi.
* filename comes from filed [FilePath].
if [FilePath] is empty then field [OriginalTitle] is used
and you'll be asked to enter a existing folder name to export to.
Folder must already exist.
If file not created , then foldername was not correct or not existing.
before import in Kodi make sure files match same name.
example: Superman.nfo
Superman-poster.jpg
Superman.mkv
Best way to use:
1 create new ant catalog.
2 use File-->import-->Media Files then field [FilePath] will exist.
3 add your data with ant-scripts by pressing F6.
4 press SHIFT-F6 and choose the AMC_to_Simple_Kodi script.
Succesfully tested for Kodi 15.x
script is based on AMC_to_XBMC_xml_Export.ifs thanks to 'dowiew' the author.(hope you did not mind) .
Hope you like it.
save all in code to : AMC_to_Simple_Kodi.ifs in the AMC-script folder.
[/code]
Exports data to simple xml as filename.nfo for use in Kodi.
Exports Picture to filename-poster.ext for use in Kodi.
* filename comes from filed [FilePath].
if [FilePath] is empty then field [OriginalTitle] is used
and you'll be asked to enter a existing folder name to export to.
Folder must already exist.
If file not created , then foldername was not correct or not existing.
before import in Kodi make sure files match same name.
example: Superman.nfo
Superman-poster.jpg
Superman.mkv
Best way to use:
1 create new ant catalog.
2 use File-->import-->Media Files then field [FilePath] will exist.
3 add your data with ant-scripts by pressing F6.
4 press SHIFT-F6 and choose the AMC_to_Simple_Kodi script.
Succesfully tested for Kodi 15.x
script is based on AMC_to_XBMC_xml_Export.ifs thanks to 'dowiew' the author.(hope you did not mind) .
Hope you like it.
save all in code to : AMC_to_Simple_Kodi.ifs in the AMC-script folder.
Code: Select all
(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=Harald
Title=AMC to Simple Kodi xml Export
Description=Export movie data to movie.nfo and Picture to movie-poster.jpg if FilePath exists in movie data else save to OriginalTitle.nfo and OriginalTitle-poster.ext asked folder
Site=
Language=EN
Version=1.0
Requires=3.5.0
Comments=Read source code comments!
License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
GetInfo=0
RequiresMovies=1
[Options]
[Parameters]
***************************************************)
program AMCtoSimpleKodiXMLExport;
var
sx: string;
sl: TStringList;
SFileName, SaveFileName, MovieNumber, XBOX_Movies_Path: string;
i:integer;
procedure Ask(Msg: string; var TheStr: string);
begin
if not Input('AMC to Simple Kodi xml Export', Msg, TheStr) then TheStr:='';
end;
begin
sl := TStringList.Create;
SaveFileName:= ChangeFileExt(GetField(fieldFilePath),'.nfo');
if SaveFileName = '.nfo' then
begin
XBOX_Movies_Path:='';
if XBOX_Movies_Path='' then XBOX_Movies_Path:='D:\Movie\';
i := 0;
Ask('Set Pathname to save your files if no FilePath-Field exists', XBOX_Movies_Path);
while i = 0 do
begin
if not DirectoryExists(XBOX_Movies_Path) then
begin
Ask('Set Pathname to save your files if no FilePath-Field exists. Path must already exist!!', XBOX_Movies_Path);
end
else
i := 1;
end;
end;
if SaveFileName='' then EXIT;
if Pos('.nfo', SaveFileName)+Pos('.NFO', SaveFileName)=0 then SaveFileName:=SaveFileName+'.nfo';
sl.Append('<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>');
sl.Append('<movie>');
MovieNumber:=GetField(fieldNumber);
sx:='';
//Movie info ordered as it appears on XBMC screen.
//The fields we don't have in AMC are commented-out. Leave blank or put other fields there.
if GetField(fieldTranslatedTitle) <> '' then
sx:=sx+' <title>' + GetField(fieldTranslatedTitle) + '</title>'+#13#10
else
sx:=sx+' <title>' + GetField(fieldOriginalTitle) + '</title>'+#13#10 ;
sx:=sx+' <director>' + GetField(fieldDirector) + '</director>'+#13#10;
//sx:=sx+' <credits>' + GetField(fieldRating) + '</credits>'+#13#10;
sx:=sx+' <genre>' + GetField(fieldCategory) + '</genre>'+#13#10;
sx:=sx+' <year>' + GetField(fieldYear) + '</year>'+#13#10;
//sx:=sx+' <tagline>' + GetField(field ) + '</tagline>'+#13#10;
//sx:=sx+' <outline>' + GetField(field ) + '</outline>'+#13#10;
sx:=sx+' <rating>' + GetField(fieldRating) + '</rating>'+#13#10;
//sx:=sx+' <votes>' + GetField(field ) + '</votes>'+#13#10;
sx:=sx+' <runtime>' + GetField(fieldLength)+' min' + '</runtime>'+#13#10;
//sx:=sx+' <mpaa>' + GetField(field ) + '</mpaa>'+#13#10;
sx:=sx+' <plot>' + GetField(fieldDescription) + '</plot>'+#13#10;
//Original Title, not visible though:
sx:=sx+' <originaltitle>' + GetField(fieldOriginalTitle) + '</originaltitle>'+#13#10;
//Additional xml fields that can be left blank or assigned to whatever:
//sx:=sx+' <top250>' + GetField(field ) + '</top250>'+#13#10;
//sx:=sx+' <season>' + GetField(field ) + '</season>'+#13#10;
//sx:=sx+' <episode>' + GetField(field ) + '</episode>'+#13#10;
//sx:=sx+' <thumb>' + GetField(field ) + '</thumb>'+#13#10; // http://127.0.0.1/dummy.jpg
//sx:=sx+' <watched>' + GetField(field ) + '</watched>'+#13#10;
//sx:=sx+' <searchstring>' + GetField(field ) + '</searchstring>'+#13#10;
//sx:=sx+' <file>' + GetField(field ) + '</file>'+#13#10;
//sx:=sx+' <path>' + GetField(field ) + '</path>'+#13#10; // seems not needed
//sx:=sx+' <premiered>' + GetField(field ) + '</premiered>'+#13#10;
//sx:=sx+' <status>' + GetField(field ) + '</status>'+#13#10;
//sx:=sx+' <code>' + GetField(field ) + '</code>'+#13#10;
//sx:=sx+' <aired>' + GetField(field ) + '</aired>'+#13#10;
sx:=sx+' </movie>';
sl.Append(UTF8Encode(sx));
//save sl.savefilename
if SaveFileName = '.nfo' then
begin
i:= 0;
SaveFilename := GetField(fieldOriginalTitle);
while i=0 do
begin
if Pos('<', SaveFileName) + Pos('>', SaveFileName)+ Pos(':', SaveFileName)+
Pos('"', SaveFileName) + Pos('/', SaveFileName)+ Pos('\', SaveFileName)+
Pos('|', SaveFileName) + Pos('?', SaveFileName)+ Pos('*', SaveFileName) >0 then
Ask('Origintal title contains < > : " / \ | ? * ) , if other illegal characters.'+#13#10 +
' are used then files wil not be created ' + #13#10 + ' Please Correct filename!!', SaveFileName)
else
begin
i:=1;
end;
end;
SaveFileName := XBOX_Movies_Path + SaveFileName + '.nfo';
end;
SFilename := ChangeFileExt(SaveFileName,'-poster' + PictureExt);
sl.SaveToFile(SaveFileName);
sl.Free;
ExportPicture(SFileName);
end.