change gitlab changelogs + new loading of env variables

This commit is contained in:
Mylloon 2021-07-28 03:05:41 +02:00
parent 49c3f53f42
commit 66c2e2c241

View file

@ -1,7 +1,9 @@
import re
import json import json
import requests import requests
from re import findall
from time import time from time import time
from os import environ, path
from dotenv import load_dotenv
def map_list_among_us(map): def map_list_among_us(map):
"""Sélecteur de map pour la commande amongus""" """Sélecteur de map pour la commande amongus"""
@ -53,7 +55,7 @@ def cleanCodeStringWithMentionAndURLs(string):
def getMentionInString(string): def getMentionInString(string):
"""récupère les mentions dans un string""" """récupère les mentions dans un string"""
findedMention = [] findedMention = []
for findingMention in re.findall(r'<@[!]?\d*>', string): # récupération mention dans le string for findingMention in findall(r'<@[!]?\d*>', string): # récupération mention dans le string
findedMention.append(findingMention) findedMention.append(findingMention)
findedMention = list(dict.fromkeys(findedMention)) # suppression doublon de mention dans la liste findedMention = list(dict.fromkeys(findedMention)) # suppression doublon de mention dans la liste
return findedMention return findedMention
@ -61,7 +63,7 @@ def getMentionInString(string):
def getURLsInString(string): def getURLsInString(string):
"""récupère les liens dans un string""" """récupère les liens dans un string"""
findedURLs = [] findedURLs = []
for findingMention in re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', string): # récupération URLs dans le string for findingMention in findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', string): # récupération URLs dans le string
findedURLs.append(findingMention) findedURLs.append(findingMention)
return findedURLs return findedURLs
@ -114,19 +116,23 @@ def mentionToUser(mention: str):
"""Récupère une mention et renvois son ID""" """Récupère une mention et renvois son ID"""
return int(mention[2:-1].replace("!","")) return int(mention[2:-1].replace("!",""))
def getChangelogs(version = 'latest'): def getChangelogs(version = 'actual'):
"""Récupère les changements d'une version (par défaut, la dernière en date) et renvois dans l'ordre : url, n° version, changements""" """Récupère les changements d'une version (par défaut, la dernière en date) et renvois dans l'ordre : url, n° version, changements"""
if version != 'latest': if version == 'actual':
version = f'tags/v{version}' version = getActualVersion()
changements = requests.get(f"https://api.github.com/repos/Confrerie-du-Kassoulait/KassouBot/releases/{version}").json() changements = requests.get(f"https://gitlab.com/api/v4/projects/28424435/releases/v{version}")
try:
if changements["message"].startswith("API"): # renvois 0 si c'est une erreur API if changements.status_code != 200: # si pas valide
return 0 return [changements.status_code]
else: # renvois None si aucune version correspondante n'a été trouvée else:
return None code = 200
except:
pass changements = changements.json()
return [changements["html_url"], changements["tag_name"][1:], changements["body"]] return [code, changements["_links"]["self"], changements["tag_name"][1:], changements["description"]]
def getActualVersion():
with open(path.join(path.dirname(path.dirname(path.dirname(__file__))), "README.md"), "r") as file:
return findall(r'https://img.shields.io/badge/version-(\d+\.\d+)', file.readlines()[2])[0]
def isSlash(arg): def isSlash(arg):
"""Regarde si la commande viens d'un slash ou pas, retourne l'argument sans le 'True' si c'est le cas""" """Regarde si la commande viens d'un slash ou pas, retourne l'argument sans le 'True' si c'est le cas"""
@ -154,3 +160,16 @@ async def mySendHidden(
await ctx.send( # sending normal message await ctx.send( # sending normal message
content = message, tts = tts, embed = embed, file = file, files = files, content = message, tts = tts, embed = embed, file = file, files = files,
delete_after = delete_after, allowed_mentions = allowed_mentions) delete_after = delete_after, allowed_mentions = allowed_mentions)
def load(variables):
"""Load env variables"""
keys = {}
load_dotenv() # load .env file
for var in variables:
try:
keys[var] = environ[var]
except KeyError:
print(f"Please set the environment variable {var} (.env file supported)")
exit(1)
return keys