Code: Select all
(***************************************************
Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/
[Infos]
Authors=Le-Sphinx
Title=[Game] - Tomb-Raider
Description=Récupération d'information sur les Niveaux de Tomb Raider Online
Site=http://www.tro-online.com
Language=FR
Version=08022005
Requires=3.5.0
Comments=Script crée par Le-Sphinx (Sphinx_Studio@hotmail.com) pour le site " www.tro-online.com " |Information sur les niveaux supplémentaires pour l'éditeur de niveaux qui peuvent être téléchargés sur le site. |Pour rappel, ces données sont accessibles uniquement pour une utilisation personnelle ; en aucun cas elles ne peuvent être utilisées commerciallement ou publiquement !|
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 TombRaider;
const
BaseURL = 'http://www.tro-online.com';
var
LevelName: string;
Line, Lien : string;
//
// Mise du contenu du fichier dans une variable
//
function GetLocalPage(Address: string; CleanTree: Integer): string;
var
Page: TStringList;
begin
Page := TStringList.Create;
Page.LoadFromFile(Address);
Line := Page.Text;
Page.Free;
end;
procedure GetNombrePage(Address: string; CleanTree: Integer);
//
// Récupération des numéros de page
// Récupération de l'URL de la page
// dans la liste des Levels disponible
//
var
LineNr: Integer;
Tags, Url, Caption: string;
SubL1, SubL2: string;
BeginPos, EndPos: Integer;
begin
// Source de le page HTML
if Pos('http://www.tro-online.com', Line) > 0 then
begin
if CleanTree = 1 then
begin
PickTreeClear;
PickTreeAdd('Page Trouvée :', '');
end;
Tags := '<u>Liste de tous les niveaux</u>';
if Pos(Tags, Line) > 0 then
begin
// Page correct
// Efface le debut des données non utilisées.
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos );
BeginPos := Pos('<table', Line);
EndPos := Pos('</table>', Line);
Line := Copy(Line, BeginPos + 6 , EndPos - BeginPos - 6);
Caption := 'page 1';
Url := 'http://www.tro-online.com/niveaux-1-1.html';
PickTreeAdd(Caption, Url);
while Pos('title="page ', Line) > 0 do
begin
Tags := '<a href=';
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos + Length(Tags));
Tags := '.html';
BeginPos := Pos(Tags, Line);
Url := Copy(Line, 1, BeginPos + 4);
Tags := 'title="';
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos + 6 );
Tags := '" target="_self"';
BeginPos := Pos(Tags, Line);
Caption := Copy(Line, 1, BeginPos - 1);
// Ajout de la page et de son URL dans l'arborescence
PickTreeAdd(Caption, Url);
end;
end;
// Affiche la fenetre pour le choix de la page
if PickTreeExec(Address) then
begin
Lien := Address;
end;
end;
end;
procedure GetTitreNiveau(Address: string; CleanTree: Integer);
//
// Récupération des titres des niveaux
// dans la page disponible
//
var
LineNr: Integer;
Tags, Url, Caption, NumeroNiveau: string;
SubL1, SubL2: string;
BeginPos, EndPos: Integer;
begin
// Source de le page HTML
if Pos('http://www.tro-online.com', Line) > 0 then
begin
if CleanTree = 1 then
begin
PickTreeClear;
PickTreeAdd('Niveau Trouvé :', '');
end;
Tags := '<u>Liste de tous les niveaux</u>';
if Pos(Tags, Line) > 0 then
begin
// Page correct
// Efface le debut des données non utilisées.
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos );
while Pos('<a name="', Line) > 0 do
begin
Tags := '<a name="';
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos );
BeginPos := Pos('="', Line);
EndPos := Pos('"></a>', Line);
NumeroNiveau := Copy(Line, BeginPos + 2 , EndPos - BeginPos - 2);
//ShowMessage(Caption);
Tags := '</font>';
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos );
Tags := '</font>';
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos );
Tags := '<font face="';
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos );
BeginPos := Pos('>', Line);
EndPos := Pos('</font>', Line);
Caption := Copy(Line, BeginPos + 1 , EndPos - BeginPos - 1);
Url := Caption;
PickTreeAdd(NumeroNiveau + ' - ' + Caption, NumeroNiveau + ' - ' + Url);
end;
end;
// Affiche la fenetre pour le choix de la page
if PickTreeExec(Address) then
begin
LevelName := Address;
end;
end;
end;
procedure GetLevelReferences(Address: string; CleanTree: Integer);
//
// Récupération des titres des Levels
// dans la liste des Levels disponible
//
var
LineNr: Integer;
Tags, Url, Caption: string;
SubL1, SubL2, NumeroNiveau: string;
BeginPos, EndPos: Integer;
begin
// Source de le page HTML
Tags := ' - ';
EndPos := Pos(Tags, LevelName);
NumeroNiveau := Copy(LevelName, 0 , EndPos -1);
Delete(LevelName, 1, EndPos + 2);
SubL1 := '<a name="' + NumeroNiveau;
if Pos(SubL1, Line) > 0 then
begin
Tags := SubL1;
if Pos(Tags, Line) > 0 then
begin
// Page correct
// Efface le debut des données non utilisées.
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos );
// Récupération du Numéro et du Titre du niveau
Tags := 'name="';
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos );
BeginPos := Pos('="', Line);
EndPos := Pos('"></a>', Line);
SubL1 := Copy(Line, BeginPos + 2 , EndPos - BeginPos - 2);
SetField( fieldOriginalTitle, LevelName);
SetField( fieldTranslatedTitle, SubL1 + ' - ' + LevelName);
// Récuperation de l'Url du niveau
BeginPos := Pos('<a href="', Line);
EndPos := Pos('" title="', Line);
SubL1 := Copy(Line, BeginPos + 9 , EndPos - BeginPos - 9);
SetField( fieldURL, SubL1);
// Récupération du Nom de l'auteur du niveau
Tags := 'contacter l';
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos + Length(Tags));
BeginPos := Pos('<u>',Line);
EndPos := Pos('</u>', Line);
SubL1 := Copy(Line, BeginPos + 3, EndPos -3);
EndPos := Pos('</u>', SubL1);
SubL1 := Copy(SubL1, 1, EndPos - 1);
SetField( fieldProducer, SubL1);
// Récupération de l'image
Tags := '</table>';
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos + Length(Tags));
BeginPos := Pos('<img src="',Line);
EndPos := Pos('sm.jpg"', Line);
SubL1 := Copy(Line, BeginPos + 9, EndPos - 9 + 6);
EndPos := Pos('.jpg"', SubL1);
SubL1 := Copy(SubL1, 2, EndPos + 2);
GetPicture(SubL1);
// Résumé
BeginPos := Pos('<i>',Line);
EndPos := Pos('<script language', Line);
SubL1 := Copy(Line, BeginPos + 3, EndPos - 4);
EndPos := Pos('<script language', SubL1);
SubL1 := Copy(SubL1, 1, EndPos - 1);
SetField( fieldDescription, SubL1);
// Date de parution
Tags := 'Télécharger</a></noscript>';
BeginPos := Pos(Tags, Line);
Delete(Line, 1, BeginPos + Length(Tags));
BeginPos := Pos('<i>',Line);
EndPos := Pos('</i>', Line);
SubL1 := Copy(Line, BeginPos + 3, EndPos - 3);
EndPos := Pos('</i>', SubL1);
SubL1 := Copy(SubL1, 1, EndPos - 1);
SetField( fieldActors, SubL1);
SubL2 := Copy (SubL1, Length(SubL1) - 3, Length(SubL1));
SetField( fieldYear, SubL2);
end;
end;
end;
//
// Programme principal
//
begin
Begin
Line := GetPage('http://www.tro-online.com/niveaux-1-1.html');
GetNombrePage(Line,1);
Line := GetPage(Lien);
GetTitreNiveau(Line,1);
Line := GetPage(Lien);
GetLevelReferences(Line,1);
end;
end.