Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposition de README complet (Bot_Base) #58

Merged
merged 6 commits into from
Jun 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions Discord-Bot-main/Bot/DebugBot.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,6 @@ async def __update__(*args, **kwargs):
async def debug_on_message(*args,**kwargs):
return await event.on_message(*args,**kwargs)

async def debug_on_ping(*args,**kwargs):
return await event.on_ping(*args,**kwargs)

async def debug_on_prez(*args,**kwargs):
return await event.on_prez(*args,**kwargs)

Expand Down
5 changes: 3 additions & 2 deletions Discord-Bot-main/Bot/UR-Bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,11 @@ async def on_message(self, message):



@bot.command(name="ping")
@bot.command()
@commands.guild_only()
async def ping(ctx):
await DebugBot.debug_on_ping(ctx)
latency = round(bot.latency * 1000)
await ctx.send(f"Pong ! {latency}ms")



Expand Down
13 changes: 4 additions & 9 deletions Discord-Bot-main/Bot/event.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,21 +88,16 @@
},
}

};
}


def GetMaxStrSizeInArray(array:dict,callback=None):
_size=0;
_size=0
for cmd in array:
_r = callback(cmd)
if(_r > _size):
_size = _r
return _size


async def on_ping(event):
await event.author.send("pong");



async def on_message(event,*args,**kwargs):
Expand Down Expand Up @@ -142,6 +137,6 @@ async def on_help(event,*args):

embed.set_footer(text="Union Roliste commands helper.", icon_url="https://avatars.githubusercontent.com/u/62179928?s=200&v=4")

embed.set_thumbnail(url="https://avatars.githubusercontent.com/u/62179928?s=200&v=4") # set le logo en haut a droit
embed.set_thumbnail(url="https://avatars.githubusercontent.com/u/62179928?s=200&v=4") # set le logo en haut a droit

await event.channel.send(embed=embed);
await event.channel.send(embed=embed)
289 changes: 193 additions & 96 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,128 +1,225 @@
[![forthebadge](https://forthebadge.com/images/badges/cc-nc-sa.svg)](https://forthebadge.com) [![forthebadge](https://forthebadge.com/images/badges/made-with-python.svg)](https://forthebadge.com) [![forthebadge](https://forthebadge.com/images/badges/made-with-markdown.svg)](https://forthebadge.com) ![](https://img.shields.io/badge/Made%20For-DISCORD-blue)
S2P-KB marked this conversation as resolved.
Show resolved Hide resolved
## Bot Python (UR-Bot)

[TOCM]
**Vous trouverez ci-dessous les informations importantes concernant les bots Discord de l'association [Union des Rôlistes](http://unionrolistes.fr) :)**

S2P-KB marked this conversation as resolved.
Show resolved Hide resolved

## Sommaire
├─ [SOMMAIRE](#sommaire)
├─ [LE PROJET](#le-projet)
├─ [BOT_BASE](#bot_base)
│ ├─ [Fonction](#fonction--)
│ └─ [Astuce](#astuce-)
├─ [BOT_PLANNING](#bot_planning)
│ └─ [Utilisation](#utilisation-)
├─ [BOT_PRESENTATION](#bot_presentation)
│ └─ [Utilisation](#utilisation--1)
├─ [INSTALLER ET CONFIGURER LE PROJET EN ENTIER](#installer-et-configurer-le-projet-en-entier)
│ ├─ [Prérequis](#prérequis-)
│ └─ [Démarche](#démarche-)
│ ├─ [1. Créer, personnaliser et configurer tous les bots](#1-créer-personnaliser-et-configurer-tous-les-bots-)
│ ├─ [2. Installer un environnement d'hébergerment (avec une machine Linux-Ubuntu)](#2-installer-un-environnement-dhébergement-avec-une-machine-linux-ubuntu-)
│ └─ [3. Initialiser le bot](#3-initialiser-le-bot-)
├─ [MAINTENANCE](#maintenance-)
├─ [DÉVELOPPEMENT](#développement-)
│ ├─ [Grafcet Bot_Planning](#grafcet-bot_planning-)
│ └─ [Grafcet Bot_Presentation](#grafcet-bot_presentation-)
└─ [CRÉDITS, PARTICIPANTS ET ORGANISATION](#crédits-participants-et-organisation)

[TOC]

---
---
## Le projet
Le projet regroupe trois bots Discord, qui sont Bot_Base, Bot_Planning et Bot_Presentation.

Ils ont chacun un but précis, que vous pouvez trouver en défilant un peu plus la page.

L'ensemble conformise les présentations des utilisateurs et facilite l'annonce d'un évènement.


---
## Bot_Base
### Fonction :
Ce programme **regroupe les développements** communs à [Bot_Planning](https://github.com/UnionRolistes/Bot_Planning_python) et [Bot_Presentation](https://github.com/UnionRolistes/Bot_Presentation).

II **facilite** ainsi **l'installation et la maintenance** des bots.

### Astuce :
Il est à noter que [Bot_Planning](#bot_planning) et [Bot_Presentation](#bot_presentation) fonctionnent tous deux de la manière suivante :

- Un utilisateur entre une commande, qui lui retournera un formulaire en ligne auquel il doit se connecter via discord pour remplir les informations qu'il souhaite.


- Les données entrées sont envoyé (via webhook) au bot en question, qui met les informations renseignées en forme et les envoie ensuite dans le salon approprié.


- De la même manière, le formulaire envoyé par chaque bot est constitué sur la base d'un message déjà envoyé.
Il suffit à l'administrateur du bot de l'initialiser avec la commande **$set <id-message-exemple>**.


---
## Bot_Planning
### Utilisation :
1. L'utilisateur écrit la commande **$cal**.
En message privé, il reçoit un lien web vers un formulaire adapté à la création d'événement.


2. Après avoir reçu les informations renseignées, le bot les met en forme et les publie dans le salon "planning".


3. Une fois publique, l'annonce est encore modifiable ; il suffit d'y répondre sur discord avec la commande **$edit**.


---
## Bot_Presentation
### Utilisation :
1. L'utilisateur écrit la commande **$prez**.
En message privé, il reçoit un lien web vers un formulaire figurant des questions sur son âge, ses passions, sa profession, etc.


2. Le bot met en forme les informations reçues par webhook et les publie dans le salon "presentation".


3. Une fois publique, la présentation est encore modifiable ; il suffit d'y répondre sur discord avec la commande **$edit**.


---
---
## Installer et configurer le projet en entier
## Prérequis :
- Posséder un système Linux-Ubuntu. Si vous possédez un système Windows, alors vous devrez [créer une machine virtuelle](https://www.youtube.com/watch?v=1kZmKhWJtcE) (tuto réalisé par [Numelion-IT](https://www.youtube.com/@numelionIT))
avec une image iso telle téléchargeable [ici](https://www.ubuntu-fr.org/download/).


- Posséder un serveur où héberger les bots.

```
├── Description du projet
├── Languages utilisés
├── Credit , participant, organisation
|
├── 1) Bot Base
│ ├── - But
│ ├── -Installation
│ └── - Usage
|
├── 2.1) Bot-Prez
│ ├── - But
│ ├── - Installation
│ └── - Usage
|
├── 2.2) WebPrez
|
├── 3.1) Bot-planning
| ├── - But
| ├── - Installation
| └── - Usage
|
├── 3.2) Web-Planning
├── - But
├── - Installation
└── - Usage
P.s : L'accès aux programmes est gratuit tant que vous l'hébergez vous-même.
À contrario, l'association Union des Rôlistes est prête à vous fournir ce service pour un euro mensuel.
Si tel est le cas, contactez l'administrateur de l'association (mentions en bas de page) sans suivre ce tutoriel.
```


- Posséder un bot discord (démarche expliquée dans la section ci-dessous)


## Description
> Le BotPresentation(Python3.8) permet à un utilisateur d'accéder à un formulaire de présentation via la commande $prez. Les informations saisies sont ensuite mises en forme et postées sur le discord de l'union des Rôlistes via un Webhook dans la section #presentation
---
## Démarche :
### 1. Créer, personnaliser et configurer tous les bots :
- Rendez-vous sur [ce lien](https://discord.com/developers/applications) et connectez-vous à Discord.

## Languages utilisés
- Py ( Python )
- XML ( eXtensible Markup Language )
- HTML ( eXtensible Markup Language )
- CSS ( eXtensible Markup Language )
- sh ( Bash )

- Cliquez en haut à droite sur le bouton "New Application".

Credits -> [credits.md](https://github.com/UnionRolistes/Bot_Base/blob/main/credits.md)


# 1) Bot Base
- Donnez un nom à votre bot. Lisez et accepter les licences qui vous sont données.

###### https://github.com/UnionRolistes/Bot_Base
Bot_Base est un repo commun aux autres projet.
Il permet de simplifier l'installation d'un ou plusieurs éléments.
### Installation
**Pour une 1ère installation** : ``` "cd /usr/local/src && sudo git clone https://github.com/UnionRolistes/Bot_Base && cd Bot_Base && sudo bash updateBot.sh" ```

**Pour une mise à jour** : ``` "cd /usr/local/src/Bot_Base && sudo git checkout . && sudo git pull && sudo bash updateBot.sh" ```

How to setup URbot - The discord bot for managing servers dedicated to rpgs
---
##### - 1 ) Install a linux based OS (we'll be using Debian as a reference)

##### - 2 ) Install git
- Configurez votre bot à vos envies et vos besoins.

##### - 3 ) ``` "cd /usr/local/src && sudo git clone https://github.com/UnionRolistes/Bot_Base && cd Bot_Base && sudo bash updateBot.sh" ```

**It installs the bot and the 2 sub features** :
- Chercher le token unique à votre bot. Pour se faire : cliquez à gauche sur la section "Bot" et ensuite sur "Reset Token". Acceptez et noter la longue suite de caractères (vous en aurez besoin à l'étape 3).

```
P.s : À noter qu'en perdant le token, vous devrez le reset à nouveau !
De plus, quiconque possédant cet identifiant unique, garde le contrôle total sur le bot. Faîte donc attention !
```

### 2. Installer un environnement d'hébergement (avec une machine Linux-Ubuntu) :
À partir du système Ubuntu, ouvrir le terminal et installer toutes les mises à jour disponibles et les dépendances nécessaires, soit :
- Nettoyer et mettre à jour le système :

``` sudo apt update ; sudo apt upgrade -y ; sudo apt full-upgrade -y ; sudo apt autoremove -y ; sudo apt clean ```

- Apache2 et Git :

``` sudo apt install apache2 -y ; sudo apt install git -y ```

- Python3.8 (version spécifique au projet) :

``` sudo apt install software-properties-common ; sudo add-apt-repository ppa:deadsnakes/ppa ; sudo apt install python3.8 ```


### 3. Initialiser le bot :
- Dans le terminal, cloner le projet avec la commande suivante :

``` cd /usr/local/src && sudo git clone https://github.com/UnionRolistes/Bot_Base && cd Bot_Base && sudo bash updateBot.sh ```


- Quand le programme vous le demande : récupérez le token du bot (précédemment noté) et entrez-le seul au terminal.


- Une fois que vous lisez "Success!", invitez le bot - que vous aviez créée - sur le(s) serveur(s) de votre choix.


- Pour ce faire, retournez sur [votre espace Discord-Développeurs](https://discord.com/developers/applications/),
section "Installation" et créez un lien d'invitation.

1. Bot_Planning and Web_Planning
2. Bot_Presentation and Web_Presentation

##### - 4 ) If you want to choose the features to install --> ```"cd /usr/local/src/Bot_Base && sudo git pull && sudo bash install.sh" Then "sudo bash " ```

##### - 5 ) Start the bot and the web sites with "cd/usr/local/src/Bot_Base && sudo bash start.sh && sudo service apache2 restart "
- Accédez à ce dernier, choisissez la destination du bot et autorisez les permissions nécessaires.

# 2.1) Bot-Prez

###### https://github.com/UnionRolistes/Bot_Presentation
Le BotPresentation(Python3.8) permet à un utilisateur d'accéder à un formulaire de présentation via la commande $prez. Les informations saisies sont ensuite mises en forme et postées sur le discord de l'union des Rôlistes via un Webhook dans la section #presentation

![](https://github.com/UnionRolistes/Bot_Base/blob/main/img/BotPresentation_Grafcet-page-001.jpg?raw=true)
![](https://github.com/UnionRolistes/Bot_Base/blob/main/img/BotPresentation_Grafcet-page-002.jpg?raw=true)

### Installation

**Pour une 1ère installation** : ``` "cd /usr/local/src && sudo git clone https://github.com/UnionRolistes/Bot_Base && cd Bot_Base && sudo bash updateBot.sh" ```

- Enfin, véfiez que les permissions suivantes lui ont bien été attribuées :
**Voir les salons**, **Gérer les webhooks**, **Envoyer des messages** et **Voir les anciens messages**.


### Félicitations ! Tous vos bots sont désormais prêts à l'emploi.


---

- **Pour une mise à jour** : ``` "cd /usr/local/src/Bot_Base && sudo git checkout . && sudo git pull && sudo bash updateBot.sh" ```

# 2.2) WebPrez
---
## Maintenance :
À des fins de sécurité et de performances, il est important de mettre à jour votre système et le projet.

# 3.1) Bot-planning
> - ###### https://github.com/UnionRolistes/Bot_Planning_python
> - Le BotPlanning(Python3.8) et FormulaireJdR (HTML CSS PHP) est un projet lancé a l'initiative de l'Union des Rôlistes (**http://unionrolistes.fr**) un bot discord capable de générer des messages correctement mis en forme, annoncant de prochaine partie de JdR, quel soit physique ou a distance. actuellement les message finaux sont visible sur le discord de l'union des Rôlistes via un Webhook dans la section #Planning-JdR .
### Installation
**Pour une 1ère installation** : "cd /usr/local/src && sudo git clone **https://github.com/UnionRolistes/Bot_Base** && cd Bot_Base && sudo bash updateBot.sh"
Pour ce faire, accédez au terminal et entrez les commandes suivantes :

``` sudo apt update ; sudo apt upgrade -y ; sudo apt full-upgrade -y ; sudo apt autoremove -y ; sudo apt clean ```

``` cd /usr/local/src/Bot_Base && sudo git checkout . && sudo git pull && sudo bash updateBot.sh ```

En cas de souci, ou si vous désirez suggérer une amélioration au programme,
l'association Union des Rôlistes est disponible aux adresses mentionnées à la dernière section.

**Pour une mise à jour** : "cd /usr/local/src/Bot_Base && sudo git checkout . && sudo git pull && sudo bash updateBot.sh"

**how to use (in discord)** une fois sur votre serveur discord, et apres avoir vérifier que le bot (ou role des bot) pouvais ecrire dans le canal où vous vous trouvez ecrivez $cal la commande s'effacera, puis vous receverez un message privé avec les instruction.
---
---
## Développement :
Vous désirez nous venir en aide ? Merci !

# 3.2) Web-Planning
Alors, vous trouverez ci-après les liens vers les dépôts GitHub de [Bot_Planning](https://github.com/UnionRolistes/Bot_Planning_python) et [Bot_Presentation](https://github.com/UnionRolistes/Bot_Presentation).

###### https://github.com/UnionRolistes/Web_Planning
#### Web_Planning : Formulaire de création de partie
Le formulaire permet a un animateur (MJ) de proposer une session de JdR sur un serveur discord. Via la commande $jdr, il recoit un lien vers un formulaire, avec diverses entrées. Une fois le formulaire completé et validé, celui ci est envoyé vers le discord, et l'annonce mise en forme est alors disponible sur le discord dans le canal #planning-jdr, les joueurs potentiels peuvent alors lire et réagir pour s'y inscrire. Ensuite le MJ peut les contacter pour les informations supplémentaires, telles que la creation de personnage.

#### Web_Planning : Calendrier
Calendrier web affichant les parties prévues. Via la commande $cal l'utilisateur reçoit le lien du calendrier Ce calendrier affiche horizontalement les parties prévues, par semaine ou par mois. Cliquer sur un événement donnera accès à plus de détails sur la partie, ainsi qu'un lien vers le message discord pour pouvoir s'y inscrire. Les administrateurs ont accès à une section permettant de pré remplir le formulaire avec les données d'une partie déjà existante, afin de la dupliquer. Ils peuvent aussi afficher tous les détails d'une partie selon une mise en forme leur permettant de copier facilement le texte pour une exportation sur les réseaux sociaux

### Installation
**Pour une 1ère installation** : ``` "cd /usr/local/src && sudo git clone https://github.com/UnionRolistes/Bot_Base && cd Bot_Base && sudo bash updateBot.sh" sudo nano /var/www/html/Web_Planning/php/config.php.default" ``` --> Remplir ce fichier avec le Client ID, Secret ID et Redirect_URI du Bot, trouvable sur Discord developer (**https://discord.com/developers/applications**)
Le projet fonctionne grâce à cinq langages, qui sont **Python**, **XML** (eXtensible Markup Language), **HTML** (HyperText Markup Language), **CSS** (Cascading Style Sheets) et **Bash**.

``` sudo nano /etc/apache2/sites-available/100-UR_Planning.conf``` --> Remplacer "serverName planning.unionrolistes.fr" (ligne 9) par la redirection saisie sur votre hébergeur en ligne
Une question particulière ? L'association Union des Rôlistes est disponible aux adresses mentionnées à la dernière section du fichier.


---
### Grafcet Bot_Planning :
![Grafcet Bot_Planning](img/Grafcet-Planning.png)

**Pour une mise à jour** : ``` "cd /usr/local/src/Bot_Base && sudo git checkout . && sudo git pull && sudo bash updateBot.sh"```

# TODO
https://github.com/orgs/UnionRolistes/projects/1/views/1
S2P-KB marked this conversation as resolved.
Show resolved Hide resolved
---
### Grafcet Bot_Presentation :
![Grafcet_P1 Bot_Presentation](img/BotPresentation_Grafcet-page-001.jpg)
![Grafcet_P2 Bot_Presentation](img/BotPrez_grafcet-p2.jpg)

---
---
## Crédits, participants et organisation
**Le projet est encadré par l'équipe de développement de l'association Union-Rôlistes, qui garde une to-do list,
dont le contenu est accessible à partir de [ce lien](https://github.com/orgs/UnionRolistes/projects/1/views/1).**
**Ci-après les crédits pour [Bot_Base](https://github.com/UnionRolistes/Bot_Base/blob/main/credits.md),
S2P-KB marked this conversation as resolved.
Show resolved Hide resolved
[Bot_Planning](https://github.com/UnionRolistes/Bot_Planning_python/blob/master/src/cog_planning/info/credits.txt) et
[Bot_Presentation](https://github.com/UnionRolistes/Bot_Presentation/blob/master/src/cog_presentation/info/credits.txt).**

**Retrouvons-nous sur [ce site web](https://site.unionrolistes.fr), [sur facebook](https://www.facebook.com/union.rolistes/)
ou grâce au [serveur discord de l'association](http://unionrolistes.fr).**
### À bientôt !
Binary file removed img/BotPresentation_Grafcet-page-002.jpg
Binary file not shown.
Binary file added img/BotPrez_grafcet-p2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading