Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


[Script] VDM fetcher
#61
Première analyse du script :

- Le lien de la VDM à changé, le numéro ne se récupère plus dans la page mais dans le lien : https://www.viedemerde.fr/article/desire...70945.html

il faut adapter la ligne :


tcl
foreach {dummy id vdm} [regexp -all -inline {<div class="article-contents">(?:.*?)<a class="article-link" href="(?:.*?)_(\d+).html">(.*?)<\/a>\n<div class="vote-button-container">} $data] {


avec le bon lien et corriger les regexp pour capturer les bonnes informations, en l'occurrence la VDM.

Je note ça ici, quand j'aurais du temps, je ferais des tests.
  Reply
#62
Par contre pour rechercher une vdm à partir de son numéro, ça va être une autre histoire vu que l'url ne contient pas seulement le numéro de la vdm mais aussi un texte variable  Sad

On va réfléchir à une éventuelle solution mais on risque de perdre la fonction recherche pour ne plus avoir que la fonction vdm aléatoire.

Edit : solution trouvée, si on utilise l'url https://www.viedemerde.fr/recherche/370945 on tombe sur la bonne quote
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
  Reply
#63
En examinant le html du site :



Code:
<a href="/article/the-hole_368320.html" class="block text-blue-500 my-4 ">
Aujourd'hui, je dois appeler mon responsable car je ne peux pas venir au bureau. La raison ? Rien de grave, je vous rassure. J’ai juste dormi chez une amie à 4 km du bureau et elle est partie très tôt en fermant la porte, en me laissant une mauvaise clé pour sortir. Je dois attendre qu’elle rentre… ce soir. VDM
</a>

Tu peux récupérer le numéro dans la balise href , il est toujours séparer d'un _ et avant le .html
  Reply
#64
je pense qu'il faut juste se caler sur le <a href="/article/ pour repérer la bonne partie et capturer jusqu'au </a>

Et dans ce qui est capturé, récupérer le n° de la vdm qui est dedans et la vdm elle-même.

Edit : chaîne de regexp à utiliser : {<a href="/article/.+?(\d+)\.html.+>(.+)</a>}

Quote:[19:06:20] <MenzAgitat> .tcl regexp -inline {<a href="/article/.+?(\d+)\.html.+>(.+)</a>} "<a href=\"/article/the-hole_368320.html\" class=\"block text-blue-500 my-4 \"> blablabla. VDM </a>"
[19:06:20] <Boole> Tcl: {<a href="/article/the-hole_368320.html" class="block text-blue-500 my-4 "> blablabla. VDM </a>} 368320 { blablabla. VDM }


tcl
regexp {<a href="/article/.+?(\d+)\.html.+>(.+)</a>} $VariableContenantLeHtmlDeLaPage {} VariableQuiContiendraLeN° VariableQuiContiendraLaVDM

Le {} correspond à "aucune variable assignée au 1er retour de la regexp" (en rouge), qui correspond à l'ensemble de ce qui a matché et dont on n'a rien à faire.
En vert, les informations qui nous intéressent et qui vont peupler les 2 variables $VariableQuiContiendraLeN° et $VariableQuiContiendraLaVDM vont contenir les infos qu'on veut.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
  Reply
#65
Coucou

Je pense que le plus intéressant et le plus "marrant" pour les utilisateurs, est le résultat quand on tape le !vdm sur un salon..

Le retour étant :
Aujourd'hui, partie de cache-cache avec mes enfants. Après avoir compté, ma fille de 6 ans sort : "Bon, il est où ce connard ?" Le connard en question est vite sorti de sa cachette. VDM

bonne soirée Cool
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !
  Reply
#66
J'ai pu corriger 2/3 commandes avec MenzAgitat :

- !vdm = OK
- !vdm last = OK
- !vdm <num> = PAS OK


En se basant sur le site https://www.viedemerde.fr/ , on a modifié les regexp pour que le script match les bonnes informations dans les bonnes balises :

Tout d'abord, changer les valeurs des variables contenant les liens du site :


tcl
# URL pour récupérer une seule VDM.
 
variable url_une "https://www.viedemerde.fr/recherche/%s"
 
# URL de la recherche.
 
variable url_recherche "https://www.viedemerde.fr/recherche/%s"


Ensuite,


tcl
putlog [regexp -all -inline {<a href="/article/.+?(\d+)\.html.+>(.+)</a>} $data]
 
if {$type eq "many"} {
foreach {dummy id vdm} [regexp -all -inline {<a href="/article/.+?(\d+)\.html.+>(.+)</a>} $data] {
lappend vdm_list [list $id [::vdm::string_filter $vdm]]
}
} else {
foreach {dummy vdm} [regexp -all -inline {<a href="/article/.+?(\d+)\.html.+>(.+)</a>} $data] {
lappend vdm_list [list [::vdm::string_filter $vdm]]
}
}


On a ajouté un putlog pour voir ce que match le bot.

- Pour la commande !vdm ça retourne en partyline :


Quote:[21:12:02] {<a href="/article/aujourd-hui-aujourd-39-hui-une-copine-qui-vient-de-gagner-son-poids-en-chocolat-me-propose-de-pren_308099.html" class="block text-blue-500 my-4 ">
Aujourd'hui, une copine qui vient de gagner son poids en chocolat me propose de prendre sa place. Pour en obtenir beaucoup plus. VDM
</a>} 308099 {
Aujourd'hui, une copine qui vient de gagner son poids en chocolat me propose de prendre sa place. Pour en obtenir beaucoup plus. VDM
} {<a href="/article/aujourd-hui-suivi-de-g


Le bot retourne bien le numéro de la vdm et la vdm, sans problème :

Quote:n°308099 Aujourd'hui, une copine qui vient de gagner son poids en chocolat me propose de prendre sa place. Pour en obtenir beaucoup plus. VDM


- Pour la commande !vdm last ça retourne en partyline :


Quote:[21:17:34] {<a href="/article/connard_371086.html">Connard !</a>
</h2>
<div class="flex justify-between">
<p class="text-blue-300 text-sm mt-2">
Par Anonyme <i class="fa fa-male" aria-hidden="true"></i> - 03/02/2022 20:01
</p>
</div>
</div>
</div>
<a href="/article/connard_371086.html" class="block text-blue-500 my-4 ">
Aujourd'hui, partie de cache-cache avec mes enfants. Après avoir compté, ma fille de 6 ans sort : &quot;Bon, il est où ce connard ?&quot; Le connard en question est vite sorti de sa


Le bot retourne bien la dernière vdm avec son bon numéro :

Quote:n°371086 Aujourd'hui, partie de cache-cache avec mes enfants. Après avoir compté, ma fille de 6 ans sort : "Bon, il est où ce connard ?" Le connard en question est vite sorti de sa cachette. VDM



On arrive donc au problème de la commande !vdm <num> qui se base sur la page https://www.viedemerde.fr/recherche/312308

Si on prend pour exemple !vdm 312308 , le bot retourne en partyline :


Quote:[21:09:44] {<a href="/article/l-occasion-ideale_312308.html">L'occasion idéale</a>
</h2>
<div class="flex justify-between">
<p class="text-blue-300 text-sm mt-2">
Par pepy77 <i class="fa fa-male" aria-hidden="true"></i> - 17/07/2019 21:00
</p>
</div>
</div>
<img class="h-12 ml-4 mb-0 block" src="/images/v2/picto/epice.png" alt="Épicée" />
</div>
<a href="/article/l-occasion-ideale_312308.html" class="block text-blue-500 my-4 spicy-hidden">
Aujourd'hui, moment câlin avec mon mari, grand fan du


sur IRC :

Quote:n°312308 312308


Il me retourne le numéro au lieu de la VDM alors que la structure du code html est identique aux autres.

J'écris ça pour que ça me serve de note, c'est la première fois que j'utilise ce script et je fais ça pour rendre service à la communauté.
  Reply
#67
Thumbsup 
Super
ThX :)
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !
  Reply
#68
Bonjour a tous,
des news si quelqu'un a avancé sur le tcl de VDM.
merci beaucoup
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !
  Reply
#69
Non je n'ai pas eu le temps de continuer le script ( surtout que je ne l'utilise pas donc l'envie n'est pas très présente ) mais j'ai quand même fourni une bonne base de travail.

Essayer de poursuivre le script, j'ai mis des notes assez clair , avec un tout petit peu de volonté, ça devrait le faire :)

Je suis présente pour apporter mon aide, si tu rencontres un problème ou si tu as besoin d'un éclaircissement.
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  BashFr Fetcher (version actuelle : 1.04) (support arrêté) MenzAgitat 22 17,234 02/12/2009, 14:24
Last Post: MenzAgitat
  [script] BashOrg Fetcher v1.3.0 Artix 4 5,125 14/06/2009, 17:46
Last Post: zarkox
  [script] Bash Fetcher CrazyCat 2 4,043 01/11/2007, 22:37
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)