Page 1 of 1

[FR] Classement des BD

Posted: 2003-12-10 12:00:05
by Jekkil
Bonjour à tous.

J'utilise ce superbe programme qu'est Movie Catalog pour classer mes DVD et mes Divx. Rien que du normal donc :)
Comme je suis aussi un grand amateur de BD, j'ai déjà essayé de trouver un équivalent de Movie Catalogue, mais pour BD !
Et là j'ai rien trouvé qui me convienne vraiment (le fait de pouvoir importer des infos direct d'internet et de pouvoir générer des reports en HTML)
Donc je me suis dit puisque j'ai un bon moteur sous la main, pq pas l'utiliser pour les BD aussi !
Donc je compte écrire un script qui ira chercher qq infos (image couverture, titre, auteurs, nom de la série, année de parution ... ) sur le net.
Evidemment les champs pour une video et une bd ne sont pas tous compatibles, mais l'important après tout est de stoquer l'info qqpart dans Movie Catalog et de le ressortir au bon endroit dans le template HTML.

Evidemment la question que je me dois de poser est celle-ci:
Est-ce que qqn a déjà écrit ce genre de script ?
(Histoire que je ne perde pas mon temps :p )

Bonne journée à tous,
Jekkil

Posted: 2003-12-10 15:46:33
by antp
Salut,
Il me semble que quelqu'un avait déjà parlé de ça, mais si je me souviens bien c'était juste à propos d'un fichier de traduction pour changer les noms des champs, et non d'un script...
Tu as déjà fait une recherche sur le forum ?

Posted: 2003-12-10 16:55:51
by kortex
en effet quelqu'un avait déjà posé la question à ce sujet...et je lui afait répondu qu'il existe un logiciel qui fonctionne comme amc justement avec une base de données spécialisée pour les BD et remplie par les utilisatuers du logiciel :)

ce log s'appelle bdgest et est disponible sur le site www.bdgest.com, il y a un forum tres actif sur ce site, des mises a jour régulieres,...

par contre contrairement à amc il est payant :/

Posted: 2003-12-12 13:09:03
by Guest
J'ai checké assez rapidement je dois dire le forum et j'ai rien trouvé de concret :/

BdGuest, je connais. Du moins j'ai installé la version d'évaluation et ... bof bof et re bof. Il ne m'a vraiment pas convaincu ce prog :hum:

Donc puisqu'il n'y a rien de concret, je m'y suis mis. 50% du script est déjà écrit :D

Je download les infos du site bdnet.com qui est assez bien foutu et qui a notamment toutes les covers. J'espère terminer le scrip pour la fin du week-end :)

Pis faudra encore écrire le template HTML, mais bon cela devra être assez rapide.

Je vous tiens informé via ce forum.

Jekkil

Posted: 2003-12-16 22:45:47
by kortex
en effet en me baladant dans les ieux sujets je suis tombé la dessus viewtopic.php?t=455 :wink:

Posted: 2003-12-19 14:24:51
by Jekkil
Merci kortex pour l'info :lol:
En fait j'ai terminé le script qui va chercher l'info sur BDNet, mais apres comparasion je trouve que l'info 'description' est plus correcte sur BDParadisio :grinking: Donc j'écris un second script d'import :p
Mais le forum est intéressant, notamment pour l'adaptation du "language film" vers le "language bd". Bien qu'il ne soit pas uptodate avec la dernière version 3.4.2.
Le template HTML est pas mal non plus. Il y a de l'idée :cool:

a+,
Jekkil

Posted: 2004-01-27 13:49:26
by Merit
Et quand est-ce que l'on peut telecharger le script, parce que ça m'intéresse à fond ça.

Posted: 2004-01-27 17:54:47
by Guest
Voici les 2 scripts que j'utilise (ils sont assez complémentaires et quand il ya pas l'info sur un site, il y a sur l'autre)
Pour BDNet

Code: Select all

// GETINFO SCRIPTING
// BDnet

(***************************************************

 ***************************************************)

program BDNET;
const
  MustImportBitrate = False; // set this to True if you want to take the bitrate information from the site
  BaseURL = 'http://www.bdnet.com';
  newLine = #13#10;
  
var
  BDName: string;


procedure GetBdReferences(Address: string; CleanTree: Integer);
var
  Page: TStringList;
  LineNr: Integer;
  Line, Tags, Url, Caption: string;
  SubL1, SubL2: string;
  BeginPos, EndPos: Integer;

begin

	// Get Page contents
  Line := GetPage(Address);

  if Pos('<TITLE>Votre Recherche:', Line) > 0 then
  begin

    if CleanTree = 1 then
    begin
    	PickTreeClear;
      PickTreeAdd('BD trouvées :', '');
    end;
    
    Tags := '<TABLE WIDTH="100%" BORDER="1" VSPACE="0" HSPACE="0" HEIGHT="0" BORDERCOLOR="#FFC271" CELLPADDING="0" CELLSPACING="0">';
    // Look if we get the correct page
	  if Pos(Tags, Line) > 0 then
	  begin

	  	// We have the correct page

			// Delete the start of the page that we do not need
      BeginPos := Pos(Tags, Line);
      Delete(Line, 1, BeginPos + Length(Tags));

      // Find the interessting parts in the page
      EndPos := Pos('<CENTER>', Line);
      
      // SubL1 contains the part of the page with the title references
      SubL1 := Copy(Line, 1, EndPos);
      
      // In SubL1, look for references
      while Pos('<TR', SubL1) > 0 do
      begin
      	// Isolate TR block
        BeginPos := Pos('<TR', SubL1);
        EndPos := Pos('</TR>', SubL1);

				// SubL2 contains TR block
        SubL2 := Copy(SubL1, BeginPos, EndPos - BeginPos);
        
        // Look for URL
        BeginPos := Pos('<A HREF="', SubL2);
	      Delete(SubL2, 1, BeginPos + Length('<A HREF="')-1);
        EndPos := Pos('">', SubL2);
        Url := BaseURL + Copy(SubL2, 1, EndPos-1);

        // Look for Description
        EndPos := Pos('<A HREF="', SubL2);
	      Delete(SubL2, 1, EndPos + Length('<A HREF="'));
        EndPos := Pos('<B>', SubL2);
	      Delete(SubL2, 1, EndPos + Length('<B>')-1);
        EndPos := Pos('</B>', SubL2);
        Caption := Copy(SubL2, 1, EndPos-1);
        
        // Add description and URL to Tree
        PickTreeAdd(Caption,  Url);

				// Look for next block
        EndPos := Pos('</TABLE>', SubL1);
	      Delete(SubL1, 1, EndPos + Length('</TABLE>'));
        EndPos := Pos('</TABLE>', SubL1);
	      Delete(SubL1, 1, EndPos + Length('</TABLE>'));
      end;

      // Test the presence of other pages
			Tags := '</B> pages trouv';
      if Pos (Line, Tags) = 0 then
      begin
      	// There are other pages withe references
      	
      	EndPos := Pos(Tags, Line);
				Delete(Line, 1, EndPos + Length(Tags));
	      EndPos := Pos('IMG', Line);
	      
	      // Put in SubL1 the part that contains reference to other pages
	      SubL1 := Copy(Line, 1, EndPos);
	          
	      // Parse references	
      	while Pos('<A href="', SubL1) > 0 do
      	begin
					Tags := '/recherche.htm';
					EndPos := Pos(Tags, SubL1);
		      Delete(SubL1, 1, EndPos-1);

					EndPos := Pos('"', SubL1);
					Url := BaseURL + Copy(SubL1, 1, EndPos-1);

		      Delete(SubL1, 1, EndPos);
					EndPos := Pos('>', SubL1);
		      Delete(SubL1, 1, EndPos);
					EndPos := Pos('<', SubL1);
					Caption := Copy(SubL1, 1, EndPos-1);
					if Caption = '>' then
					begin
						// Only save reference of "Next" Page
						PickTreeMoreLink(Url);
					end;

					Tags := '</A>';
					EndPos := Pos(SubL1, SubL1);
		      Delete(SubL1, 1, EndPos + Length(Tags));
      	end;
      end;
			
			// Show references found to users
	    if PickTreeExec(Address) then
	    begin
	      GetBdReferences(Address, 0);
	    end;
	  end;
  end else
  begin
  	SetField(fieldURL, Address);
  	AnalyzeBdPage(Line);
  end;
end;

procedure AnalyzeBdPage(Line: string);
var
  Page: TStringList;
  LineNr: Integer;
  StartTag, EndTag : string;
  SubL1, SubL2, SubL3, SubL4: string;
  BeginPos, EndPos: Integer;
begin

	// Get interessting part from page    
  StartTag := 'function pop(';
  EndTag := 'function go(';
  BeginPos := Pos (StartTag, Line);
  EndPos := Pos (EndTag, Line);
  SubL1 := Copy (Line, BeginPos, EndPos);
  
  // Get Picture
  StartTag := '<TD WIDTH="150" VALIGN="MIDDLE"><img src="';
  if Pos (StartTag, SubL1) > 0 then
  begin
	  EndTag := '" border=1 align=left>';
	  BeginPos := Pos (StartTag, SubL1);
	  SubL2 := Copy ( SubL1, BeginPos + Length(StartTag)-1, Length(SubL1));
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, EndPos, Length(SubL2));
	  GetPicture(SubL2, False);
	end;
  
  // Year
  StartTag := 'Paru en: ';
  if Pos (StartTag, SubL1) > 0 then
  begin
	  EndTag := '</FONT>';
	  BeginPos := Pos (StartTag, SubL1);
	  SubL2 := Copy ( SubL1, BeginPos + Length(StartTag)-1, Length(SubL1));
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, EndPos, Length(SubL2));
	  Delete ( SubL2, 1, Length(SubL2)-4);
	  SetField( fieldActors, SubL2);
  end;
  
  // Get Serie name
  StartTag := '<B>Série: </B>';
  if Pos (StartTag, SubL1) > 0 then
  begin
	  EndTag := '>';
	  BeginPos := Pos (StartTag, SubL1);
	  SubL2 := Copy ( SubL1, BeginPos + Length(StartTag)-1, Length(SubL1));
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, 1, EndPos);
	  StartTag := '">';
	  EndTag := '</A><BR>';
	  BeginPos := Pos (StartTag, SubL2);
	  Delete ( SubL2, 1, BeginPos + Length(StartTag)-1);
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, EndPos, Length(SubL2));
	  SetField( fieldSource, SubL2);
	end;
  
  // Get Dessinateur
  StartTag := '<B>Dessinateur:</B>';
  if Pos (StartTag, SubL1) > 0 then
  begin
	  EndTag := '>';
	  BeginPos := Pos (StartTag, SubL1);
	  SubL2 := Copy ( SubL1, BeginPos + Length(StartTag)-1, Length(SubL1));
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, 1, EndPos);
	  StartTag := '">';
	  EndTag := '</A><BR>';
	  BeginPos := Pos (StartTag, SubL2);
	  Delete ( SubL2, 1, BeginPos + Length(StartTag)-1);
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, EndPos, Length(SubL2));
	  SetField( fieldProducer, SubL2);
	end;
  
  // Get Scenariste
  StartTag := '<B>Scénariste:</B>';
  if Pos (StartTag, SubL1) > 0 then
  begin
	  EndTag := '>';
	  BeginPos := Pos (StartTag, SubL1);
	  SubL2 := Copy ( SubL1, BeginPos + Length(StartTag)-1, Length(SubL1));
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, 1, EndPos);
	  StartTag := '">';
	  EndTag := '</A><BR>';
	  BeginPos := Pos (StartTag, SubL2);
	  Delete ( SubL2, 1, BeginPos + Length(StartTag)-1);
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, EndPos, Length(SubL2));
	  SetField( fieldDirector, SubL2);
	end;
  
  // Get Genre
  StartTag := '<B>Genre:</B>';
  if Pos (StartTag, SubL1) > 0 then
  begin
	  EndTag := '>';
	  BeginPos := Pos (StartTag, SubL1);
	  SubL2 := Copy ( SubL1, BeginPos + Length(StartTag)-1, Length(SubL1));
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, 1, EndPos);
	  StartTag := '">';
	  EndTag := '</A><BR>';
	  BeginPos := Pos (StartTag, SubL2);
	  Delete ( SubL2, 1, BeginPos + Length(StartTag)-1);
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, EndPos, Length(SubL2));
	  SetField( fieldCategory, SubL2);
	end;

  // Get Editeur
  StartTag := '<B>Editeur:</B>';
  if Pos (StartTag, SubL1) > 0 then
  begin
	  EndTag := '>';
	  BeginPos := Pos (StartTag, SubL1);
	  SubL2 := Copy ( SubL1, BeginPos + Length(StartTag)-1, Length(SubL1));
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, 1, EndPos);
	  StartTag := '">';
	  EndTag := '</A><BR>';
	  BeginPos := Pos (StartTag, SubL2);
	  Delete ( SubL2, 1, BeginPos + Length(StartTag)-1);
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, EndPos, Length(SubL2));
	  SetField( fieldCountry, SubL2);
	end;

  // Get Tome#
  StartTag := ', tome ';
  if Pos (StartTag, SubL1) > 0 then
  begin
	  EndTag := '</B>';
	  BeginPos := Pos (StartTag, SubL1);
	  SubL2 := Copy ( SubL1, BeginPos + Length(StartTag)+2, Length(SubL1)+1);
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, EndPos, Length(SubL2));
	  SetField( fieldYear, SubL2);
	end;

  // Get Titre
  StartTag := 'SIZE="4" COLOR="#3366CC">';
  if Pos (StartTag, SubL1) > 0 then
  begin
	  EndTag := '</FONT>';
	  BeginPos := Pos (StartTag, SubL1);
	  SubL2 := Copy ( SubL1, BeginPos + Length(StartTag), Length(SubL1));
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, EndPos, Length(SubL2));
	  SetField( fieldOriginalTitle, SubL2);
	end;

  // Get Résumé
  StartTag := 'Commentaires:</FONT>';
  if Pos (StartTag, SubL1) > 0 then
  begin
	  EndTag := '"Cliquez pour agrandir">';
	  BeginPos := Pos (StartTag, SubL1);
	  SubL2 := Copy ( SubL1, BeginPos + Length(StartTag)-1, Length(SubL1));
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, 1, EndPos);
	  StartTag := '<FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="2">';
	  EndTag := '</FONT>';
	  BeginPos := Pos (StartTag, SubL2);
	  Delete ( SubL2, 1, BeginPos + Length(StartTag)-1);
	  EndPos := Pos (EndTag, SubL2);
	  Delete ( SubL2, EndPos, Length(SubL2));
	  SetField( fieldDescription, SubL2);
	end;

end;

begin
  if CheckVersion(3,4,1) then
  begin
    BDName := GetField(fieldOriginalTitle);
    if Input('BDnet Import', 'Entrez le titre de la BD :', BDName) then
    begin
//      AnalyzePage(BaseURL + '/recherche.htm?u=BDNET:RECHERCHE&type=titre&recherche='+UrlEncode(BDName));
      GetBdReferences(BaseURL + '/recherche.htm?u=BDNET:RECHERCHE&type=titre&recherche='+UrlEncode(BDName),1);
    end;
  end else
    ShowMessage('Ce script requiert la version 3.4.1 ou supérieure de Ant Movie Catalog.');
end.

Pour BDParadisio:

Code: Select all

// GETINFO SCRIPTING
// BD Paradisio import


program BDParadisio;
const
  MustImportBitrate = False; // set this to True if you want to take the bitrate information from the site
  BaseURL = 'http://www.bdparadisio.com/';
var
  BDName: string;

function DelFirstBlank(line: string): string; 
begin 
  while (   (pos(' ', line) = 1) 
         or (pos(#09, line) = 1) 
         or (pos(#13, line) = 1) 
         or (pos(#10, line) = 1) ) do 
    Delete(line, 1, 1); 
  result := line; 
end; 
procedure GetReferences(Address: string; QueryType: Integer);
var
  Page: TStringList;
  LineNr: Integer;
  Line, StartTag, EndTag, Url, Caption: string;
  SubL1, SubL2, SubL3, SubL4: string;
  BeginPos, EndPos: Integer;

begin
	// Get search page. Get it twice due to cookie problems
  Line := GetPage(Address);
  Line := GetPage(Address);

	if Pos('<A HREF="detailbd.cfm', Line) > 0 then
	begin
		// We have the correct page.
	  	
	  // Some initialisation
		PickTreeClear;
	  	
	  StartTag := '<Table border=0 cellpadding=5>';
	  EndTag := '</TABLE>';
	  BeginPos := Pos ( StartTag, Line );
	  EndPos := Pos ( EndTag, Line );
	  SubL1 := Copy ( Line, BeginPos, EndPos-BeginPos-Length(StartTag) );
	    
	  while Pos( '<A HREF="detailbd.cfm', SubL1 ) > 0 do
	  begin
	  	// Get the URL
		  StartTag := 'A HREF="';
		  EndTag := '">';
		  BeginPos := Pos ( StartTag, SubL1 );
		  EndPos := Pos ( EndTag, SubL1 );
	    Url := BaseURL + 'scripts/' + Copy ( SubL1, BeginPos + Length(StartTag), EndPos-BeginPos-Length(StartTag) );
	    	
	    // get the caption
		  StartTag := '">';
		  EndTag := '</A>';
		  BeginPos := Pos ( StartTag, SubL1 );
		  EndPos := Pos ( EndTag, SubL1 );
	    Caption := Copy ( SubL1, BeginPos + Length(StartTag), EndPos-BeginPos-Length(StartTag) );
	    
	    // Add the entry to the tree
	    PickTreeAdd(Caption,  Url);
	    
	    // Remove processes parts
		  EndTag := '</A>';
		  EndPos := Pos ( EndTag, SubL1 );
		  Delete ( SubL1, 1, EndPos );
	  end;
	
	  if PickTreeExec(Address) then
		begin
			AnalyseBdPage(Address);
	  end;
	end else
	begin
		if QueryType = 1 then
		begin 	
			GetReferences(BaseURL + 'scripts/albums.cfm?DateFrom=1/1/50&iEditeur=all&sCollection=&sSerie=&Tri=DateSortie&resumeOnly=yes&sTitre='+UrlEncode(BDName), 2);
		end else
		begin
			ShowMessage('Aucune références trouvées');
		end;
	end;
end;

procedure AnalyseBdPage(Address: string);
var
  Page: TStringList;
  LineNr: Integer;
  Line, StartTag, EndTag, Url, Caption: string;
  SubL1, SubL2, SubL3, SubL4: string;
  BeginPos, EndPos: Integer;

begin

	SetField(fieldUrl, Address);
 	Line := GetPage(Address);

  if Pos('<TITLE>BdParadisio : BD Detail</TITLE>', Line) > 0 then
  begin
  	// Get Title
		StartTag := '<h2>';
		EndTag := '</H2> ';
		BeginPos := Pos ( StartTag, Line );
		EndPos := Pos ( EndTag, Line );
		SetField(fieldOriginalTitle, Copy(Line, BeginPos+Length(StartTag), EndPos-BeginPos-Length(StartTag)));
		
		// Get data part of the page
    StartTag := '<table>';
    EndTag := '</table>';
    BeginPos := Pos ( StartTag, Line );
    EndPos := Pos ( EndTag, Line );
    SubL1 := Copy ( Line, BeginPos, EndPos-BeginPos-Length(StartTag) );

		// Get Picture
    StartTag := '<IMG src="';
    EndTag := '" ';
    BeginPos := Pos ( StartTag, SubL1 );
    Delete ( SubL1, 1, BeginPos+Length(StartTag));
    EndPos := Pos ( EndTag, SubL1 );
    SubL2 := Copy(SubL1, 1, EndPos-1);
    GetPicture(BaseURL + SubL2, False); 

		// Get serie name
    StartTag := 'Serie : ';
    BeginPos := Pos ( StartTag, SubL1 );
    Delete ( SubL1, 1, BeginPos+Length(StartTag));
    StartTag := '">';
    EndTag := '</A>';
    BeginPos := Pos ( StartTag, SubL1 );
    EndPos := Pos ( EndTag, SubL1 );
    SubL2 := Copy ( SubL1, BeginPos+Length(StartTag), EndPos-BeginPos-Length(StartTag) );
    SetField ( fieldSource, Trim(SubL2) );
    Delete ( SubL1, 1, EndPos);
			
		// Parution
		StartTag := 'Date de parution :';
    BeginPos := Pos ( StartTag, SubL1 );
    Delete ( SubL1, 1, BeginPos+Length(StartTag));
    EndTag := '<br>';
    EndPos := Pos ( EndTag, SubL1 );
    SubL2 := Copy ( SubL1, 1, EndPos-1);
    SetField ( fieldActors, Trim(SubL2) );
    Delete ( SubL1, 1, EndPos);
		
		// Tome #
		StartTag := 'album :';
    BeginPos := Pos ( StartTag, SubL1 );
    Delete ( SubL1, 1, BeginPos+Length(StartTag));
    EndTag := '<br>';
    EndPos := Pos ( EndTag, SubL1 );
    SubL2 := Copy ( SubL1, 1, EndPos-1);
    SetField ( fieldYear, Trim(SubL2) );
    Delete ( SubL1, 1, EndPos);

		// # pages
		StartTag := 'Nombre de pages :';
    BeginPos := Pos ( StartTag, SubL1 );
    Delete ( SubL1, 1, BeginPos+Length(StartTag));
    EndTag := '<br>';
    EndPos := Pos ( EndTag, SubL1 );
    SubL2 := Copy ( SubL1, 1, EndPos-1);
    SetField ( fieldLength, Trim(SubL2) );
    Delete ( SubL1, 1, EndPos);
    
    // Editeur
		StartTag := 'Edition :';
    BeginPos := Pos ( StartTag, SubL1 );
    Delete ( SubL1, 1, BeginPos+Length(StartTag));
    EndTag := '<br>';
    EndPos := Pos ( EndTag, SubL1 );
    SubL2 := Copy ( SubL1, 1, EndPos-1);
    SetField ( fieldCountry, Trim(SubL2) );
    Delete ( SubL1, 1, EndPos);
    
    // Auteurs
		StartTag := 'Auteurs :';
    BeginPos := Pos ( StartTag, SubL1 );
    Delete ( SubL1, 1, BeginPos+Length(StartTag));
		StartTag := '<A HREF=';
    EndTag := '<a href="CriticsAdd.';
    BeginPos := Pos ( StartTag, SubL1 );
    EndPos := Pos ( EndTag, SubL1 );
    SubL2 := Copy ( SubL1, BeginPos+Length(StartTag), EndPos-BeginPos-Length(StartTag) );
    // Look to see if scenariste and dessisnateur are the same
    if Pos ('alt="Scénariste" hspace=2><img src="/IcoDes.gif"', SubL2) > 0 then
    begin
    	// Get Scenariste & Dessinateur
			StartTag := '">';
	    BeginPos := Pos ( StartTag, SubL2 );
	    EndTag := '</A>';
	    EndPos := Pos ( EndTag, SubL2 );
	    SubL3 := Copy ( SubL2, BeginPos+Length(StartTag), EndPos-BeginPos-Length(StartTag) );
	    SetField(fieldDirector, Trim(SubL3));
	    SetField(fieldProducer, Trim(SubL3));
    end else
    begin
    	// Get Scenariste
			StartTag := '">';
	    BeginPos := Pos ( StartTag, SubL2 );
	    EndTag := '</A>';
	    EndPos := Pos ( EndTag, SubL2 );
	    SubL3 := Copy ( SubL2, BeginPos+Length(StartTag), EndPos-BeginPos-Length(StartTag) );
	    SetField(fieldDirector, Trim(SubL3));
    	// Get Dessinateur
	    Delete ( SubL2, 1, EndPos+Length(EndTag));
			StartTag := '">';
	    BeginPos := Pos ( StartTag, SubL2 );
	    EndTag := '</A>';
	    EndPos := Pos ( EndTag, SubL2 );
	    SubL3 := Copy ( SubL2, BeginPos+Length(StartTag), EndPos-BeginPos-Length(StartTag) );
	    SetField(fieldProducer, Trim(SubL3));
    end;

    // Résumé
    StartTag := '<a href="CriticsAdd.cfm?Id=';
	  BeginPos := Pos ( StartTag, SubL1 );
    Delete ( SubL1, 1, BeginPos+Length(StartTag));
		StartTag := '<p>';
		Delete ( SubL1, 1, Pos ( StartTag, SubL1 )+Length(StartTag));
		Delete ( SubL1, 1, Pos ( StartTag, SubL1 )+Length(StartTag));
		SubL2 := DelFirstBlank ( SubL1 );
	  EndPos := Pos ( #10, SubL2 );
		SubL3 := Copy ( SubL2, 1, EndPos);
    HTMLRemoveTags(SubL3);
		SetField(fieldDescription,Trim(SubL3));
  end;
end;

begin
  if CheckVersion(3,4,1) then
  begin
    BDName := GetField(fieldOriginalTitle);
    if Input('BD Paradisio Import', 'Entrez le titre de la BD :', BDName) then
    begin
    	// Look for Series
      GetReferences(BaseURL + 'scripts/albums.cfm?DateFrom=1/1/50&iEditeur=all&sCollection=&Tri=DateSortie&sTitre=&resumeOnly=yes&sSerie='+UrlEncode(BDName), 1);
    end;
  end else
    ShowMessage('Ce script requiert la version 3.4.1 ou supérieure de Ant Movie Catalog.');
end.
Jekkil

Posted: 2004-01-28 16:45:05
by Merit
Merci Jekill !

Dis, antp, si on continue à avoir des scripts pour les BD et les jeux video, tu va être obligé de trouvé un autre nom pour la V4 genre ANT allmedia catalog :lol:

Posted: 2004-01-28 17:04:40
by antp
J'y avais songé, un "Ant Media Catalog", mais je pense que ça sera plutôt pour la version 5 :D

Posted: 2004-03-01 13:17:12
by Guest
Merci Jekill, tes deux scripts sont tres sympas !!

Pourrais tu modifier ton script BDParadisio pour qu'il conditionne la récupération du scenariste et du dessinateur en fonction de l'image en icone à coté du nom (petite palette ou petit stylo).

En effet, c'est pas forcement le dessinateur après le scenariste comme dans ton script. C'est variable.

En tout cas encore merci c'est du bon boulot (merci aussi antp évidemment) :grinking:

Posted: 2004-10-01 13:16:34
by Guest
Salut Jekill,

Ton template BD paradisio est super mais j'ai l'impression que le site a été modifié et que du coup le script ne peut plus fonctionner correctement.

Penses-tu avoir le temps/l'envie de le modifier pour qu'il fonctionne à nouveau ?

Merci de ton aide
GareAT[/b]

Posted: 2004-10-03 09:26:28
by Guest
Bon je me suis démerdouillé pour modifier le script de Jekkil pour BD paradisio. Parfois ca déconne mais en général ca fonctionne :

Code: Select all

// GETINFO SCRIPTING
// BD Paradisio import


program BDParadisio;
const
  MustImportBitrate = False; // set this to True if you want to take the bitrate information from the site
  BaseURL = 'http://www.bdparadisio.com/';
var
  BDName: string;

function DelFirstBlank(line: string): string;
begin
  while (   (pos(' ', line) = 1)
         or (pos(#09, line) = 1)
         or (pos(#13, line) = 1)
         or (pos(#10, line) = 1) ) do
    Delete(line, 1, 1);
  result := line;
end;
procedure GetReferences(Address: string; QueryType: Integer);
var
  Page: TStringList;
  LineNr: Integer;
  Line, StartTag, EndTag, Url, Caption: string;
  SubL1, SubL2, SubL3, SubL4: string;
  BeginPos, EndPos: Integer;

begin
   // Get search page. Get it twice due to cookie problems
    Line := GetPage(Address);
    Line := GetPage(Address);

   if Pos('<A HREF="detailbd.cfm', Line) > 0 then
   begin
      // We have the correct page.

     // Some initialisation
      PickTreeClear;

     StartTag := '<TD align=left  nowrap>';
     EndTag := '</TABLE>';
     BeginPos := Pos ( StartTag, Line );
     EndPos := Pos ( EndTag, Line );
     SubL1 := Copy ( Line, BeginPos, EndPos-BeginPos-Length(StartTag) );

     while Pos( '<A HREF="detailbd.cfm', SubL1 ) > 0 do
     begin
        // Get the URL
        StartTag := 'A HREF="';
        EndTag := '">';
        BeginPos := Pos ( StartTag, SubL1 );
        EndPos := Pos ( EndTag, SubL1 );
       Url := BaseURL + 'scripts/' + Copy ( SubL1, BeginPos + Length(StartTag), EndPos-BeginPos-Length(StartTag) );

       // get the caption
        StartTag := '">';
        EndTag := '</A>';
        BeginPos := Pos ( StartTag, SubL1 );
        EndPos := Pos ( EndTag, SubL1 );
       Caption := Copy ( SubL1, BeginPos + Length(StartTag), EndPos-BeginPos-Length(StartTag) );

       // Add the entry to the tree
       PickTreeAdd(Caption,  Url);

       // Remove processes parts
        EndTag := '</A>';
        EndPos := Pos ( EndTag, SubL1 );
        Delete ( SubL1, 1, EndPos );
     end;

     if PickTreeExec(Address) then
      begin
         AnalyseBdPage(Address);
     end;
   end else
   begin
      if QueryType = 1 then
      begin
         GetReferences(BaseURL + 'scripts/albums.cfm?DATEFROM=01/01/50&DATETO=&IEDITEUR=all&SSERIE=&SCOLLECTION=&TRI=Serie&RESUMEONLY=no&serieorder=desc&editionorder=asc&datesortieorder=desc&changeorder=1&STITRE='+UrlEncode(BDName), 2);
         // GetReferences(BaseURL + 'scripts/albums.cfm?DateFrom=1/1/50&iEditeur=all&sCollection=&sSerie=&Tri=DateSortie&resumeOnly=yes&sTitre='+UrlEncode(BDName), 2);
      end else
      begin
         ShowMessage('Aucune références trouvées');
      end;
   end;
end;

procedure AnalyseBdPage(Address: string);
var
  Page: TStringList;
  LineNr: Integer;
  Line, StartTag, EndTag, Url, Caption: string;
  SubL1, SubL2, SubL3, SubL4: string;
  BeginPos, EndPos: Integer;

begin

   SetField(fieldUrl, Address);
    Line := GetPage(Address);

  if Pos('<TITLE>BdParadisio : BD Detail</TITLE>', Line) > 0 then
  begin
     // Get Title
      StartTag := '<table cellpadding=2 cellspacing=4 width=500><tr><td><font size=5><b>';
      EndTag := '</b></font></td></tr>';
      BeginPos := Pos ( StartTag, Line );
      EndPos := Pos ( EndTag, Line );
      SetField(fieldOriginalTitle, Copy(Line, BeginPos+Length(StartTag), EndPos-BeginPos-Length(StartTag)));

      // Get data part of the page
    StartTag := '<table>';
    EndTag := '</table>';
    BeginPos := Pos ( StartTag, Line );
    EndPos := Pos ( EndTag, Line );
    SubL1 := Copy ( Line, BeginPos, EndPos-BeginPos-Length(StartTag) );

      // Get Picture
    StartTag := '<IMG src="';
    EndTag := '" ';
    BeginPos := Pos ( StartTag, SubL1 );
    Delete ( SubL1, 1, BeginPos+Length(StartTag));
    EndPos := Pos ( EndTag, SubL1 );
    SubL2 := Copy(SubL1, 1, EndPos-1);
    GetPicture(BaseURL + SubL2, False);

      // Get serie name
    StartTag := 'GetSerie.cfm';
    BeginPos := Pos ( StartTag, Line );
    Delete ( Line, 1, BeginPos+Length(StartTag));
    StartTag := '">';
    EndTag := '</A>';
    BeginPos := Pos ( StartTag, Line );
    EndPos := Pos ( EndTag, Line );
    SubL2 := Copy ( Line, BeginPos+Length(StartTag), EndPos-BeginPos-Length(StartTag) );
    SetField ( fieldSource, Trim(SubL2) );
    Delete ( Line, 1, EndPos);
    
    
          // Tome #
    StartTag := '</A> - T.';
    BeginPos := Pos ( StartTag, Line );
    Delete ( Line, 1, BeginPos+Length(StartTag));
    EndTag := '</b>';
    EndPos := Pos ( EndTag, Line );
    SubL2 := Copy ( Line, 1, EndPos-1);
    SetField ( fieldBorrower, Trim(SubL2) );
    Delete ( Line, 1, EndPos);
          
        // Editeur
    StartTag := 'Edition :</b></td><td><b';
    BeginPos := Pos ( StartTag, Line );
    Delete ( Line, 1, BeginPos+Length(StartTag));
    EndTag := '</b>';
    EndPos := Pos ( EndTag, Line );
    SubL2 := Copy ( Line, 1, EndPos-1);
    SetField ( fieldCountry, Trim(SubL2) );
    Delete ( Line, 1, EndPos);
    
      // Parution
    StartTag := 'Parution :</b></td><td><b';
    BeginPos := Pos ( StartTag, Line );
    Delete ( Line, 1, BeginPos+Length(StartTag));
    EndTag := '</b>';
    EndPos := Pos ( EndTag, Line );
    SubL2 := Copy ( Line, 1, EndPos-1);
    SetField ( fieldActors, Trim(SubL2) );
    Delete ( Line, 1, EndPos);

    // Résumé
    StartTag := '<a href="CriticsAdd.cfm?Id=';
     BeginPos := Pos ( StartTag, Line );
    Delete ( Line, 1, BeginPos+Length(StartTag));
      StartTag := '<p>';
      Delete ( Line, 1, Pos ( StartTag, Line )+Length(StartTag));
      Delete ( Line, 1, Pos ( StartTag, Line )+Length(StartTag));
      SubL2 := DelFirstBlank ( Line );
     EndPos := Pos ( #10, SubL2 );
      SubL3 := Copy ( SubL2, 1, EndPos);
    HTMLRemoveTags(SubL3);
      SetField(fieldDescription,Trim(SubL3));
  end;
end;

begin
  if CheckVersion(3,4,1) then
  begin
    BDName := GetField(fieldOriginalTitle);
    if Input('BD Paradisio Import', 'Entrez le titre de la BD :', BDName) then
    begin
       // Look for Series
      GetReferences(BaseURL + 'scripts/albums.cfm?DateFrom=1/1/50&iEditeur=all&sCollection=&Tri=DateSortie&sTitre=&resumeOnly=yes&sSerie='+UrlEncode(BDName), 1);
    end;
  end else
    ShowMessage('Ce script requiert la version 3.4.1 ou supérieure de Ant Movie Catalog.');
end.

NB : Ne fonctionne plus : Nombre de pages, Scénariste et Dessinateur.

GareAT

Posted: 2004-10-04 09:21:47
by abelthorne
À noter que le site BDnet.com n'est pas super pour récupérer des infos (un nom d'auteur est parfois classé par Prénom Nom, parfois Nom Prénom, il arrive qu'il n'y ait que le nom, certains homonymes sont mal classés, etc.).

L'idéal serait de pouvoir utiliser bedetheque.com, qui est sans doute la meilleure BdD de BD en ligne (c'est celle des auteurs de BDGest), mais je ne sais pas si c'est possible techniquement (et "légalement", un peu comme l'affaire DVD-Fr).

Posted: 2004-10-05 20:02:35
by Guest
Pour Bédétheque, je trouve ça limite dans la mesure où il VENDENT leur logiciel pour pouvoir exploiter leur base de donnée .....
Enfin, ceci dit, si quelqu'un veut s'y coller, je vais pas l'empecher.

GareAT

Posted: 2004-10-05 20:27:53
by antp
C'est vrai que ça serait fort limite :/