Photos en pv - discut.net

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 469 fois - Téléchargée 17 fois

Contenu du snippet

Un simple addon pour voir les photos en pv sur irc.discut.net (avec le client mIRC).
- soit la photo s'affiche automatiquement lorsqu'une personne vient vous voir en pv
- soit il faut taper /query pseudo pour que la photo s'affiche si c'est vous qui ouvrez un pv.
Addon en socket... pas très dur a faire, donc pas détaillé. (je le poste surtout pour ceux qui vont sur ce serveur et dont ca intéresse).
Merci a Sonarca d'avoir passé un peu de temps pour m'aider.

Source / Exemple :


;??????????????????????????????????
; Addon - Photos en pv - par uaip
;??????????????????????????????????

on *:open:?:if ($network == DiscuT) dpv $nick
alias query { query $$1 | if ($network == DiscuT) dpv $$1 }
alias dpv {
  set %ppvpt $+(ville=&age_min=10&age_max=99&sex=-1&pays=xx&dpt=-1&situation=-1&type_rencontre=-1&orientation=-1&pseudo=,$$1)
  set %ppvpseudo $$1 | sockclose ppv | sockopen ppv www.discut.fr 80
}
alias -l dpvaff { if (%ppvpfid == $true) { background -p %ppvpseudo dphoto.jpg | unset %ppvp* | unset %temp } }
alias -l swr sockwrite -n $sockname $1-
on *:sockopen:ppv:{
  if ($sockerr) { echo 4 -a ** Erreur ouverture site IP | halt }
  swr POST /profile_search.php HTTP/1.1
  swr Host: discut.fr:80
  swr Content-Type: application/x-www-form-urlencoded
  swr Content-Length: $len(%ppvpt) $+ $crlf $+ $crlf
  swr %ppvpt
}
on *:sockread:ppv:{
  sockread %temp
  if ($+(Photo,$chr(32),de,$chr(32),$gettok(%ppvpt,11,61)) isin %temp) {
    set %ppvphoto $gettok(%temp,2,34)
    sockclose ppv | sockclose ppv2 | sockopen ppv2 www.discut.fr 80
  }
}
on *:sockopen:ppv2:{
  .remove dphoto.jpg
  set %ppvpfid $false
  swr GET / $+ %ppvphoto HTTP/1.1
  swr Host: discut.fr:80 $+ $crlf $+ $crlf
}
on *:sockread:ppv2:{
  if ($sockerr) { echo 4 -a ** Erreur ouverture site IP | halt }
  if (%ppvpfid == $false) { sockread %a | if (%a == $null) { set %ppvpfid $true } }
  else {
    sockread &a
    bwrite dphoto.jpg -1 -1 &a
    .timerdpv -m 1 500 dpvaff
  }
}

Conclusion :


On peut sans doute faire beaucoup mieux, j'attends donc vos commentaires.

(pas besoin de .zip pour une si petite source).

A voir également

Ajouter un commentaire

Commentaires

Messages postés
64
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
19 juin 2010

Bon finalement j'ai changé de site mais j'ai un autre soucis :s
c'est quand il y a 50 définition pour un mot mdrrrrrrrrrr bonjour le flood et dur dur car on peut pas arrêter la boucle du shockread :s

mon code ressemble a ca:

on *:sockread:dico1:{
sockread %temp
if (DivisionDefinition isin %temp) {
if (RubriqueDefinition !isin %temp) msg $lactive Définition de %mot : $replace($remove(%temp,<li je met pas la suite c'est trop long lol
}
}
je ne vois pas d'autres condition a mettre car ensuite les lignes sont toutes semblables.

Donc, Comment peut on limité le nombre de message retourner?
Messages postés
64
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
19 juin 2010

Bonsoir,

UAIP j'aurais une petite questions

Je suis sur une autre remote en socket et je me retrouve avec ma variable de sockread %temp qui apparemment se bloque sur un :

%temp is banned on this server.

Est ce que ca veut dire que le server est protégé et me bloque?
Et si c'est ca , y a t'il moyen de contourner cela?

En fait je voulais me faire une remote dictionnaire :$, bizarre car je peut voir la source des page du site mais avec mon socket si je demande un écho des ligne apparemment ca lis deux ligne puis ca me met ce message "is banned on this server."

Cordialement,
Messages postés
64
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
19 juin 2010

Salut,

Alors ne soit pas désolé car en fait le sockclose ne marche pas si on le met dans le sockread, enfin si il marche mais il stope le telechargment avant qu'il soit fini en fait et me retrouve avec le même probleme que mes timer et de plus après l'événement on *:sockclose: ne réagit pas avec la commande /sockclose,
résultat je pense que le socket se ferme tous seul quand il a fini de telecharger l'image, , mais je vais le mettre quand même avec un timer le /sockclose dans le on *:sockread: ;)

l'aide dit bien:

on 1:sockclose:nom:commandes

L'évènement sockclose est déclenché quand une connexion est fermée par la connexion remote (pas vous).

Enfin voila, je verrais avec le temps si ca déconne ou pas de ttes façons, et aviserais de comment je corrige le beug si il y a ;)

Pour le $submenu oui merci en fait j'aurais du le voir dans l'aide car j'ai regardé plusieurs fois la page :bete:, j'ai tester deux trois truc mais pas concluant, je maitrise pas assé les variable je crois, vais continuer ;)

Merci encore UAIP pour tous ;)
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011

Alors, je suis désolé de t'avoir fait perdre 2h étant donné que tu as parfaitement raison... je ne me souvenais plus du tout de cette commande /sockclose... je sais pas pourquoi, j'étais persuadé que les sockets se fermaient automatiquement.
Au temps pour moi...

Pour tes sous-menus, le meilleur exemple est celui de mIRC, avec $submenu(), c'est un peu tordu comme concept, mais je ne m'en souviens plus très bien.
Messages postés
64
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
19 juin 2010

re,

Oui les ON c'est quand l'événement arrive j'avais bien compris ca ;)
Et je comprend aussi ton raisonnement au sujet du sockclose mais je me suis fais des if ou j'integre des sockclose PVphoto1 qui maintenant font arrêter la variable du coup....

on *:sockread:PVphoto1:{
sockread %temp
var %url = $iif($regex(photo,%temp,/src="\.\.([^"]+)"/),$regml(photo,1),%url indéfini)

if (%url == $regml(photo,1)) set %li-im-ps %url | unset %temp
if (%photoPV1 isin %li-im-ps) {
unset %temp
PVphoto2
sockclose PVphoto1
}
if (thumb_defaut isin %li-im-ps) {
unset %temp
PVphoto2
sockclose PVphoto1
}
if (/photo/img/carton_rouge.gif isin %li-im-ps) {
echo 4 -a ** %photoPV1 n'a pas de profil **
unset %temp
background -dp $query(%photoPV1) Images\imagesUser\noVIP.gif
sockclose PVphoto1
unset %li-im-ps
unset %photoPV1
}
}
je n'ai pas réussi a optimiser mieux que ca

Par contre les timer j'avais vu oui et essayé et là je viens de me replonger dedans et ca a l'aire de fonctionner cette fois, je m'emmêlais avec les nom ou pas de nom etc... et aussi j'en avais mis un au bwrite qui foutait la merde aussi ralalalalalala lol

Arff le temps que je t'écrive ca et reteste des trucs du coup ca marche plus maintenant pourtant rien touché dans mes timer, juste essayer d'optimiser mes if :s.......

on *:sockread:PVphoto2:{
sockread &a
bwrite Images\imagesUser\ $+ $gettok(%li-im-ps,3,47) -1 -1 &a
.timerbackground 1 30 /background -dp $query(%photoPV1) Images\imagesUser\ $+ $gettok(%li-im-ps,3,47)
.timerremove 1 10 /.remove Images\imagesUser\ $+ $gettok(%li-im-ps,3,47) | unset %li-im-ps | unset %photoPV1
}

bon vais rester comme avant car mes sockclose dans mes if font que ca marchait très bien en fait.
2h00 que j'écris ce Post mdrrrrrrrrr

Sinon pour mon autre question en fait j'ai trouvé la solution mais j'ai un autre problem pour me faire un menu popup en récuperant des item dans mirc.ini

alias salonsFavo {
var %x = 0
:next
set %popo $readini(mirc.ini,chanfolder, $+(n,%x))
echo 4 -s %popo
inc %x
if (%x < $ini(mirc.ini,chanfolder,0)) goto next
}

menu @SalonsFavoris {
menus
$salonsFavo
}

mon echo 4 -s %popo m'éffiche bien ce que je veux mais j'arrive pas a trouver comment mettre les résultats dans mon menu popup, c'est pour remplacer celui du mirc par défaut de la toolbar en fait, je test et ca pourras me servir pour faire d'autres menus par la suite.

Je voulais aussi faire un code pour remplacer la fonction Alt+R genre mais trouve pas et sais pas si c'est possible, en alias ca marche pas ou alors il me faut le code ascii du Alt si il existe mais pas trouvé non plus.

Enfin voila, lol
merci encore pour tous ;)
Afficher les 57 commentaires

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.