Compare commits

...

9 commits

8 changed files with 85 additions and 10 deletions

28
.github/issue_template.md vendored Normal file
View file

@ -0,0 +1,28 @@
---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Launch bot
3. Type command '...'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. Debian]
- Python Version [e.g. 3.7.4]
**Additional context**
Add any other context about the problem here.

View file

@ -6,7 +6,7 @@ Ici ce trouve le code source du bot provenant du serveur Discord [Aide GNU/Linu
Il vous faut :
- Un ordinateur sous **GNU/Linux** avec une connexion à internet;
- Python3.5 ou + ;
- Python3.7 ou + ;
- Installer ``requirements.txt`` (avec ``pip install -r requirements.txt`` par ex)
### Installation

5
bot.py
View file

@ -38,6 +38,8 @@ l_extensions = (
'cogs.utility',
'cogs.vocal',
'cogs.private',
'cogs.monitoring',
'jishaku'
)
help_attrs = dict(hidden=True, in_help=True, name="DONOTUSE")
@ -68,6 +70,9 @@ class TuxBot(commands.Bot):
f"Impossible de charger l'extension {extension}\n"
f"{type(e).__name__}: {e}{colors.ENDC}", file=sys.stderr)
async def is_owner(self, user: discord.User):
return str(user.id) in config.authorized_id
async def on_command_error(self, ctx, error):
if isinstance(error, commands.NoPrivateMessage):
await ctx.author.send('Cette commande ne peut pas être utilisee '

View file

@ -18,7 +18,7 @@ class Basics(commands.Cog):
ping_res = str(subprocess.Popen(["/bin/ping", "-c1", "discordapp.com"],
stdout=subprocess.PIPE).stdout.read())
formated_res = [item for item in ping_res.split() if 'time=' in item]
result = str(formated_res[0])[5:]
result = self.bot.latency * 1000 # str(formated_res[0])[5:]
if float(result) >= 200:
em = discord.Embed(title="Ping : " + str(result) + "ms",
@ -58,13 +58,13 @@ class Basics(commands.Cog):
"""---------------------------------------------------------------------"""
@commands.command()
async def help(self, ctx):
async def help(self, ctx, page: int = 1):
"""Affiches l'aide du bot"""
page = int(page) if 0 < int(page) < 5 else 1
text = open('texts/help.md').read().split("[split]")
for txt in text:
em = discord.Embed(title='Commandes de TuxBot', description=txt,
em = discord.Embed(title='Commandes de TuxBot', description=text[page - 1],
colour=0x89C4F9)
await ctx.send(embed=em)
await ctx.send(content=f"page {page}/{len(text)}", embed=em)
def setup(bot):

View file

@ -85,10 +85,10 @@ class Identity(commands.Cog):
embed.set_thumbnail(url = result[2])
embed.add_field(name="Nom :", value=result[1], inline=True)
embed.add_field(name="Système d'exploitation :", value=isexist(result[6]), inline=True)
embed.add_field(name="Configuration Système : ", value=isexist(result[7]), inline=True)
embed.add_field(name="Configuration Système : ", value=isexist(result[7]), inline=False)
embed.add_field(name="Date de naissance sur discord : ", value=formated_user_birth, inline=True)
embed.add_field(name="Pays : ", value=isexist(result[8]), inline=True)
embed.add_field(name="Profil sur le web : ", value=f"https://tuxbot.gnous.eu/users/{result[9]}", inline=True)
embed.add_field(name="Profil sur le web : ", value="*indisponible*") # value=f"https://tuxbot.gnous.eu/users/{result[9]}", inline=True)
embed.set_footer(text=f"Enregistré dans le bureau {result[5]} le {formated_cidate}.")
await ctx.send(embed=embed)
except Exception as e:

41
cogs/monitoring.py Normal file
View file

@ -0,0 +1,41 @@
import asyncio
import threading
from aiohttp import web
from discord.ext import commands
from bot import TuxBot
class Monitoring(commands.Cog):
def __init__(self):
self.app = web.Application()
t = threading.Thread(
target=self.run_server,
args=(self.aiohttp_server(),)
)
t.start()
def aiohttp_server(self):
async def hi(request):
return web.Response(text="I'm alive !")
self.app.add_routes([web.get('/', hi)])
runner = web.AppRunner(self.app)
return runner
@staticmethod
def run_server(runner):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(runner.setup())
site = web.TCPSite(runner, '0.0.0.0', 3389)
loop.run_until_complete(site.start())
loop.run_forever()
def setup(bot: TuxBot):
bot.add_cog(Monitoring())

View file

@ -85,6 +85,7 @@ class Sondage(commands.Cog):
end_msg += "\n\"{}\" est le gagnant!".format(top_result)
await ctx.send(end_msg)
else:
await ctx.send("please use `@tuxbot poll` (this is rewrite version in beta")
await ctx.message.delete()
text = open('texts/rpoll.md').read()

View file

@ -1,9 +1,9 @@
pymysql
gtts
beautifulsoup4
lxml==4.2.4
bs4
pytz
requests
wikipedia
pillow
gtts
pillow