5/5 (32 avis)
Vue 11 543 fois - Téléchargée 104 fois
;**************** ; EpGuides ; By ArKanis ; www.arkanis.eu ;**************** ;version 1.2 on *:start:.epguides check alias -l epguides.aide { epguides.disp $chr(3) epguides.disp * %ss : le guide des sorties des séries ! epguides.disp Cet outil vous permettra d'être à jour au niveau des séries que vous aimez tant ! Il se base sur le site $+($epguides.b(http://epguides.com),.) epguides.disp Il intègre une fonction de vérification qui se lance en même temps que mIRC et qui permet de vous informer d'une sortie d'un épisode de la veille ou du jour même. epguides.disp A noter que cette fonction peut facilement être désactivée depuis le menu. epguides.disp $epguides.u(Utilisation) : epguides.disp -> /epguides pour scanner toutes les séries epguides.disp -> Clic droit sur la fenêtre @EpGuides pour ajouter, supprimer, consulter tous les épisodes d'une série, ... epguides.disp $chr(3) } alias -l epguides.check { if ($readini(EpGuides.ini,Config,DisabledAutoCheck)) return var %s = EpGuides if ($sock(%s)) sockclose %s if ($hget(%s)) hfree %s var %t = 1, %m = $ini(EpGuides.ini,Séries,0) if (!%m) return while %t <= %m { hadd -m %s Liste $addtok($hget(%s,Liste),$ini(EpGuides.ini,Séries,%t),32) inc %t } if (!$show) hadd -m %s DontShow 1 hadd -m %s Compteur 1 hadd -m %s Mode 2 sockopen %s epguides.com 80 } alias epguides { var %s = EpGuides if (!$readini(EpGuides.ini,Config,Launched)) { epguides.aide if ($input(Pour commencer voulez-vous ajouter une série ?,yn)) { epguides.add epguides } writeini -n EpGuides.ini Config Launched 1 return } elseif ($1 == check) { $+($iif(!$show,.),epguides.check) return } if ($sock(%s)) sockclose %s if ($hget(%s)) hfree %s var %t = 1, %m = $ini(EpGuides.ini,Séries,0) if (!%m) { epguides.disp * Aucune série n'est dans la base. Veuillez en ajouter une (clic droit). return } while %t <= %m { hadd -m %s Liste $addtok($hget(%s,Liste),$ini(EpGuides.ini,Séries,%t),32) inc %t } hadd -m %s Compteur 1 hadd -m %s Mode 0 sockopen %s epguides.com 80 } on *:sockopen:EpGuides:{ if ($sockerr) return var %s = $sockname sockwrite -n %s GET $+(http://epguides.com/,$gettok($hget(%s,Liste),$hget(%s,Compteur),32),/) HTTP/1.0 if ($hget(%s,Mode) != 2) { epguides.disp $chr(3) epguides.disp * * Récupération des données de $+(http://epguides.com/,$gettok($hget(%s,Liste),$hget(%s,Compteur),32),/) } if ($hget(%s,Last)) hdel %s Last sockwrite -n %s Host: $+(epguides.com,$str($crlf,2)) } alias -l epguides.desc { var %n = $regsubex($gettok($hget($1,Liste),$hget($1,Compteur),32),/([A-Z])/g,$+($chr(32),\t)) epguides.disp * $epguides.u(Série) : $epguides.b($regsubex(%n,/_(\S+)/g,$+($chr(32),$chr(40),\t,$chr(41)))) if (!$1-) epguides.disp Pas de dernier épisode sorti else { var %duree = $int($calc(($ctime - $ctime($2)) /86400)) if (%duree == 1) var %tp = hier elseif (%duree == 0) var %tp = aujourd'hui else var %tp = il y a %duree jours epguides.disp Dernier épisode sorti $+($chr(40),S,$3,E,$4,$chr(41)) le $2 $+($chr(40),%tp,$chr(41)) : $5- } } on *:sockread:EpGuides:{ var %a, %s = $sockname, %o sockread %a if ($regex(%s,%a,/(?:\s*)(\d+\.)(?:\s+)(\d+)-(?:\s?)(\d+)(?:\s+)(?:[a-zA-Z\-\d\(\)]*)(?:\s*)(\d+)(?:\s+)([A-Za-z]{3})(?:\s+)(\d{2})(?:\s+)<a target="_blank" href="([^\"]+)">([^<]+)</a>.*/U)) { var %date = $+($base($regml(%s,4),10,10,2),/,$base($findtok(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec,$regml(%s,5),1,32),10,10,2),/,$regml(%s,6)), %sn = $base($regml(%s,2),10,10,2), %en = $base($regml(%s,3),10,10,2) var %titre = $regsubex($replacex($regml(%s,8),&,&),/&#([0-9A-Fx]+);/Ug,$chr($iif($left(\t,1) == x,$base($right(\t,-1),16,10),\t))) ;le lien est stocké dans $regml(%s,7) if ($hget(%s,Mode) == 1) { if (!$sock(%s).mark) epguides.disp * $epguides.u(Série) : $epguides.b($regsubex($hget(%s,Liste),/_(\S+)/g,$+($chr(32),$chr(40),\t,$chr(41)))) sockmark %s 1 var %duree = $int($calc(($ctime(%date) - $ctime) /86400)) if (%duree > 0) var %p = dans else var %p = il y a, %duree = $abs(%duree) epguides.disp Épisode $regml(%s,1) $+($chr(40),S,%sn,E,%en,$chr(41)) le %date $+($chr(40),%p %duree jour,$iif(%duree > 1,s),$chr(41)) : %titre } elseif ($hget(%s,Mode) == 2) { var %n = $epguides.b($regsubex($regsubex($gettok($hget(%s,Liste),$hget(%s,Compteur),32),/([A-Z])/g,$+($chr(32),\t)),/_(\S+)/g,$+($chr(32),$chr(40),\t,$chr(41)))) var %duree = $int($calc(($ctime(%date) - $ctime) /86400)) if (%duree == -1) epguides.disp L'épisode $regml(%s,1) $+($chr(40),S,%sn,E,%en,$chr(41)) de %n est sorti $epguides.u(hier) : %titre elseif (!%duree) epguides.disp L'épisode $regml(%s,1) $+($chr(40),S,%sn,E,%en,$chr(41)) de %n sort $epguides.u(aujourd'hui) : %titre if ($istok(-1 0,%duree,32)) hadd -m %s DontShow 0 } elseif ($ctime(%date) > $ctime) { epguides.desc %s $hget(%s,Last) var %duree = $int($calc(($ctime(%date) - $ctime) /86400)) if (%duree == 1) epguides.disp Prochain épisode $+($chr(40),S,%sn,E,%en,$chr(41)) le %date (demain) : $iif(%titre,$v1,?!) else epguides.disp Prochain épisode $+($chr(40),S,%sn,E,%en,$chr(41)) le %date (dans %duree jours) : $iif(%titre,$v1,?!) var %o = 2 } else hadd -m %s Last %date %sn %en $regml(%s,8) } elseif (%a == </pre>) { if ($hget(%s,Mode)) var %o = $v1 else { var %o = 2 epguides.desc %s $hget(%s,Last) epguides.disp Pas de date donnée pour le prochain épisode. } } if (%o) { sockclose $sockname if (%o > 1) { hinc %s Compteur if ($hget(%s,Compteur) <= $numtok($hget(%s,Liste),32)) sockopen %s epguides.com 80 else { if (($hget(%s,Mode) == 2) && (!$hget(%s,DontShow))) epguides.disp * Fin de la vérification hfree %s } } } } on *:sockclose:EpGuides:{ var %s = $sockname hinc %s Compteur if ($hget(%s,Compteur) <= $numtok($hget(%s,Liste),32)) .timer 1 1 sockopen EpGuides epguides.com 80 else { if (($hget(%s,Mode) == 2) && (!$hget(%s,DontShow))) epguides.disp * Fin de la vérification hfree %s } } alias -l epguides.u return $+($chr(31),$iif($left($1,1) == $chr(32),$right($1-,-1),$1-),$chr(31)) alias -l epguides.b return $+($chr(2),$iif($left($1,1) == $chr(32),$right($1-,-1),$1-),$chr(2)) alias -l epguides.disp { if (!$window(@EpGuides)) window -ae @EpGuides echo -t @EpGuides $$1- } menu @EpGuides { Nettoyer:clear @EpGuides Aide:epguides.aide - Tout développer:epguides Voir les sorties d'aujourd'hui ou de hier:epguides.check $iif($readini(EpGuides.ini,Config,DisabledAutoCheck),$style(1)) Désactiver la vérification au démarrage:writeini -n EpGuides.ini Config DisabledAutoCheck $iif($readini(EpGuides.ini,Config,DisabledAutoCheck),0,1) - Séries .$submenu($epguides.sub($1)) - Visiter epguides.com:url -n http://epguides.com À propos:epguides.about Fermer:window -c @EpGuides } alias -l epguides.sub { if ($1 == begin) return - elseif ($1 == end) return - elseif ($1 == 1) return Ajouter:epguides.subadd elseif ($1 == 2) return Supprimer:epguides.subdel elseif ($1 == 3) return - elseif ($ini(EpGuides.ini,Séries,$calc($1 - 3))) { var %n = $regsubex($regsubex($v1,/([A-Z])/g,$+($chr(32),\t)),/_(\S+)/g,$+($chr(32),$chr(40),\t,$chr(41))) return $+(.,$calc($1 - 3),.,$chr(9),%n,:,epguides.aff $v1) } } alias -l epguides.subadd { var %ss = $input(Donnez le nom de la série à ajouter,e), %n = $remove($regsubex(%ss,/(?:^|\s)([a-z])/g,$upper(\t)),$chr(32)) if ($chr(40) isin %n) { var %n = $regsubex(%n,/ ?\((.+)\)/Ug,$+(_,\t)) } if ((!%n) || ($readini(EpGuides.ini,Séries,%n))) { epguides.disp * Erreur : nom vide ou nom déjà utilisé return } writeini -n EpGuides.ini Séries %n 1 epguides.disp * Série $epguides.b(%ss) ajoutée $+($chr(40),lien : http://epguides.com/,%n,/,$chr(41)) } alias -l epguides.subdel { var %ss = $input(Donnez le nom de la série à supprimer,e), %n = $remove($regsubex(%ss,/(?:^|\s)([a-z])/g,$upper(\t)),$chr(32)) if ((!%n) || (!$readini(EpGuides.ini,Séries,%n))) { epguides.disp * Erreur : nom vide ou inexistant dans la base return } remini EpGuides.ini Séries %n epguides.disp * Série $epguides.b(%ss) supprimée } alias -l epguides.aff { if (!$1) return var %s = EpGuides if ($hget(%s)) hfree %s if ($sock(%s)) sockclose %s hadd -m %s Compteur 1 hadd -m %s Liste $1 hadd -m %s Mode 1 var %n = $regsubex($1,/([A-Z])/g,$+($chr(32),\t)) sockopen %s epguides.com 80 } alias -l epguides.about { epguides.disp $chr(3) epguides.disp * $epguides.u(À propos) epguides.disp Cet utilitaire a été conçu par ArKanis pour www.ircfr.com epguides.disp Il utilise le site http://epguides.com qui détient toutes les infos concernant les séries. epguides.disp Pour télécharger d'autres sources du même auteur, visitez www.arkanis.eu epguides.disp $chr(3) } ;End Of File
4 oct. 2008 à 20:01
4 oct. 2008 à 20:41
ça faisait un bon moment que je n'avais pas posté de code et j'avais peur que mon retour ne soit pas à la hauteur de mon dernier code (la belote ...)
je n'ai pas dit que le code ici présent était à la hauteur de celui de la belote, juste le retour :D
sinon, ce qui m'a pris le plus de temps, c'est les regex (en particulier celui de la ligne 89). Celui là est réellement illisible !
bon et bah, à dans un an pour le prochain code !
Niveau utilité, tu penses t'en servir pour de vrai PaDa ? :p
4 oct. 2008 à 21:09
8 oct. 2008 à 00:34
8 oct. 2008 à 07:25
si je l'ai mis, c'est que je m'étais aperçu qu'un double espace avait été placé :p
les (), c'est effectivement par habitude
merci pour ton commentaire :)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.