updated apis
This commit is contained in:
parent
3a3b6edf3e
commit
54e890ab2c
1
example.sh
Normal file
1
example.sh
Normal file
@ -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
|
@ -1,3 +1,4 @@
|
|||||||
aiohttp~=3.7.4.post0
|
aiohttp~=3.7.4.post0
|
||||||
discord.py~=1.7.3
|
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
|
||||||
|
@ -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))
|
|
@ -1,16 +1,15 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
from io import StringIO
|
from io import StringIO
|
||||||
|
|
||||||
# noinspection PyPackageRequirements
|
|
||||||
import discord
|
import discord
|
||||||
from v6d0auth.run_app import start_app
|
|
||||||
from v6d1tokens.client import request_token
|
from v6d1tokens.client import request_token
|
||||||
|
from v6d2ctx.serve import serve
|
||||||
|
|
||||||
from v6d3losyash import config
|
from v6d3losyash import config
|
||||||
from v6d3losyash.app import get_app
|
|
||||||
|
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.new_event_loop()
|
||||||
token = loop.run_until_complete(request_token('losyash'))
|
asyncio.set_event_loop(loop)
|
||||||
|
token = loop.run_until_complete(request_token('losyash', 'token'))
|
||||||
client = discord.Client(
|
client = discord.Client(
|
||||||
intents=discord.Intents(
|
intents=discord.Intents(
|
||||||
members=True,
|
members=True,
|
||||||
@ -56,7 +55,7 @@ async def on_raw_reaction_add(payload: discord.RawReactionActionEvent):
|
|||||||
await member.add_roles(role, reason='феноменально')
|
await member.add_roles(role, reason='феноменально')
|
||||||
|
|
||||||
channel: discord.TextChannel = guild.get_channel(config.channel)
|
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
|
@client.event
|
||||||
@ -65,7 +64,7 @@ async def on_member_join(member: discord.Member):
|
|||||||
if guild.id != config.guild:
|
if guild.id != config.guild:
|
||||||
return
|
return
|
||||||
channel: discord.TextChannel = guild.get_channel(config.channel)
|
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
|
@client.event
|
||||||
@ -74,14 +73,13 @@ async def on_member_remove(member: discord.Member):
|
|||||||
if guild.id != config.guild:
|
if guild.id != config.guild:
|
||||||
return
|
return
|
||||||
channel: discord.TextChannel = guild.get_channel(config.channel)
|
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():
|
async def main():
|
||||||
await start_app(get_app(client))
|
|
||||||
await client.login(token)
|
await client.login(token)
|
||||||
await client.connect()
|
await client.connect()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
loop.run_until_complete(main())
|
serve(main(), client, loop)
|
||||||
|
@ -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())
|
|
Loading…
Reference in New Issue
Block a user