(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=Alex Iribarren (alexiri@terra.es)
Title=TV Tome / StarGate SG-1
Description=StarGate SG-1 TV Tome import
Site=http://www.tvtome.com
Language=EN
Version=04/04/2004
Requires=3.5.0
Comments= Modified version of IMDB batch import
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=1
[Options]
***************************************************)
program TvTome;
//Constants
Const
AddNotes = true;
var
EpName, EpNumber: string;
MovieName: string;
function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
var
i: Integer;
begin
result := -1;
if StartAt < 0 then
StartAt := 0;
for i := StartAt to List.Count-1 do
if Pos(Pattern, List.GetString(i)) <> 0 then
begin
result := i;
Break;
end;
end;
procedure AnalyzePage(Address: string);
var
Page: TStringList;
LineNr, StartPos: Integer;
Line, Season: string;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
PickTreeClear;
PickTreeAdd('Searching for ' + EpName, '');
LineNr := 0;
Address := '';
repeat
LineNr := FindLine('
<', Page, LineNr);
if LineNr > -1 then
begin
Line := Page.GetString(LineNr);
StartPos := pos('', Line) + 3;
Season := copy(Line, StartPos, pos('', Line) - StartPos);
PickTreeAdd(Season + ':', '');
Address := AddEpisodeTitles(Page, LineNr);
if (Address <> '') then Break;
LineNr := LineNr + 1;
end;
until (LineNr < 0);
if (Address <> '') then
begin
AnalyzeEpisodePage(Address);
end else begin
if PickTreeExec(Address) then
AnalyzeEpisodePage(Address);
end;
Page.Free;
end;
procedure AnalyzeEpisodePage(Address: string);
var
Line, TempStr: string;
BeginPos: Integer;
Page: TStringList;
LineNr: Integer;
begin
Page := TStringList.Create;
Page.Text := GetPage(Address);
// URL
SetField(fieldURL, Address);
// Episode Number
if EpNumber <> '' then
SetField(fieldTranslatedTitle, EpNumber);
// Original Title
LineNr := FindLine('
', Page, 0)+1;
Line := Page.GetString(LineNr);
CutAfter(Line,'
', Line) > 0));
end;
procedure CutAfter(var Str: string; Pattern: string);
begin
Str := Copy(str, Pos(Pattern, Str) + Length(Pattern), Length(Str));
end;
function StringReplaceAll(S, Old, New: string): string;
begin
while Pos(Old, S) > 0 do
S := StringReplace(S, Old, New);
Result := S;
end;
begin
if CheckVersion(3,5,0) then
begin
if (GetField(fieldURL) <> '') then
AnalyzeEpisodePage(GetField(fieldURL))
else
begin
EpName := GetField(fieldOriginalTitle);
if (EpName = '') then
EpName := GetField(fieldTranslatedTitle);
end;
if (EpName = '') then Input('TV Tome Import', 'Enter the title of the episode:', EpName);
//AnalyzePage('http://www.tvtome.com/tvtome/servlet/EpisodeGuideServlet/showid-249/'); // Futurama
//AnalyzePage('http://www.tvtome.com/Simpsons/eplist.html'); // The Simpsons
AnalyzePage('http://www.tvtome.com/StargateSG1/eplist.html'); // Stargate SG-1
//AnalyzePage('http://www.tvtome.com/tvtome/servlet/EpisodeGuideServlet/showid-5382/'); // Garfield
end else
ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
end.