Giter VIP home page Giter VIP logo

blagues-api's Introduction

Blagues API

Blagues API

API de Blagues françaises collaborative et Open Source

Jokes Contributeurs Stars Licence


Modules

Afin de simplifier l'utilisation de Blagues API, des modules ont été créés :

  • npm
  • pypi python
  • php Packagist PHP Version Support

Dans le cas où aucun module n'a été créé vous pouvez utiliser l'api standard.

Utilisation

Retrouvez la documentation de l'API ainsi des modules directement sur le site blagues-api.fr.

Contribuer

Le projet est open-source ce qui signifie que vous pouvez contribuer et faire évoluer le projet.
Rendez-vous sur la page des issues, sélectionnez une issue qui vous intéresse et faites une demande pour y être assigné.

Les issues ayant le label good first issue sont les plus simples.

Installation de Docker

Le projet fonctionne avec Docker, il vous permettra d'obtenir le même environnement qu'en production.
Si vous êtes sous Windows ou Mac, il vous faudra installer Docker Desktop.

⚠️ Si vous souhaitez tout de même contribuer au projet sans utiliser Docker veillez à installer et exécuter les mêmes scripts que ceux qui sont faits dans le fichier Dockerfile.dev de développement, ensuite lancez l'instance de développement avec la commande yarn dev:legacy.

Installation des dépendances du projet

yarn install # npm install

Génération de l'image de développement Docker

yarn dev:build # npm run dev:build

Lancement de l'instance de développement

yarn dev # npm run dev

🎉 Votre instance est lancée, vous pouvez dès à présent vous lancer dans le développement de l'issue choisie


FAQ

  • Pouvons-nous proposer des blagues ?
    • Oui bien sûr en rejoignant le serveur Blagues API, des commandes telles que /suggestion ont été créé afin de rendre la proposition de nouvelles blagues plus facile !

Support

Voici quelques liens pour obtenir de l'aide :


Licence

Licence

Copyright 2020-2024 © DraftMan.

blagues-api's People

Contributors

achille-bsc avatar aeris1one avatar charleprr avatar dependabot[bot] avatar draftproducts avatar erwangit avatar mlleesther avatar mrpraingle avatar nicolas-cunin-lyra avatar omicron321 avatar petittitouan avatar renovate-bot avatar renovate[bot] avatar sampicbe avatar saphirrc avatar tygourm avatar woomymy avatar yoransys avatar zuruuh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

blagues-api's Issues

Statistiques via context menu

Je propose l'ajout d'une commande de type ContextMenu User pour la commande de Stats qui permettrais d'avoir les statistiques d'un utilisateur précis en faisant simplement un clic droit sur l'utilisateur en question. Le message qui en résultera serais éphémère pour que cette commande puisse être utilisée dans n'importe quel salon sans problème.

Bump la version de node du dockerfile

La version 16.14 de node n'est plus dispo sur le docker hub, donc ce serait pas mal de migrer sur la version 16.15. (À l'heure actuelle le script dev:build fail à cause de ça)

Edit: my bad le soucis venais de moi, desolé pour le désagrément

Améliorer le sticky messages

Pourquoi ne pas relancer les stickys message quand il y'a une blague d'ajouté cela permettrais d'avoir toujours le bon nombre de blagues d'indiqué ?
Ce n'est pas grand chose mais sa serais toujours un plus je pense 🤷‍♂️

Ajout d'un /report pour les doublons

Personnellement, je trouve ça assez relou de partager les ID des blagues doublons pour que Draft les supprime. C'est long, pas hyper pratique, et ça doit sûrement prendre sur son temps.

Donc je me dis, en ajout de la refonte du système de suggestions, pourquoi pas ajouter un /report ? Avec un nouveau salon et tout et tout, ça fonctionnerait pareil que les blagues / corrections mais ça ne rapporterait que 5 points, et le salon serait réservé au parrains (ça ne sert à rien aux membres de connaître les doublons).

Les membres auront juste à faire un /report <ID1> <ID2> pour qu'un EMBED contenant les deux blagues soit envoyé dans un salon #doublons. Vous en pensez quoi ?

Ne plus encombrer les salons suggestion/correction

Je propose de désencombré ces salons en supprimant les messages au moment ou celle ci sont migré ou non migré sa ferais beaucoup moins de message dans le salon est de toute façon il y'a le salon logs qui les regroupe tous ..
Cela permettrais au membre de pas remonter 300 blagues migré ou pas pour ajouté un emoji a une blague et permettrais d'avoir des salons beaucoup plus propres 😄

Point dans la commande "/stats"

Je propose que pour la commandes /stats les points sont ceux des blagues approuvées et non pas les blagues en général.

image

Passer tous les messages de confirmation en ephemeral

Il faudrait passer tous les messages des actions pour valider une suggestion/correction en ephemeral

Actuellement, tous les messages de validation pour dire que la correction a été validé ou qu'une blague a été ajoutée à l'API ne sont pas ephemeral et il faut passer derrière pour les supprimer manuellement

Correction message

Hello 👋 !
Je pensais que ce serait peut-être plus cohérent de mettre le message de confirmation lors de la proposition d'une correction en éphémère, comme pour le message de suggestion. Ou alors passer celui de suggestion en message non-éphémère... 🤷 comme vous préférez 🙃

Capture d’écran 2022-07-08 à 03 41 25

Amélioration du module reminders

Quelques amélioration:

  • Le titre passe en nom de l'auteur + Icon du bot
  • Un nouveau titre qui changera de typo dynamiquement
  • Fix du footer qui s'afficher pas si il y avais seulement une page
  • Si il y a plus de deux page l'icone du bot s'affiche dans le footer

Refonte du système de statistiques

Pour le nouveau système de statistiques, il est prévu de donner plus ou moins de points en fonction de l'appréciation de la blague. Chaque action donne un certain nombre de points.

Système de points

Action Points
Proposition d'une blague +10 points
Correction d'une blague +7 points
Approbation d'une blague* +4 points
Désapprobation d'une blague* +4 points
Vote d'une blague via une réaction** +2 points

* Points pour l'approbation d'une blague pour un parrain.
** Les votes via réactions ne seront pas comptabilisés pour les parrains.

Points bonus :

Action Points
Approbation d'un parrain +2 points
Désapprobation d'un parrain -2 points
Vote d'un membre positif +1 point
Vote d'un membre négatif -1 point

Pouvoir ignorer des types de blagues en tant que parrain

Ajouter la possibilité de pouvoir ignorer certains types de blagues en tant que parrain pour éviter notamment d'être mentionné pour l'approbation des corrections/suggestions des blagues dont le type est ignoré.
On peut également faire en sorte que lorsque l'on appuie sur le bouton "Mes propositions", les blagues ignorés soient affichée, mais qu'elles soient barrées.

La configuration de cela se ferrait via une commande Slash, par exemple /ignore avec comme paramètre les types de blagues actuellement disponible sur Blagues API et qui serait réservée aux parrains leur permettant de désactiver ou réactiver un type de blague à n'importe quel moment.

Ameliorations des commandes stats

Je propose de séparer la commande en deux commands :

  • 1 = leaderbord => Affiche les toutes les statistiques
  • 2 = stats => Affiche les stats de l'utilisateur/d'un utilisateur

Amélioration reminder

Ajouter un bouton sous le message de reminder pour que celui qui clique puisse voir en message éphémère la liste des Suggestions et Corrections sur lesquelles il peut interagir (Approuver, Désapprouver)

Soucis de grammaire divers

J'ai vu quelques soucis de grammaire ici et là, je les report ici.

Quand on envoie une suggestion, "La blague à été envoyée". Il n'y a pas d'accent sur le "a".
Sur l'EMBED des #suggestions et #corrections, "Elles sont toutes issues de ce salon proposées par la communauté.". Je trouve ça assez facile à mal interpréter. Il faudrait ajouter une virgule juste après "salon".
Dans la description du #suggestions, "Pensez a respecter le format, sans quoi elles ne seront pas acceptées". Il faut, cette fois, un accent sur le "à".
Pour chipoter, vu que "API" est écrit en majuscules partout, surtout dans le nom du bot, peut-être changer la description des deux précédents salons : "pour les retrouver dans l'api", "que vous trouvez dans l'api" : "dans l'API"

Changer la règle de vote d'une blague ayant une correction en cours

Lorsqu'une blague a une correction en cours et qu'elle n'a pas été ajoutée ou refusée, on ne peut pas l'approuver sans approuver la correction ou la désapprouver sans désapprouver la correction. Mais et si la correction ne nous convient pas ? On la désapprouve. Et si la blague est bien, on ne peut pas l'approuver. C'est dommage, il faudrait faire en sorte que si l'on veuille donner son avis sur une suggestion, notre avis sur la correction ne compte pas.

Refonte de la commande stats (global)

Je propose la refonte de la commande stats pour compléter l'issues #198 :

  • Celle ci serais sous forme de page.
  • Un maximum de 25 utilisateurs par page.
  • Changer de pages via des boutons ( <= | - | => )

Problème lors de l'approbaion d'une blague

Petit truc, totalement logique mais pas très pratique, on ne peut pas approuver une blague après y avoir fait une correction, vu qu'il faut approuver cette correction mais qu'on ne peut pas approuver les siennes. Exemple pour être plus clair : La blague c'est "bananne", je la corrige en "Banane", et après je ne peux pas l'approuver.

Impossibilité de voir les statistiques globales (voulu ?)

Tout à l'heure, j'ai fait un ptit /stats comme ça et... Le /stats sans choisir d'options user renvoie les stats de l'auteur de la commande et plus les statistiques globales.

C'est voulu ou pas ? C'était drôlement pratique pour se repérer... C'est en lien avec le nouveau système de suggestions ?

Amélioration des hypertextes

Yo ! Suite à l'approbation d'une blague dont je n'avais pas approuvé la correction, cet EMBED s'est envoyé :

image

Du coup, je me disais : "Et si on rajoutait un lien hypertexte à la fin, à cette suggestion, comme ça par exemple : cette suggestion ?"

Et aussi corriger la faute "ai été corrigée" en "ait été corrigée", tant qu'à faire

Ajouter un système de rappels pour les parrains

En fin de journée (avec un Cron), le bot enverrait un message dans un salon avec une liste des actions que chaque Parain pourrait effectuer, on pourrait imaginer le format suivant:

<Mentions des parrains concernés dans le message>

[Suggestion](lien) <émojis des parrains>
[Correction](lien) <émojis des parrains>

Afin d'éviter les mentions abusives pour une seule action, on pourrait imaginer qu'on mentionnerait que les parrains qui ont plus de 2 ou 3 options.

Amélioration et uniformisation des couleurs

Blague proposée: Bleu
Blague acceptée: Vert
Blague refusée: Rouge
Blague en cours de correction: Jaune

Correction proposée: Bleu
Correction acceptée: Vert
Correction refusée: Rouge
Correction remplacée: Jaune

Pouvoir retirer son appréciation de parrain

Jusqu'ici, après approbation / désapprobation, c'est impossible de retirer son avis. Ca pourrait être plus simple par exemple si on misclicke et qu'on désapprobe une de ses propres blagues / corrections et qu'on ne peut donc pas mettre une approbation à la place

Proposition de endpoint

Serait-il possible d'avoir des endpoints :

  • soit pour obtenir toutes les blagues d'un coup
  • soit obtenir le nombre total de blague
  • soit avoir des filtres par types, pour obtenir toutes les blagues d'un type (merci Zuruh)

Statistiques "à long terme"

Je propose un truc pour compléter l'issue #198, ça serait que l'activité dans le serveur soit prise en compte dans les statistiques. Ce serait pas beaucoup, mais par exemple à chaque mois d'inactivité (pour faire large) des points soient retirés des statistiques, ou ajoutés en bonus.

Par exemple, si le membre est actif, des points (jusqu'à, allez... 50) peuvent s'ajouter aux statistiques sous la forme de "Activité sur le serveur"

Ah aussi, peut-être essayer de comptabiliser l'activité Github aussi, dans la même catégorie (elle deviendrait donc "Activité sur le projet") ou sur une autre qui serait "Activité sur le Github".

Utilisation des modals

Vu qu'assez récemment (je crois) les modals sont sortis, et que je trouve que ça aiderait très bien pour le système de corrections, je propose de les y ajouter.

Ce que je veux dire par là, c'est qu'actuellement, il faut des intents pour les messages, et à propos de messages, contrairement aux suggestions, quand quelqu'un veut faire une correction, des messages inutiles sont envoyés dans le #commandes. En plus, j'ai vu très peu de bots utiliser cette feature, et c'est dommage, mais en même temps ça ferait passer Blagues API comme un bot encore mieux que ce qu'il ne l'est déjà 😁.

Avec ça, plus aucun souci à propos des messages ! Les récents problèmes où la couleur et l'avatar customisés de l'EMBED disparaissaient ne seraient plus qu'un mauvais souvenir. Enfin j'espère.

Pourquoi un field ?

Sur l'embed des /stats, dans tous les cas, il y a un field "Statistiques globales". Ce qui voudrait dire qu'il aurait un autre field, mais il n'est disponible que pour les parrains. Je trouverais donc plus logique de juste mettre une description à l'EMBED plutôt qu'un field si le membre à afficher les statistiques n'est pas parrain.

Ajout automatique de rôles

  • Ajout automatique du rôle blagueur lors d'une blague approuvée
  • Ajout automatique du rôle correcteur lors d'une correction approuvée

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • fix(deps): update dependency @sentry/node to v8
  • fix(deps): update prisma dependencies to v5 (major) (@prisma/client, prisma)
  • 🔐 Create all rate-limited PRs at once 🔐

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

docker-compose
docker-compose.dev.yml
  • postgres 13
docker-compose.yml
  • postgres 13
dockerfile
docker/Dockerfile
  • node 20.3
docker/Dockerfile.dev
  • node 20.3
github-actions
.github/workflows/ci.yml
  • actions/checkout master
  • actions/setup-node v4.0.1@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8
  • actions/cache v3.3.1@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8
npm
package.json
  • @fastify/cors ^8.3.0
  • @fastify/formbody ^7.4.0
  • @octokit/rest ^19.0.11
  • @prisma/client ^4.16.2
  • @sapphire/async-queue ^1.5.0
  • @sentry/integrations ^7.54.0
  • @sentry/node ^7.54.0
  • @sentry/tracing ^7.54.0
  • babel-plugin-prismjs ^2.1.0
  • common-tags ^1.8.2
  • dayjs ^1.11.8
  • diff ^5.1.0
  • discord-api-types ^0.37.43
  • discord.js ^14.11.0
  • dotenv ^14.3.2
  • fastify ^4.18.0
  • fastify-plugin ^4.5.0
  • got ^11.8.6
  • jsonwebtoken ^9.0.0
  • lodash ^4.17.21
  • node-schedule ^2.1.1
  • prismjs ^1.29.0
  • require-all ^3.0.0
  • sharp ^0.32.1
  • string-similarity ^4.0.4
  • @commitlint/cli ^17.8.1
  • @commitlint/config-conventional ^17.8.1
  • @types/common-tags ^1.8.1
  • @types/diff ^5.0.3
  • @types/jsonwebtoken ^9.0.2
  • @types/lodash ^4.14.195
  • @types/node ^18.16.17
  • @types/node-schedule ^2.1.0
  • @types/require-all ^3.0.3
  • @types/sharp ^0.31.1
  • @types/source-map-support ^0.5.6
  • @types/string-similarity ^4.0.0
  • @typescript-eslint/eslint-plugin ^5.62.0
  • @typescript-eslint/parser ^5.62.0
  • eslint ^8.57.0
  • eslint-config-prettier ^8.10.0
  • eslint-plugin-prettier ^4.2.1
  • husky ^8.0.3
  • lint-staged ^13.3.0
  • prettier ^2.8.8
  • prisma 4.16.2
  • tsc-watch ^6.0.4
  • typescript ^4.9.5

  • Check this box to trigger a request for Renovate to run again on this repository

Réécriture complète du projet

Dans la volontée de faire évoluer ce projet, je penses qu'il serait intéressant de faire une réécriture complète de Blagues-API avec des technologies plus maintenues, plus stable et plus poussées.

Une branche dev permettra notamment cette évolution en douceur tout en gardant la version master pour la version actuelle.
L'idéal serait de n'avoir aucunes breaking-changes pour cette réécriture de sorte que les paquets et développeurs se servant de la version actuelle soient impactés.

A l'heure actuelle je penses notamment à plusieurs changements que la réécriture permettrait:

Ejs étant un simple moteur de templating, le passage à NuxtJs pourrait être fait avec fastify-nuxtjs ou depuis la création d'un double proxy avec /api qui pointerait vers Fastify et / qui pointerait vers NuxtJs.

Une roadmap sera établie, n'hésitez pas à apporter votre aide ou vos idées par biais de d'issues ou de pull-requests !

Aperçu du /leaderboard

Sur la commande /leaderboard je pense que ce serait une bonne idée de mettre en gras la ligne qui correspond à l'utilisateur ayant fais la commande. Cela permettrais de faciliter la lecture de notre propre classement car la plupart du temps, on met un peut de temps à se trouver pour savoir combien on est dans le classement.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.