From 54e890ab2c0a202b2c4f6c7e7790dad8d9df841d Mon Sep 17 00:00:00 2001 From: timotheyca Date: Wed, 22 Dec 2021 21:11:01 +0300 Subject: [PATCH] updated apis --- example.sh | 1 + requirements.txt | 3 ++- v6d3losyash/app.py | 44 ----------------------------------------- v6d3losyash/run-bot.py | 18 ++++++++--------- v6d3losyash/stop-bot.py | 18 ----------------- 5 files changed, 11 insertions(+), 73 deletions(-) create mode 100644 example.sh delete mode 100644 v6d3losyash/app.py delete mode 100644 v6d3losyash/stop-bot.py diff --git a/example.sh b/example.sh new file mode 100644 index 0000000..e9161ce --- /dev/null +++ b/example.sh @@ -0,0 +1 @@ +docker run -v v6d3losyash:/v6data --env v6ca=da5261eb5232b4b08452f25099b53b59d2e308b86aaf9c4204f0aa92569044d7 --env v6caurl=http://172.18.0.2:5900 --env v6taurl=http://172.18.0.3:5910 --name v6d3losyash -m 100mb --cpus 0,5 --network v6d v6d3losyash diff --git a/requirements.txt b/requirements.txt index 08f9e9e..9780724 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ aiohttp~=3.7.4.post0 discord.py~=1.7.3 -git+https://gitea.ongoteam.net/PTV/v6d1tokens.git@2dca5338ecec2042f731ff2855225417f66e1372 +git+https://gitea.ongoteam.net/PTV/v6d1tokens.git@8b525ee05be22891a1c18d5e96153807f79930be +git+https://gitea.ongoteam.net/PTV/v6d2ctx.git@57919e65069e62fc31666adebd6c107be067b724 diff --git a/v6d3losyash/app.py b/v6d3losyash/app.py deleted file mode 100644 index ba9ed5a..0000000 --- a/v6d3losyash/app.py +++ /dev/null @@ -1,44 +0,0 @@ -import time - -# noinspection PyPackageRequirements -import discord -from aiohttp import web -from nacl.exceptions import BadSignatureError -from v6d0auth import certs - - -def define_routes(routes: web.RouteTableDef, client: discord.Client): - @routes.get('/') - async def home(_request: web.Request): - return web.Response(body='v6d3losyash\n') - - @routes.post('/stop') - async def stop(request: web.Request): - try: - assert abs(float(certs.verify(await request.read())) - time.time()) < 1 - except ValueError: - raise web.HTTPBadRequest - except BadSignatureError: - raise web.HTTPUnauthorized - except AssertionError: - raise web.HTTPRequestTimeout - else: - await client.change_presence(status=discord.Status.offline) - await client.close() - raise web.HTTPOk - - -def app_routes(client: discord.Client) -> web.RouteTableDef: - routes = web.RouteTableDef() - define_routes(routes, client) - return routes - - -def app_with_routes(routes: web.RouteTableDef): - app = web.Application() - app.add_routes(routes) - return app - - -def get_app(client: discord.Client) -> web.Application: - return app_with_routes(app_routes(client)) diff --git a/v6d3losyash/run-bot.py b/v6d3losyash/run-bot.py index 24f054f..3e58404 100644 --- a/v6d3losyash/run-bot.py +++ b/v6d3losyash/run-bot.py @@ -1,16 +1,15 @@ import asyncio from io import StringIO -# noinspection PyPackageRequirements import discord -from v6d0auth.run_app import start_app from v6d1tokens.client import request_token +from v6d2ctx.serve import serve from v6d3losyash import config -from v6d3losyash.app import get_app -loop = asyncio.get_event_loop() -token = loop.run_until_complete(request_token('losyash')) +loop = asyncio.new_event_loop() +asyncio.set_event_loop(loop) +token = loop.run_until_complete(request_token('losyash', 'token')) client = discord.Client( intents=discord.Intents( members=True, @@ -56,7 +55,7 @@ async def on_raw_reaction_add(payload: discord.RawReactionActionEvent): await member.add_roles(role, reason='феноменально') channel: discord.TextChannel = guild.get_channel(config.channel) - await channel.send(f'{escape(str(member))} <:Jesus:586669134406877270>') + await channel.send(f'{escape(str(member))} {member.id} <:Jesus:586669134406877270>') @client.event @@ -65,7 +64,7 @@ async def on_member_join(member: discord.Member): if guild.id != config.guild: return channel: discord.TextChannel = guild.get_channel(config.channel) - await channel.send(f'{escape(str(member))} joined') + await channel.send(f'{escape(str(member))} {member.id} joined') @client.event @@ -74,14 +73,13 @@ async def on_member_remove(member: discord.Member): if guild.id != config.guild: return channel: discord.TextChannel = guild.get_channel(config.channel) - await channel.send(f'{escape(str(member))} left') + await channel.send(f'{escape(str(member))} {member.id} left (joined {member.joined_at})') async def main(): - await start_app(get_app(client)) await client.login(token) await client.connect() if __name__ == '__main__': - loop.run_until_complete(main()) + serve(main(), client, loop) diff --git a/v6d3losyash/stop-bot.py b/v6d3losyash/stop-bot.py deleted file mode 100644 index 8ba72a9..0000000 --- a/v6d3losyash/stop-bot.py +++ /dev/null @@ -1,18 +0,0 @@ -import asyncio -import time - -import aiohttp -from v6d0auth import certs -from v6d0auth.config import host, port - - -async def main(): - request = certs.sign(str(time.time()).encode()) - async with aiohttp.ClientSession() as session: - # noinspection HttpUrlsUsage - async with session.post(f'http://{host}:{port}/stop', data=request) as response: - print(response.status) - - -if __name__ == '__main__': - asyncio.run(main())