Page 2 of 3
Posted: 2011-10-21 22:29:21
by soulsnake
Par contre en effet je pourrais mettre un autre agent-id, ne comportant pas "Indy" déjà.
UserAgent actuelle : Mozilla/5.0 (compatible; Ant Movie Catalog using Indy Library)
UserAgent possible : Mozilla/5.0 (compatible; Ant Movie Catalog)
Qu'en pensez-vous ?
Il n'y a pas de fonction pour manipuler les images via script (à part GetPicture), mais il me semble que Soulsnake avait fait des ajouts justement à ce niveau ?
J'ai ajouté une procedure ExportPicture permettant d'exporter l'image du film dans le répertoire spécifié avec le nom spécifié (sans extension).
Je vais rajouter la procedure ImportPicture pour importer une image à partir d'un fichier.
EDIT : C'est fait.

Posted: 2011-10-22 19:59:32
by antp
soulsnake wrote:UserAgent possible : Mozilla/5.0 (compatible; Ant Movie Catalog)
Qu'en pensez-vous ?
Je pense que c'est le mieux en effet

Posted: 2011-10-22 22:32:42
by soulsnake
Je pense que c'est le mieux en effet

C'est modifié dans la version 4.0.0 BETA

Posted: 2011-10-22 23:26:34
by Raoul_Volfoni
soulsnake wrote:C'est modifié dans la version 4.0.0 BETA

Merci snoulsnake c'est super ...

... d'autant plus que je n'ai toujours pas de réponse de la part d'ANN

Posted: 2011-11-07 19:00:14
by Raoul_Volfoni
Bonne nouvelle !!
Je ne m'étais apparemment pas adressé à la bonne personne lors de ma première tentative pour connaitre la raison du refus de connection d'AMC à ANN.
Je viens d'avoir une réponse très rapide du webmaster qui m'a remercié de lui avoir signalé le problème et qu'il a surtout résolu, puisque l'on peut désormais réutiliser la 3.5.1.2 pour récupérer les infos d'ANN.
Youhou !!
Un grand MERCI à Daniel Delorme le webmaster d'ANN

Posted: 2011-11-08 08:12:17
by baffab
Formidable !
Merci également à toi Raoul.
Posted: 2011-11-08 09:31:54
by Raoul_Volfoni
Salut baffab
Pendant que t'es dans le coin, je voulais te signaler que la version 2 du 25/03/10 ne récupérait plus les images.
Voici un petit correctif que tu pourras inclure dans une prochaine mise à jour.
Code: Select all
// Images
BeginPos := Pos('/fit200', PageContents);
if ((BeginPos > 0) and (GetOption('GetImage')<>2)) then
begin
Value := findInfo ('/fit200', ' ', PageContents, '0');
Value := 'http://www.animenewsnetwork.com/thumbnails/fit200' + Value;
delete(Value,length(Value),1);
Value := StringReplace(Value,'thumbnails/fit200x200','images');
//if GetOption('GetImage')=1 then Value := StringReplace(Value,'.thumbnail.90','');
GetPicture(Value);
end;
BeginPos := Pos('img id="vid-art"', PageContents);
if ((BeginPos > 0) and (GetOption('GetImage')<>2)) then
begin
Value := findInfo ('<img id="vid-art" src="', '">', PageContents, '0');
GetPicture(Value);
end;
@+
Posted: 2011-11-08 10:53:15
by baffab
Chez moi cette version marche !
MAJ : rectification, ça marche pour certains mais pas tous. Donc je vais faire la modif, merci.
Posted: 2011-11-08 12:34:03
by Raoul_Volfoni
baffab wrote:MAJ : rectification, ça marche pour certains mais pas tous.
Désolé, j'aurais du préciser que ça ne marchait pas que pour certains animés (notamment les grosses licences).
Tu as du remarqué que j'ai inséré un stringreplace à la fin du premier "if" qui permet de récupérer des images un tout petit peu plus grandes pour certains animés.
Mais la différence en souvent très infime comme pour
cette animé.
Image 200x200 retaillé par le site :
[Lien d'origine de l'image]
Image original 223x223 dite "grande image"

:
[Lien d'origine de l'image]
Je ne sais pas si ça vaut le coup de réactiver l'option de récupération de la petite image tellement la différence entre les 2 est mince, mais ça pourrait donner ça :
Code: Select all
// Images
BeginPos := Pos('/fit200', PageContents);
if ((BeginPos > 0) and (GetOption('GetImage')<>2)) then
begin
Value := findInfo ('/fit200', ' ', PageContents, '0');
Value := 'http://www.animenewsnetwork.com/thumbnails/fit200' + Value;
delete(Value,length(Value),1);
if GetOption('GetImage')=0 then
Value := Value
else
Value := StringReplace(Value,'thumbnails/fit200x200','images');
GetPicture(Value);
end;
BeginPos := Pos('img id="vid-art"', PageContents);
if ((BeginPos > 0) and (GetOption('GetImage')=1)) then
begin
Value := findInfo ('<img id="vid-art" src="', '">', PageContents, '0');
GetPicture(Value);
end;
l'inconvénient c'est que si on choisis de récupérer la petite image et que la valeur "/fit200" n'existe pas dans le code source de la page, alors on ne récupérera aucune image ... Qu'en penses tu ?
Je vais t'embêter une dernière fois, pour te signaler qu'au début le script demande, "Entrez le titre du manga :" ... faudrait pas remplacer manga par animé ?

... sinon les puristes vont venir te donner la fessée !!
@+
Posted: 2011-11-08 13:13:53
by baffab
Merci pour ces infos.
En essayant de prendre en compte tous les cas (enfin à peu près), j'ai un truc du genre :
Code: Select all
// Images
if (GetOption('GetImage')<>2) then
begin
// Petite image
BeginPos := Pos('/fit200', PageContents);
if (BeginPos > 0) then
begin
ValueImg1 := findInfo ('/fit200', ' ', PageContents, '0');
if (pos(ValueImg1,'"')>0) then ValueImg1 := findInfo ('/fit200', '"', PageContents, '0');
if (ValueImg1<>'') then ValueImg1 := 'http://www.animenewsnetwork.com/thumbnails/fit200' + ValueImg1;
end;
// Grande image
BeginPos := Pos('/images/encyc/', PageContents);
if (BeginPos > 0) then
begin
ValueImg2 := findInfo ('/images/encyc/', ' ', PageContents, '0');
if (pos(ValueImg1,'"')>0) then ValueImg1 := findInfo ('/images/encyc/', '"', PageContents, '0');
if (ValueImg2<>'') then ValueImg2 := 'http://www.animenewsnetwork.com/images/encyc/' + ValueImg2;
end;
// Autre
BeginPos := Pos('img id="vid-art"', PageContents);
if (BeginPos > 0) then
begin
ValueImg3 := findInfo ('<img id="vid-art" src="', '">', PageContents, '0');
end;
if (GetOption('GetImage')=0) and (ValueImg1<>'') then
Value := ValueImg1
else if ((GetOption('GetImage')=1) and (ValueImg2<>'')) or (ValueImg1='') then
Value := ValueImg2
else
Value := ValueImg3;
GetPicture(Value);
end;
A vérifier avec plusieurs titres.
Pour info je suis plutôt puriste, ça m'étonne donc de l'avoir laissé passer...
Posted: 2011-11-08 13:38:06
by Raoul_Volfoni
(a propos de ton code au dessus)

... Ah ouais quand même !!
C'est là où on voit la différence entre un gars dont c'est le métier, et le "pov" amateur qui bricole dans son coin !!

Ton code est clair et bien foutu, tandis que le mien ressemble à une grosse rustine ... mal posée en plus
Je vais tester ça de mon côté avec ma maigre base d'animés.
baffab wrote:Pour info je suis plutôt puriste, ça m'étonne donc de l'avoir laissé passer...
Ben alors ... cul nu devant tout le monde
Sinon ça doit être ta fête aujourd'hui ou un truc dans le genre !!

... parce que j'ai repéré un autre truc qui coince
La description est mal récupéré avec les animés
Chaos;Head et
Vampire Knight Guilty (je n'ai trouvé que ces deux là pour l'instant)
Apparement, ce sont les fiches qui ont 2 résumés qui posent problèmes.
En remplaçant le FindInfo de la section "// Plot Summary" de ça :
Code: Select all
Value := findInfo('<SPAN>', '</SPAN>', PageContents, '0');
par ça :
Code: Select all
Value := findInfo('Plot Summary:', '</DIV>', PageContents, '0');
Ça semble résoudre le problème. Ça récupère les résumés des fiches "normales" et pour celles qui en ont 2, seul le premier résumé est récupéré.
Posted: 2011-11-08 15:59:52
by baffab
Et si on remplace par :
Code: Select all
Value := findInfo('</STRONG> ', '<DIV CLASS="encyc', PageContents, '3');
Value := StringReplace(Value, '<DIV CLASS="tab">', '* '); //cas avec plusieurs résumés
Value := deleteTab(Value);
Ça donne quoi chez toi ?
Posted: 2011-11-08 17:09:38
by Raoul_Volfoni
baffab wrote:Et si on remplace par :
Code: Select all
Value := findInfo('</STRONG> ', '<DIV CLASS="encyc', PageContents, '3');
Value := StringReplace(Value, '<DIV CLASS="tab">', '* '); //cas avec plusieurs résumés
Value := deleteTab(Value);
Ça donne quoi chez toi ?
Tu veux donc récupérer les deux résumés ?
Sinon ça marche, mais pour fignoler, je rajouterais cette ligne avant le setfield histoire de supprimer tous les retours à la ligne de la fin.
Code: Select all
while Pos((#13#10), copy(Value,length(Value)-length(#13#10)+1,length(Value))) > 0 do Value := DeleteEnd(Value, #13#10);
Sinon concernant le code de récupération de l'image :
- Le FindInfo de "ValueImg2" n'est pas bon. Ce serait plutôt :
Code: Select all
ValueImg2 := findInfo ('/images/encyc/', '"', PageContents, '0');
- Le fait de forcer la recherche sur "/images/encyc/" produit des trucs curieux.
Sur
Samourai Champloo par exemple le script arrive à trouver une image (ValueImg2) qui n'apparait nulle part sur le site !! (Il s'agit en fait de l'ancienne image utilisée par le site avant d'être remplacée par une plus grande pseudo fan-art)
[Lien d'origine de l'image]
De plus le script considère cette image (au dessus) comme étant la grande image ... alors qu'en fait la grande image est celle ci (ValueImg3)(Pseudo Fan-Art)
[Lien d'origine de l'image]
Apparemment l’existence de la valeur (ValueImg2) est toujours vraie, donc on n'obtiendra jamais l'image de la valeur (ValueImg3).
je ne sais pas si je suis très clair !! j'ai la crève et j'ai du mal à aligner mes 2 neurones !!
En modifiant les conditions de la fin du code pour que ce soit plus logique , on obtient :
Code: Select all
// Images
if (GetOption('GetImage')<>2) then
begin
// Petite image
BeginPos := Pos('/fit200', PageContents);
if (BeginPos > 0) then
begin
ValueImg1 := findInfo ('/fit200', ' ', PageContents, '0');
if (pos(ValueImg1,'"')>0) then ValueImg1 := findInfo ('/fit200', '"', PageContents, '0');
if (ValueImg1<>'') then ValueImg1 := 'http://www.animenewsnetwork.com/thumbnails/fit200' + ValueImg1;
end;
// Grande image
BeginPos := Pos('/images/encyc/', PageContents);
if (BeginPos > 0) then
begin
ValueImg2 := findInfo ('/images/encyc/', '"', PageContents, '0');
if (pos(ValueImg1,'"')>0) then ValueImg1 := findInfo ('/images/encyc/', '"', PageContents, '0');
if (ValueImg2<>'') then ValueImg2 := 'http://www.animenewsnetwork.com/images/encyc/' + ValueImg2;
end;
// Autre
BeginPos := Pos('img id="vid-art"', PageContents);
if (BeginPos > 0) then
begin
ValueImg3 := findInfo ('<img id="vid-art" src="', '">', PageContents, '0');
end;
if (GetOption('GetImage')=0) and (ValueImg1<>'') then
Value := ValueImg1
else if ((GetOption('GetImage')=1) and (ValueImg3<>'')) or (ValueImg1='') then
Value := ValueImg3
else
Value := ValueImg2;
GetPicture(Value);
end;
Qu'est ce que ça dit chez toi ?
Posted: 2011-11-08 17:45:10
by baffab
L'image 3 est plus une bannière qu'une grande image. Il faudrait donc plutôt la rajouter dans les options en tant que choix.
J'ai fait une beta qui contient d'autres évolutions (en test) :
animenewsnetwork_beta
Je vais rajouter la gestion de cette image
MAJ : beta2 (on commence à approcher du but)
Posted: 2011-11-08 18:33:20
by Raoul_Volfoni
baffab wrote:MAJ : beta2 (on commence à approcher du but)
Ah flute ... j'allais te répondre quand j'ai vu que t'avais posté une beta2 !! Tu vas trop vite pour moi ...

Apparemment t'as juste nettoyé et commenté sur la beta2 ... c'est ça ?
Sinon du peu que j'ai pu testé, ça marche de mon côté.
Mais dis moi, t'aurais pas un xenesys de planqué quelque part ...

... parce que les ajouts que tu as implanté lui plairait assez je pense.
Par contre j'ai pas trouvé d'animés dans ma base où il y a un "Based on:"
T'as 1 ou 2 titres à me filer ?
Pour terminer, pourquoi ne prendrais tu pas la moyenne arithmétique présente dans les "Users Ratings" pour attribuer une note à la fiche ?
Posted: 2011-11-08 18:38:32
by baffab
Pour le "Based on:" tu as Arrietty par exemple, qui indique le roman dont est issu l'animé.
Pour la note j'y pensais sans trop savoir quelle valeur prendre (disons que j'avais mis ça de coté) mais je vais le rajouter.
MAJ : une beta3 avec la note
Posted: 2011-11-08 18:51:37
by Raoul_Volfoni
Ok ça marche ... Merci pour tout
Bonne soirée à toi
Posted: 2011-11-08 22:22:35
by baffab
Allez je valide cette version pour la V3.
Posted: 2013-02-12 22:53:17
by baffab
Quelques corrections pour une nouvelle version (v4)
Posted: 2017-11-13 20:10:55
by baffab
Hello,
J'ai refais le script en partant sur des bases différentes pour cette V5. Il est plus facile à maintenir mais peut être un peu moins complet sur la partie staff. J'ai mis à jour le premier post avec la description des options du script.