Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1433 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  • Mise à jour automatique et participative des posts et FP •

 



 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

• Mise à jour automatique et participative des posts et FP •

n°2318726
XaTriX
Now we are all sons of bitches
Posté le 16-07-2018 à 23:56:23  profilanswer
 

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 17-07-2018 à 11:00:33

---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
mood
Publicité
Posté le 16-07-2018 à 23:56:23  profilanswer
 

n°2318727
XaTriX
Now we are all sons of bitches
Posté le 16-07-2018 à 23:56:35  profilanswer
 

LISTE DES FP MISES A JOUR VIA GIT2HFR



Message édité par XaTriX le 18-07-2018 à 12:43:56

---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2318728
XaTriX
Now we are all sons of bitches
Posté le 16-07-2018 à 23:56:38  profilanswer
 

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 17-07-2018 à 11:00:08

---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2318729
XaTriX
Now we are all sons of bitches
Posté le 17-07-2018 à 11:00:52  profilanswer
 

.


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2318730
Vave
♫ Revolution is my name ♫ ★★
Posté le 17-07-2018 à 11:16:55  profilanswer
 

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.


---------------
Bien ouéj Vavounay, belle fun je me dois de l'admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde-
n°2318731
XaTriX
Now we are all sons of bitches
Posté le 17-07-2018 à 13:15:30  profilanswer
 

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

 

XaT


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2318732
Vave
♫ Revolution is my name ♫ ★★
Posté le 17-07-2018 à 14:01:13  profilanswer
 

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


---------------
Bien ouéj Vavounay, belle fun je me dois de l'admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde-
n°2318733
XaTriX
Now we are all sons of bitches
Posté le 18-07-2018 à 12:44:17  profilanswer
 

[:soulafa] Nouveau topic supporté :


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2318734
Philip Mor​ris
:wq
Posté le 19-07-2018 à 08:32:08  profilanswer
 

[:kimonox:6]


---------------
Les bons mots oui, la chienlit non.
n°2318735
Je@nb
In ze cloud
Posté le 05-08-2018 à 16:23:40  profilanswer
 

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

mood
Publicité
Posté le 05-08-2018 à 16:23:40  profilanswer
 

n°2318736
XaTriX
Now we are all sons of bitches
Posté le 05-08-2018 à 19:06:47  profilanswer
 

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

 

XaT


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2318737
roger21
Posté le 05-08-2018 à 19:47:27  profilanswer
 

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


---------------
☭ ni patrie ni patron ‼
n°2318738
roger21
Posté le 05-08-2018 à 19:49:13  profilanswer
 

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


---------------
☭ ni patrie ni patron ‼
n°2318739
XaTriX
Now we are all sons of bitches
Posté le 05-08-2018 à 21:37:36  profilanswer
 

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


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2318740
roger21
Posté le 06-08-2018 à 02:20:52  profilanswer
 

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 ‼
n°2318741
Wolfman
Lobo'tomizado
Posté le 06-08-2018 à 10:45:24  profilanswer
 

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

n°2319009
roger21
Posté le 11-08-2018 à 21:11:11  profilanswer
 

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 ‼
n°2319010
Je@nb
In ze cloud
Posté le 11-08-2018 à 21:20:25  profilanswer
 

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

n°2319011
roger21
Posté le 11-08-2018 à 21:21:41  profilanswer
 

hein ?


---------------
☭ ni patrie ni patron ‼
n°2319012
Je@nb
In ze cloud
Posté le 11-08-2018 à 21:25:04  profilanswer
 

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

n°2319013
roger21
Posté le 11-08-2018 à 21:26:03  profilanswer
 

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 ‼
n°2321017
true-wiwi
Posté le 21-09-2018 à 11:21:48  profilanswer
 

Drap pour l'étude jdd :o


---------------
J'essaie de ne pas vivre en contradiction avec les idées que je ne défends pas.
n°2321027
XaTriX
Now we are all sons of bitches
Posté le 21-09-2018 à 13:31:38  profilanswer
 

pour wat ? :o


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2321028
Je@nb
In ze cloud
Posté le 21-09-2018 à 13:33:22  profilanswer
 

journal du dimanche :o

n°2321029
XaTriX
Now we are all sons of bitches
Posté le 21-09-2018 à 13:41:32  profilanswer
 

étude du journal du dimanche ? wtf :o


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2321030
XaTriX
Now we are all sons of bitches
Posté le 21-09-2018 à 13:41:50  profilanswer
 

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


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2321031
true-wiwi
Posté le 21-09-2018 à 13:42:20  profilanswer
 

Jeu du dictionnaire :jap:


---------------
J'essaie de ne pas vivre en contradiction avec les idées que je ne défends pas.
n°2323151
XaTriX
Now we are all sons of bitches
Posté le 27-10-2018 à 19:40:25  profilanswer
 

@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


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2323154
roger21
Posté le 27-10-2018 à 20:41:48  profilanswer
 

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 ‼
n°2323155
XaTriX
Now we are all sons of bitches
Posté le 27-10-2018 à 20:44:07  profilanswer
 

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


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2323156
roger21
Posté le 27-10-2018 à 21:13:00  profilanswer
 

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 ‼
n°2323157
XaTriX
Now we are all sons of bitches
Posté le 27-10-2018 à 21:14:45  profilanswer
 

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


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2323158
roger21
Posté le 27-10-2018 à 21:31:06  profilanswer
 

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 ‼
n°2323159
XaTriX
Now we are all sons of bitches
Posté le 27-10-2018 à 21:39:08  profilanswer
 

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


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2330792
glubovore
Posté le 23-03-2019 à 13:00:27  profilanswer
 

:hello:

 

Je vous propose une version python qui tourne sur GCP Cloud Functions:
https://bitbucket.org/foormea/hfr-fp-bot/src/master/

 

Pour l'instant j'ai fait mes tests depuis un repo bitbucket et y'a des merdouilles avec l'encoding du texte (accents qui foirent), ce qui va être bien chiant pour nous francophones. Je vais voir si c'est facilement ajustable pour utiliser un repo github à la place.
    edit: c'est bon c'est réglé

 

Pour l'instant ça fonctionne sur le modèle 1 cloud function <=> 1 post à updater <=> 1 repo github.

 

Si vous avez des conseils/remarques/etc je prends :jap:


Message édité par glubovore le 29-03-2019 à 19:44:51
n°2330793
XaTriX
Now we are all sons of bitches
Posté le 23-03-2019 à 13:21:36  profilanswer
 

C'est cool tout ça :)


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2330794
glubovore
Posté le 23-03-2019 à 13:28:12  profilanswer
 

En fait mon truc tel qu'il est c'est bien pour 1 seul post ; mais si on commence à vouloir en faire plusieurs ça va être chiant car il faut 1 cloud function par post, 1 repo git par post, etc. J'essaye de réfléchir à comment ajuster le code pour ça, je regarde comment la solution php de roger fonctionne.

n°2330809
glubovore
Posté le 24-03-2019 à 21:50:35  profilanswer
 

Script ajusté pour du multi-post (et y'a plus de soucis d'encoding au passage). Par contre j'ai enlevé la feature de l'utiliser localement en CLI sinon ça devenait le bordel (et surtout ça sert pas à grand chose).

 

https://bitbucket.org/foormea/hfr-fp-bot


Message édité par glubovore le 29-03-2019 à 19:44:58
n°2330810
XaTriX
Now we are all sons of bitches
Posté le 24-03-2019 à 22:54:41  profilanswer
 

:love:


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
n°2331465
XaTriX
Now we are all sons of bitches
Posté le 05-04-2019 à 14:30:00  profilanswer
 

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:


---------------
eargasm § • Topics JV Rage Nostalgie • Discu Expatriés Toulouse Ryanair
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  • Mise à jour automatique et participative des posts et FP •

 

Sujets relatifs
Conserver la mise en forme Excel après un export dans wordMise en ligne projet Silex
[VBA Excel] Recuperer une couleur mise en forme par conditionMise en forme Format CSV "*.cxr"
recopie automatiqueImpression et mise en page automatique
mise en forme automatique des titres d'un fichier word par un macro v[PHP] Tableau automatique, mais des lignes sautent
Plus de sujets relatifs à : • Mise à jour automatique et participative des posts et FP •


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR