Collabo HFR

Collabo HFR - Divers - Programmation

Marsh Posté le 16-07-2018 à 23:56:23    

Bienvenue sur le topic des mises à jour automatisées et participatives d'un post ou d'un FP HFR  :hello:

 
  • L'idée : permettre à tous d'ajouter du contenu en première page d'un topic.
  • Tant qu'à faire : automatiser la mise à jour du ou des posts.
  • Le script git2hfr (PHP) permet donc de mettre à jour un post ou une premièr(e) page/post d'un topic HFR depuis un dépôt Git(hub|lab) avec Webhooks. Appelé via un webhook (depuis github par exemple), après un push dans un dépôt git, il récupère les données et édite le post/sujet voulu. Il permet l'édition collaborative du FP en faisant des pull request sur Github ou autre.
  • Un hébergement avec PHP est nécéssaire.


Merci à roger21 pour l'avoir écrit :jap:

 


Message édité par XaTriX le 05-10-2023 à 23:40:33

---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 16-07-2018 à 23:56:23   

Reply

Marsh Posté le 16-07-2018 à 23:56:35    

LISTE DES FP MISES A JOUR VIA GIT2HFR



Message édité par XaTriX le 05-10-2023 à 23:40:37

---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 16-07-2018 à 23:56:38    

Guide d'installation côté serveur & github :

Citation :

résumé :

 

le script gh2hfr permet de mettre à jour automatiquement un post du forum hfr en fonction d'un contenu disponible en ligne.
le script peut mettre à jour plusieurs posts à la fois et il peut être appelé directement ou via un webhook github.
le script est écrit en php, il est prévu pour fonctionner et être appelé depuis un serveur web qui interprète le php.
 
 

 

- 1 - récupérer le script

 

bouton droit sur le lien du script -> enregistrer la cible du lien sous...
 
renommer le script en "gh2hfr.php"
 
dupliquer et renommer le script pour autant de repositories qui doivent gérés, ex : gh2hfr-toulouse.php, gh2hfr-expats.php, gh2hfr-ryanair.php etc.
 
 

 

- 2 - configurer le script

 

ouvrir le script dans un éditeur (de préférence avec coloration syntaxique php ou mieux encore avec check du code php pour éviter les erreurs de syntaxe)
 
dans la partie /* les paramètres */ il faut préciser 2 choses :
 
 - 1/ les urls "source" et "formulaire" pour chaque post du forum à mettre à jour :
 
sous la forme d'un tableau de tableaux, chaque sous-tableau correspond à un post, avec :
le champ "source" : l'url du contenu à mettre dans le post (par exemple la version raw d'un fichier github)
le champ "formulaire" : l'url de la page d'édition du post sur le forum (quand on clique sur le sur le bouton d'édition pas rapide)
 
2 posts de roger21 sont configurés pour l'exemple, il peut n'y en avoir qu'un ou beaucoup plus mais il faut alors prévoir que le temps d'exécution du script va augmenter et qu'il peut alors être nécessaire d'augmenter les limites de temps d’exécution des scripts php dans le fichier de configuration du serveur (ex. php.ini).
 
 - 2/ les cookies d’authentification sur le forum :
 
juste le md_user et le md_passs qui peuvent être récupérés en regardant les entêtes d'une requête sur le forum en étant connecté.
 
par exemple avec un navigateur : charger une page du forum en étant connecté, faire F12, cliquer sur "réseau" et "tout", faire F5, cliquer sur la première requête GET pour afficher les détails, rechercher md_user et md_pass dans les champs set_cookie ou cookie et copier les valeurs correspondant dans le script à la suite des "=".
 
les cookies d’authentification doivent évidement correspondre à l'auteur des posts à éditer.
 
 

 

- 3 - installer le script

 

le script est prévu pour être installé sur un serveur web qui interprète le php et qui est accessible depuis internet
 
on peut configurer des restrictions d'accès au script en les limitant par exemple aux adresses locales et aux adresses de github pour les webhook :
ex. pour apache :

 

Require local
Require ip 192.30.252.0/22 185.199.108.0/22 140.82.112.0/20

 


 
 

 

- 4 - premier test

 

si le script est bien configuré et qu'il est bien installé et accessible depuis internet il suffit de l'appeler simplement avec un navigateur web pour le tester
 
si le script fonctionne il affichera les messages "Votre message a été édité avec succès ! " autant de fois que de posts ont été configurés dans le script et les post correspondants sur le forum auront été mis à jour
 
le script est configuré pour afficher directement les erreurs, il peut donc afficher certaines erreurs en cas de problèmes mais les erreurs de syntaxe ou de compilation (qui surviennent avant que le script ne puisse se lancer) ne seront visibles que dans les fichiers de log du serveur web
 
 

 

- 5 - configuration d'un webhook github pour fonctionner avec le script

 

la doc des webhooks gihub : https://developer.github.com/webhooks/
 
note importante : le script ne gère aucun des messages envoyés par guithub, il ne fait que réagir au fait d'être appelé, en conséquence de quoi il n'y a pas de protections du script contre des appels non désirés et, bien que l'action du script soit entièrement limitée par la configuration des posts dans le script, il peut être intéressant de rendre l'accès au script non trivial (directive require d'apache, port du serveur web exotique, robots.txt, etc.) d'autre part le script réagira indifféremment quelque soit le hook de github configuré (on peut donc le laisser sur le push par défaut)
 
dans le repository github, aller dans l'onglet settings puis dans le menu webhooks, cliquer sur le bouton "add webhook", donner l'adresse complète du script dans le champ "Payload URL" (on peut laisser tous les autres champs par défaut) et cliquer sur le bouton "add webhook" en bas
 
le webhook se lance automatiquement une première fois, si tout se passe bien il redirige sur le menu webhooks, sinon il reste sur la page de configuration du webhook où l'on peut consulter la requête et la réponse en bas de la page et il est possible de relancer le hook avec le bouton "redeliver" (toutes les requêtes/réponse restent accessible à cet endroit)
 
 

 

- 6 - limitations

 

le script a été testé sur un premier post et un post secondaire, il est censé gérer ces deux cas indifféremment et reproduire tous les champs pré-existants à l'identique (icône, options, sondage, etc)
 
néanmoins tous les cas n'ont pas été testé individuellement et encore moins les cas en erreur, la précaution est donc de mise concernant  
 
1/ la perte des données contenues dans les posts (sauver tout ce qui peut être sauvé avant de laisser le script modifier un post)
 
2/ les données insérées (le forum gère mal certains caractères UTF-8, il est notamment possible de planter un topic en insérant un caractère UTF-8 dans le sujet par exemple et le forum n'est pas réputé pour sa sécurité ni sa fiabilité, donc prudence quant aux contenus insérés automatiquement dans les posts, ne pas chercher à faire des trucs chelous...)
 
3/ l’exécution automatique du script, bien que le forum ne possède visiblement aucune protection particulière contre la modification des posts par des scripts, le script ne fait pas d'effort non plus pour se dissimuler (derrière un user-agent ou des en-tête de requête plus standards), il est donc facilement détectable, d'autre part le forum possède une protection contre les requêtes automatiques trop rapides/trop nombreuses générant un ban de l'ip (bien connu des habitué des scripts :o) donc là aussi faire attention à l'utilisation qui est fait du script

 


Message édité par XaTriX le 05-10-2023 à 23:40:40

---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 17-07-2018 à 11:00:52    

.


Message édité par XaTriX le 05-10-2023 à 23:40:44

---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 17-07-2018 à 11:16:55    

Drapal, ça m'intéresse pour le topic jeu du dico.
 
On renseigne actuellement un google spreadsheet et on fait des copier/collés en first page.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 17-07-2018 à 13:15:30    

Normalement tu dois t'en sortir avec ce qui est en fp, sinon je peux te filer un coup de main :jap:

 

XaT


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 17-07-2018 à 14:01:13    

Ok, c'est sympa.
Si j'arrive à me motiver je regarderai ça.
 
VaV


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 18-07-2018 à 12:44:17    

[:soulafa] Nouveau topic supporté :


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 19-07-2018 à 08:32:08    

[:kimonox:6]


---------------
À Saint Etienne, y a que des connards - Big Flo & Oli
Reply

Marsh Posté le 05-08-2018 à 16:23:40    

Ya pas autre chose que du PHP ? Je voulais le faire tourner sur Azure Functions en mode gratos mais pas PHP, mais ya du JS, python, typescript :D

Reply

Marsh Posté le 05-08-2018 à 16:23:40   

Reply

Marsh Posté le 05-08-2018 à 19:06:47    

Si t'es chaud de le porter y'aura :o

 

XaT


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 05-08-2018 à 19:47:27    

bah tu peux aussi héberger les scripts des autres sur ton serveur [:gracchus13:1]


---------------
☭ ni patrie ni patron | power concedes nothing without a demand | free luigi | des scripts | des stats | y tho | stew is sus ඞ
Reply

Marsh Posté le 05-08-2018 à 19:49:13    

ah oui par contre on pourrait foutre le message du commit dans le post de maj ....


---------------
☭ ni patrie ni patron | power concedes nothing without a demand | free luigi | des scripts | des stats | y tho | stew is sus ඞ
Reply

Marsh Posté le 05-08-2018 à 21:37:36    

roger21 a écrit :

bah tu peux aussi héberger les scripts des autres sur ton serveur [:gracchus13:1]


Moi ? Oui sans soucis

roger21 a écrit :

ah oui par contre on pourrait foutre le message du commit dans le post de maj ....


Hm, tout le post ? Sur les gros topics ça sera horrible, un diff du coup ? Pas sur que ça soit bien lisible ?
 
XaT


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 06-08-2018 à 02:20:52    

le "message du commit" :
 
" Merge pull request #1 from Gremi-hfr/master
 
Ajout des marchés de Tournefeuille et modifs mineures"
 
" Mise à jour des tags
 
Rajout années 2017 et 2018"
 
etc.


---------------
☭ ni patrie ni patron | power concedes nothing without a demand | free luigi | des scripts | des stats | y tho | stew is sus ඞ
Reply

Marsh Posté le 06-08-2018 à 10:45:24    

Ce sujet a été déplacé de la catégorie Windows & Software vers la categorie Programmation par Wolfman

Reply

Marsh Posté le 11-08-2018 à 21:11:11    

bon, ajout d'une gestion du "commit_message", si vous mettez la chaine COMMIT_MESSAGE qqpart dans le message du post de maj elle sera remplacée par le message du dernier commit si y'en a un (en gros :o )


---------------
☭ ni patrie ni patron | power concedes nothing without a demand | free luigi | des scripts | des stats | y tho | stew is sus ඞ
Reply

Marsh Posté le 11-08-2018 à 21:20:25    

s'il y a un message tu postes 2 fois ?

Reply

Marsh Posté le 11-08-2018 à 21:21:41    

hein ?


---------------
☭ ni patrie ni patron | power concedes nothing without a demand | free luigi | des scripts | des stats | y tho | stew is sus ඞ
Reply

Marsh Posté le 11-08-2018 à 21:25:04    

Code :
  1. postage($formulaire, $source);
  2.     if(isset($post["message"]) && !empty($post["message"]) && !empty(trim($post["message"]))){
  3.       $source=str_replace("COMMIT_MESSAGE", $commit_message, trim($post["message"]));
  4.       $formulaire=preg_replace("/&numreponse=[0-9]+/", "", str_replace("#formulaire", "", $formulaire))."&new=0";
  5.       //$talktome.="$formulaire<br>\n";
  6.       postage($formulaire, $source, true);
  7.     }


 
Non en fait j'ai compris :D.
J'ai cru que tu éditais 2 fois le post :D une fois sans le message de commit, une fois avec

Reply

Marsh Posté le 11-08-2018 à 21:26:03    

ouais c'est souvent plus clair en lisant le code :o

 

enfin là j'ai été goret en ne changeant pas le nom des variables, mais bref le premier postage c'est celui qui met à jour le post (à mettre à jour) et le deuxième postage c'est celui qui crée un nouveau post pour signaler la mise à jour ... (si le champs posts["message"] est renseigné) et il y mettra le commit_message si il y a besoin


Message édité par roger21 le 12-08-2018 à 07:24:15

---------------
☭ ni patrie ni patron | power concedes nothing without a demand | free luigi | des scripts | des stats | y tho | stew is sus ඞ
Reply

Marsh Posté le 21-09-2018 à 11:21:48    

Drap pour l'étude jdd :o


---------------
It's a simple mistake to make, to create love and to fall.
Reply

Marsh Posté le 21-09-2018 à 13:31:38    

pour wat ? :o


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 21-09-2018 à 13:33:22    

journal du dimanche :o

Reply

Marsh Posté le 21-09-2018 à 13:41:32    

étude du journal du dimanche ? wtf :o


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 21-09-2018 à 13:41:50    

jour des développers ? jour de la daronne ? [:transparency]


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 21-09-2018 à 13:42:20    

Jeu du dictionnaire :jap:


---------------
It's a simple mistake to make, to create love and to fall.
Reply

Marsh Posté le 27-10-2018 à 19:40:25    

@roger21, j'ai fait quelques updates à la suite sur le topic ASR : il doit avoir un cache quelque part, ça update avec le premier commit fait, les suivants sont ignorés (bien que présent sur le repo). Update via l'URL testé (hors webhook donc).  
 
Une idée :??:
 
XaT


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 27-10-2018 à 20:41:48    

et beh je sais pas, t'as pas mis une url foireuse pour le paramètre "source", bien mis le master par exemple et pas un commit ?
 
t'as relancé le script et c'est toujours pareil ?
 
t'es sûr que ce qu'il met dans le post n'est pas la dernière version ?
 
si oui partout tu peux essayer un grugeage d'url dans ton paramètre "source" :

"source" => "https://raw.githubusercontent.com/XaaT/hfr-asr/master/post-1.txt" . "?" . time(),


---------------
☭ ni patrie ni patron | power concedes nothing without a demand | free luigi | des scripts | des stats | y tho | stew is sus ඞ
Reply

Marsh Posté le 27-10-2018 à 20:44:07    

Je viens juste de relancer avant ton post', ça a bien pris la dernière version.
Je test ta soluce pus tard :jap:


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 27-10-2018 à 21:13:00    

hésite pas à relancer le script dans le doute, ça coute rien et tout le monde s'en fout (hfr va pas planter pour ça, du moment que t'attends au moins 1 seconde avant de relancer :o) et au pire t'auras un anti-flood sur le post d'annonce mais ça bloquera pas la maj


---------------
☭ ni patrie ni patron | power concedes nothing without a demand | free luigi | des scripts | des stats | y tho | stew is sus ඞ
Reply

Marsh Posté le 27-10-2018 à 21:14:45    

ah ouais je l'ai relancé à la manno pour tester justement :D


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 27-10-2018 à 21:31:06    

ah ouais ok c'est les appels via webhook qu'ont merdé déjà à la base, hum ça peut être intéressant de regarder les payload voir si les commit correspondent bien et tu peux aussi relancer le dernier delivery
 
mais ouais c'est ptet un cache tout con vu que github doit avoir 3 tonnes de cdn ... du coup le bidouillage d'url peut être intéressant, voir carrément insérer le sha du commit à la place de mster dans l'url ...


---------------
☭ ni patrie ni patron | power concedes nothing without a demand | free luigi | des scripts | des stats | y tho | stew is sus ඞ
Reply

Marsh Posté le 27-10-2018 à 21:39:08    

Bon en temps normal aussi tu commit pas 2 fois en 10 sec (encore que, pour les typos)


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 23-03-2019 à 13:21:36    

C'est cool tout ça :)


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 24-03-2019 à 22:54:41    

:love:


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 05-04-2019 à 14:30:00    

Qui est chaud pour nous faire un truc qui convertit du markdown (ou autre mais bon) vers le BBcode HFR ?  
J'imagine que ça doit être possible d'adapter un truc qui convertit déjà vers du bbcode forum plus classique pour du hfr ?  
Ca serait génial :love:


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 05-04-2019 à 16:03:39    

J'imagine qu'à partir d'un truc commun comme phpbb ça doit être relativement facile (?)
Pour le markdown en entrée il faudrait faire un choix ? J'imagine que tous sont au moins fait pour GFM, autant prendre le markdown de github donc non ?


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 05-04-2019 à 16:04:38    

Bon par contre HFR ne supporte pas pas mal de chose, pas de titres/sous-titres.. :whistle:


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le 04-05-2019 à 23:18:23    


up :o


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed