change gitlab changelogs + new loading of env variables
This commit is contained in:
parent
49c3f53f42
commit
66c2e2c241
1 changed files with 34 additions and 15 deletions
|
@ -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
|
||||||
|
|
Reference in a new issue