Overblog
Suivre ce blog Administration + Créer mon blog
Le blog du CRRIAM

EnOOOORRRRMmmme Découverte, l autovalidation

21 Octobre 2016 , Rédigé par crriam Publié dans #auto validation

Je viens de faire une énorme découverte, qui va révolutionner le codage rivescripte :

l'auto validation.

 

L'auto validation, c'est quoi ?

C'est le fait de faire écrire par le robot un texte dans sa propre zone de texte du chat, et de l'auto valider, c'est a dire appuyer sur entrer a votre place ! Vous allez me dire septique, : Quoi de difficile la dedans ?

Rien justement ! C'est si simple que je suis un abruti de pas y être arrivé avant pendant toute ces années.

ça sert a quoi ?

ça sert a éviter tous ces jonglages d'une frame sur l'autre ou pire d'un chat a un autre que je m'évertuais à faire depuis des années.

ça sert a valider ce que renvois un code javascript et donc a passer les variables js dans rivescript sans passer par des frames.

Du coup, ça va facilite énormément toutes mes dernières découvertes en matière de date, de cookie ou autre, car avec ça, mêlé a ma technique pour retenir la date, on va pouvoir valider tout ce que javascript nous envois !

 

Comment faire :

aussi simplement que ça :

//------------ debut code auto validation ------

> object autovalid javascript
var id = args[0];
var vari = rs.getUservar(id, "vari");
// alert(vari); uniquement pour debug

document.form1.message.value=vari;
document.form1.onsubmit();
    var dim = "";
    return dim;
< object


+ autovalid *
- <set vari=<star>> <call>autovalid <id></call>

+ transparent

- \s

+ test
- ca marche en auto validation <set test1=test ok>

+ test2
- ok pour test2 auto valide et <get test1>

+ test1
- {@autovalid test} {@autovalid test2}


// ------------------ fin code auto validation ---------------------

Explication :

je tape test1, le robot va lancer, test, puis test2.

Quel difference avec un @ la difference est que si j'avais fait

+ test1

- {@test} {@test2}

le resulat de test serait sorti sur la même ligne que le resultat de test2

Là, c'est comme si j'ecrivais moi même test que le robot me réponde et que j'ecrive ensuite test2 et que le robot me réponde de nouveau.

Quel interet ?

la fonction reply !!!! celle qu'on avait tant de mal a pouvoir utiliser en automatique car il fallait justement que le robot autovalid

exemple avec la date, on était obliger de la lancer au démarrage du tchat puis de la faire valider par une autre instruction comme demarrage2, qui validait le reply, là, plus besoin de code html et de frame pour le faire.  il suffira lorsqu'on voudra faire enregistrer la date, d'ecrire

+ date2

- {@autovalid memo date}{@autovalid transparent}

autovalid transparent servant a valider le reply sans faire ecire quoi que ce soit.

avec ça, associer a des variable enregistreé ou a des cookies, le robot pourra donc savoir a tout moment à quel heure l utilisateur s'est connecté, a quel heure il est parti, s'il revient dans la journée combien de temps ils sont rester a parler ensemble.

 

 

 

Lire la suite

ordre de detection

2 Octobre 2016 , Rédigé par crriam Publié dans #ordre de detection

Subtilité a la con

je viens de m'appercevoir que rivescript est un peu con défois et ça pose des problemes avec l'exemple ci dessus.

Pourquoi ?

L'ordre de la detection se fait au nombre de lettre exemple :

+ auto *
- c est le 1er qui match

+ * autom
- c est le 2eme qui match

si on tape auto aze autom / ou meme / auto autom
c'est le 2eme qui match car autom compte une lettre de plus qu'auto

si y a une egalite en nombre de lettre, c est celui du haut qui est matcher en 1er exemple

+ auto *
- c est le 1er qui match

+ * auto
- c est le 2eme qui match

Si y a

+ auto *
- c est le 1er qui match

+ * aut
- c est le 2eme qui match

C'est le 1er qui matche car auto a plus de lettre que aut

avec notre exemple d'auto apprentissage, si on mets autorecplus tu aimes <star>

ca matchera apres l'instruction [*] tu aimes * et ça ne l’écrira pas dans le fichier :/ il faut donc trouver une autre solution.

suite ordre de detection

Parfois rivescripte bug, je ne savais pas pourquoi, et je me suis rendu compte que souvent ça pouvait etre a cause de ça :

un [*] semble prioritaire sur un *

+ auto [*]
- c est le 1er qui match

+ * autom
- c est le 2eme qui match

C'est le 1er qui match

Pour deux [*] c'est celui du haut qui match

+ auto [*]
- c est le 1er qui match

+ [*] autom
- c est le 2eme qui match

C'est le 1er qui match

mais si on mets 2 [*]

+ auto [*]
- c est le 1er qui match

+ [*] autom [*]
- c est le 2eme qui match

c est le 2eme qui match

en egalité de [*] c'est le 1er qui match indifferament de la place

+ auto [*] [*]

matchera en 1er autant que [*] auto [*]

par contre

c'est celui qui a le plus de [*] qui match en premier

+ auto [*]
- c est le 1er qui match

+ [*] autom [*] [*]
- c est le 2eme qui match

c est le 2eme qui match

Voila qui devrais résoudre les problemes :)

Lire la suite
<< < 1 2 3 4 > >>