mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-27 13:34:28 +00:00
__screams__ I BROKE EVERYTHING
This commit is contained in:
parent
8281702706
commit
5181fde3e6
6 changed files with 52 additions and 75 deletions
21
poetry.lock
generated
21
poetry.lock
generated
|
@ -26,17 +26,16 @@ python-versions = ">=3.5.3"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "attrs"
|
name = "attrs"
|
||||||
version = "19.3.0"
|
version = "20.1.0"
|
||||||
description = "Classes Without Boilerplate"
|
description = "Classes Without Boilerplate"
|
||||||
category = "main"
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
azure-pipelines = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "pytest-azurepipelines"]
|
dev = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "sphinx-rtd-theme", "pre-commit"]
|
||||||
dev = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "pre-commit"]
|
docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"]
|
||||||
docs = ["sphinx", "zope.interface"]
|
tests = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
|
||||||
tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bcrypt"
|
name = "bcrypt"
|
||||||
|
@ -369,7 +368,7 @@ requests = "*"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "royalnet"
|
name = "royalnet"
|
||||||
version = "5.11.0"
|
version = "5.11.2"
|
||||||
description = "A multipurpose bot and web framework"
|
description = "A multipurpose bot and web framework"
|
||||||
category = "main"
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
|
@ -623,7 +622,7 @@ multidict = ">=4.0"
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "1.0"
|
lock-version = "1.0"
|
||||||
python-versions = "^3.8"
|
python-versions = "^3.8"
|
||||||
content-hash = "b45296e9be3f2ad43dd04bc9359fd9bfce913970a0dc06dd6027726bfa8c9858"
|
content-hash = "18a585dcd6662c69d9fd39c9c683270e55ff4636addc591f539385f844a9f9d9"
|
||||||
|
|
||||||
[metadata.files]
|
[metadata.files]
|
||||||
aiohttp = [
|
aiohttp = [
|
||||||
|
@ -645,8 +644,8 @@ async-timeout = [
|
||||||
{file = "async_timeout-3.0.1-py3-none-any.whl", hash = "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3"},
|
{file = "async_timeout-3.0.1-py3-none-any.whl", hash = "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3"},
|
||||||
]
|
]
|
||||||
attrs = [
|
attrs = [
|
||||||
{file = "attrs-19.3.0-py2.py3-none-any.whl", hash = "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"},
|
{file = "attrs-20.1.0-py2.py3-none-any.whl", hash = "sha256:2867b7b9f8326499ab5b0e2d12801fa5c98842d2cbd22b35112ae04bf85b4dff"},
|
||||||
{file = "attrs-19.3.0.tar.gz", hash = "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"},
|
{file = "attrs-20.1.0.tar.gz", hash = "sha256:0ef97238856430dcf9228e07f316aefc17e8939fc8507e18c6501b761ef1a42a"},
|
||||||
]
|
]
|
||||||
bcrypt = [
|
bcrypt = [
|
||||||
{file = "bcrypt-3.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c95d4cbebffafcdd28bd28bb4e25b31c50f6da605c81ffd9ad8a3d1b2ab7b1b6"},
|
{file = "bcrypt-3.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c95d4cbebffafcdd28bd28bb4e25b31c50f6da605c81ffd9ad8a3d1b2ab7b1b6"},
|
||||||
|
@ -920,8 +919,8 @@ riotwatcher = [
|
||||||
{file = "riotwatcher-3.0.0.tar.gz", hash = "sha256:bf8b8eb7e13c794730c18cd7846513cf22295a068204433117ce4d83a25b0fd2"},
|
{file = "riotwatcher-3.0.0.tar.gz", hash = "sha256:bf8b8eb7e13c794730c18cd7846513cf22295a068204433117ce4d83a25b0fd2"},
|
||||||
]
|
]
|
||||||
royalnet = [
|
royalnet = [
|
||||||
{file = "royalnet-5.11.0-py3-none-any.whl", hash = "sha256:cb2ed753044ae563b73389acce4c9c0b0b4a4cb2cb5bc2bc0197a91478a12575"},
|
{file = "royalnet-5.11.2-py3-none-any.whl", hash = "sha256:443c5e27dd60767ed88530f5c16d349a7353fbdd9177e0c6260d230565db2bc1"},
|
||||||
{file = "royalnet-5.11.0.tar.gz", hash = "sha256:aab356a1a845a893c2f1c4e96ec01faf799c9efb5041451a25aa3264f8926859"},
|
{file = "royalnet-5.11.2.tar.gz", hash = "sha256:95368b1f0ffa3390876643d3958dc3e8d62c788d78a5487213a204ebe4f3dfe7"},
|
||||||
]
|
]
|
||||||
royalspells = [
|
royalspells = [
|
||||||
{file = "royalspells-3.2.tar.gz", hash = "sha256:2bd4a9a66514532e35c02c3907425af48c7cb292364c4843c795719a82b25dfe"},
|
{file = "royalspells-3.2.tar.gz", hash = "sha256:2bd4a9a66514532e35c02c3907425af48c7cb292364c4843c795719a82b25dfe"},
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
itsdangerous = "^1.1.0"
|
itsdangerous = "^1.1.0"
|
||||||
|
|
||||||
[tool.poetry.dependencies.royalnet]
|
[tool.poetry.dependencies.royalnet]
|
||||||
version = "~5.11.0"
|
version = "~5.11.2"
|
||||||
# Maybe... there is a way to make these selectable?
|
# Maybe... there is a way to make these selectable?
|
||||||
extras = [
|
extras = [
|
||||||
"telegram",
|
"telegram",
|
||||||
|
|
|
@ -22,7 +22,7 @@ from .help import HelpCommand
|
||||||
from .leagueoflegends import LeagueoflegendsCommand
|
from .leagueoflegends import LeagueoflegendsCommand
|
||||||
from .magickfiorygi import MagickfiorygiCommand
|
from .magickfiorygi import MagickfiorygiCommand
|
||||||
from .magicktreasure import MagicktreasureCommand
|
from .magicktreasure import MagicktreasureCommand
|
||||||
from .matchmaking import MatchmakingCommand
|
# from .matchmaking import MatchmakingCommand
|
||||||
from .ping import PingCommand
|
from .ping import PingCommand
|
||||||
from .pmots import PmotsCommand
|
from .pmots import PmotsCommand
|
||||||
from .dog import DogCommand
|
from .dog import DogCommand
|
||||||
|
@ -63,7 +63,7 @@ available_commands = [
|
||||||
LeagueoflegendsCommand,
|
LeagueoflegendsCommand,
|
||||||
MagickfiorygiCommand,
|
MagickfiorygiCommand,
|
||||||
MagicktreasureCommand,
|
MagicktreasureCommand,
|
||||||
MatchmakingCommand,
|
# MatchmakingCommand,
|
||||||
PingCommand,
|
PingCommand,
|
||||||
PmotsCommand,
|
PmotsCommand,
|
||||||
DogCommand,
|
DogCommand,
|
||||||
|
|
|
@ -1,25 +1,11 @@
|
||||||
# Imports go here!
|
# Imports go here!
|
||||||
from .discord_cv import DiscordCvEvent
|
from .discord_cv import DiscordCvEvent
|
||||||
from .discord_summon import DiscordSummonEvent
|
|
||||||
from .discord_play import DiscordPlayEvent
|
|
||||||
from .discord_skip import DiscordSkipEvent
|
|
||||||
from .discord_queue import DiscordQueueEvent
|
|
||||||
from .discord_pause import DiscordPauseEvent
|
|
||||||
from .discord_playable import DiscordPlaymodeEvent
|
|
||||||
from .discord_lazy_play import DiscordLazyPlayEvent
|
|
||||||
from .telegram_message import TelegramMessageEvent
|
from .telegram_message import TelegramMessageEvent
|
||||||
from .pong import PongEvent
|
from .pong import PongEvent
|
||||||
|
|
||||||
# Enter the commands of your Pack here!
|
# Enter the commands of your Pack here!
|
||||||
available_events = [
|
available_events = [
|
||||||
DiscordCvEvent,
|
DiscordCvEvent,
|
||||||
DiscordSummonEvent,
|
|
||||||
DiscordPlayEvent,
|
|
||||||
DiscordSkipEvent,
|
|
||||||
DiscordQueueEvent,
|
|
||||||
DiscordPauseEvent,
|
|
||||||
DiscordPlaymodeEvent,
|
|
||||||
DiscordLazyPlayEvent,
|
|
||||||
TelegramMessageEvent,
|
TelegramMessageEvent,
|
||||||
PongEvent,
|
PongEvent,
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
from .royalqueue import RoyalQueue
|
# from .mmtask import MMTask
|
||||||
from .royalpool import RoyalPool
|
|
||||||
from .mmtask import MMTask
|
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"RoyalQueue",
|
# "MMTask",
|
||||||
"RoyalPool",
|
|
||||||
"MMTask",
|
|
||||||
]
|
]
|
||||||
|
|
|
@ -162,28 +162,30 @@ class MMTask:
|
||||||
user = await data.get_author(error_if_none=True)
|
user = await data.get_author(error_if_none=True)
|
||||||
|
|
||||||
# Get the related MMEvent
|
# Get the related MMEvent
|
||||||
mmevent: MMEvent = await ru.asyncify(data.session.query(self._EventT).get, self.mmid)
|
async with data.session_acm() as session:
|
||||||
|
mmevent: MMEvent = await ru.asyncify(session.query(self._EventT).get, self.mmid)
|
||||||
|
|
||||||
# Check if the user had already responded
|
# Check if the user had already responded
|
||||||
mmresponse: MMResponse = await ru.asyncify(
|
mmresponse: MMResponse = await ru.asyncify(
|
||||||
data.session.query(self._ResponseT).filter_by(user=user, mmevent=mmevent).one_or_none
|
session.query(self._ResponseT).filter_by(user=user, mmevent=mmevent).one_or_none
|
||||||
)
|
)
|
||||||
|
|
||||||
if mmresponse is None:
|
if mmresponse is None:
|
||||||
# If they didn't respond, create a new MMResponse
|
# If they didn't respond, create a new MMResponse
|
||||||
mmresponse = self._ResponseT(user=user, mmevent=mmevent, choice=choice)
|
# noinspection PyArgumentList
|
||||||
data.session.add(mmresponse)
|
mmresponse = self._ResponseT(user=user, mmevent=mmevent, choice=choice)
|
||||||
|
session.add(mmresponse)
|
||||||
|
|
||||||
# Drop fiorygi
|
# Drop fiorygi
|
||||||
if random.randrange(100) < self.command.config["Matchmaking"]["fiorygi_award_chance"]:
|
if random.randrange(100) < self.command.config["Matchmaking"]["fiorygi_award_chance"]:
|
||||||
await FiorygiTransaction.spawn_fiorygi(data, user, 1, "aver risposto a un matchmaking")
|
await FiorygiTransaction.spawn_fiorygi(data, user, 1, "aver risposto a un matchmaking")
|
||||||
else:
|
else:
|
||||||
# Change their response
|
# Change their response
|
||||||
mmresponse.choice = choice
|
mmresponse.choice = choice
|
||||||
try:
|
try:
|
||||||
await data.session_commit()
|
await ru.asyncify(session.commit)
|
||||||
except psycopg2.Error:
|
except psycopg2.Error:
|
||||||
raise rc.UserError("Hai già risposto nello stesso modo a questo matchmaking.")
|
raise rc.UserError("Hai già risposto nello stesso modo a questo matchmaking.")
|
||||||
|
|
||||||
await self.telegram_channel_message_update()
|
await self.telegram_channel_message_update()
|
||||||
|
|
||||||
|
@ -196,7 +198,8 @@ class MMTask:
|
||||||
user = await data.get_author(error_if_none=True)
|
user = await data.get_author(error_if_none=True)
|
||||||
|
|
||||||
# Get the related MMEvent
|
# Get the related MMEvent
|
||||||
mmevent: MMEvent = await ru.asyncify(data.session.query(self._EventT).get, self.mmid)
|
async with data.session_acm() as session:
|
||||||
|
mmevent: MMEvent = await ru.asyncify(session.query(self._EventT).get, self.mmid)
|
||||||
|
|
||||||
# Ensure the user has the required roles to start the matchmaking
|
# Ensure the user has the required roles to start the matchmaking
|
||||||
if user != mmevent.creator and "admin" not in user.roles:
|
if user != mmevent.creator and "admin" not in user.roles:
|
||||||
|
@ -214,7 +217,8 @@ class MMTask:
|
||||||
user = await data.get_author(error_if_none=True)
|
user = await data.get_author(error_if_none=True)
|
||||||
|
|
||||||
# Get the related MMEvent
|
# Get the related MMEvent
|
||||||
mmevent: MMEvent = await ru.asyncify(data.session.query(self._EventT).get, self.mmid)
|
async with data.session_acm() as session:
|
||||||
|
mmevent: MMEvent = await ru.asyncify(session.query(self._EventT).get, self.mmid)
|
||||||
|
|
||||||
# Ensure the user has the required roles to start the matchmaking
|
# Ensure the user has the required roles to start the matchmaking
|
||||||
if user != mmevent.creator and "admin" not in user.roles:
|
if user != mmevent.creator and "admin" not in user.roles:
|
||||||
|
@ -233,19 +237,16 @@ class MMTask:
|
||||||
|
|
||||||
rows.append([
|
rows.append([
|
||||||
rc.KeyboardKey(
|
rc.KeyboardKey(
|
||||||
interface=self.command.interface,
|
|
||||||
short=f"{MMChoice.YES.value}",
|
short=f"{MMChoice.YES.value}",
|
||||||
text="Ci sarò!",
|
text="Ci sarò!",
|
||||||
callback=self.get_answer_callback(MMChoice.YES)
|
callback=self.get_answer_callback(MMChoice.YES)
|
||||||
),
|
),
|
||||||
rc.KeyboardKey(
|
rc.KeyboardKey(
|
||||||
interface=self.command.interface,
|
|
||||||
short=f"{MMChoice.MAYBE.value}",
|
short=f"{MMChoice.MAYBE.value}",
|
||||||
text="Forse...",
|
text="Forse...",
|
||||||
callback=self.get_answer_callback(MMChoice.MAYBE)
|
callback=self.get_answer_callback(MMChoice.MAYBE)
|
||||||
),
|
),
|
||||||
rc.KeyboardKey(
|
rc.KeyboardKey(
|
||||||
interface=self.command.interface,
|
|
||||||
short=f"{MMChoice.NO.value}",
|
short=f"{MMChoice.NO.value}",
|
||||||
text="Non mi interessa.",
|
text="Non mi interessa.",
|
||||||
callback=self.get_answer_callback(MMChoice.NO)
|
callback=self.get_answer_callback(MMChoice.NO)
|
||||||
|
@ -255,19 +256,16 @@ class MMTask:
|
||||||
if self._mmevent.datetime is not None:
|
if self._mmevent.datetime is not None:
|
||||||
rows.append([
|
rows.append([
|
||||||
rc.KeyboardKey(
|
rc.KeyboardKey(
|
||||||
interface=self.command.interface,
|
|
||||||
short=f"{MMChoice.LATE_SHORT.value}",
|
short=f"{MMChoice.LATE_SHORT.value}",
|
||||||
text="10 min",
|
text="10 min",
|
||||||
callback=self.get_answer_callback(MMChoice.LATE_SHORT)
|
callback=self.get_answer_callback(MMChoice.LATE_SHORT)
|
||||||
),
|
),
|
||||||
rc.KeyboardKey(
|
rc.KeyboardKey(
|
||||||
interface=self.command.interface,
|
|
||||||
short=f"{MMChoice.LATE_MEDIUM.value}",
|
short=f"{MMChoice.LATE_MEDIUM.value}",
|
||||||
text="30 min",
|
text="30 min",
|
||||||
callback=self.get_answer_callback(MMChoice.LATE_MEDIUM)
|
callback=self.get_answer_callback(MMChoice.LATE_MEDIUM)
|
||||||
),
|
),
|
||||||
rc.KeyboardKey(
|
rc.KeyboardKey(
|
||||||
interface=self.command.interface,
|
|
||||||
short=f"{MMChoice.LATE_LONG.value}",
|
short=f"{MMChoice.LATE_LONG.value}",
|
||||||
text="60 min",
|
text="60 min",
|
||||||
callback=self.get_answer_callback(MMChoice.LATE_LONG)
|
callback=self.get_answer_callback(MMChoice.LATE_LONG)
|
||||||
|
@ -276,13 +274,11 @@ class MMTask:
|
||||||
|
|
||||||
rows.append([
|
rows.append([
|
||||||
rc.KeyboardKey(
|
rc.KeyboardKey(
|
||||||
interface=self.command.interface,
|
|
||||||
short=f"🗑",
|
short=f"🗑",
|
||||||
text="Elimina",
|
text="Elimina",
|
||||||
callback=self.get_delete_callback()
|
callback=self.get_delete_callback()
|
||||||
),
|
),
|
||||||
rc.KeyboardKey(
|
rc.KeyboardKey(
|
||||||
interface=self.command.interface,
|
|
||||||
short=f"🚩",
|
short=f"🚩",
|
||||||
text="Inizia",
|
text="Inizia",
|
||||||
callback=self.get_start_callback()
|
callback=self.get_start_callback()
|
||||||
|
@ -319,13 +315,13 @@ class MMTask:
|
||||||
for x, row in enumerate(inkm.inline_keyboard):
|
for x, row in enumerate(inkm.inline_keyboard):
|
||||||
for y, key in enumerate(row):
|
for y, key in enumerate(row):
|
||||||
key: InKB
|
key: InKB
|
||||||
self.command.interface.serf.register_keyboard_key(key.callback_data, key=royalnet_keyboard[x][y])
|
self.command.serf.register_keyboard_key(key.callback_data, key=royalnet_keyboard[x][y])
|
||||||
|
|
||||||
def unregister_telegram_keyboard(self, inkm: InKM):
|
def unregister_telegram_keyboard(self, inkm: InKM):
|
||||||
for row in inkm.inline_keyboard:
|
for row in inkm.inline_keyboard:
|
||||||
for key in row:
|
for key in row:
|
||||||
key: InKB
|
key: InKB
|
||||||
self.command.interface.serf.unregister_keyboard_key(key.callback_data)
|
self.command.serf.unregister_keyboard_key(key.callback_data)
|
||||||
|
|
||||||
async def wait_until_due(self):
|
async def wait_until_due(self):
|
||||||
"""When the event is due, interrupt the MMTask with the TIME_RAN_OUT reason."""
|
"""When the event is due, interrupt the MMTask with the TIME_RAN_OUT reason."""
|
||||||
|
@ -356,8 +352,8 @@ class MMTask:
|
||||||
if self._mmevent.interface_data is None:
|
if self._mmevent.interface_data is None:
|
||||||
# Send the channel message
|
# Send the channel message
|
||||||
log.debug(f"Sending message for: {self.mmid}")
|
log.debug(f"Sending message for: {self.mmid}")
|
||||||
message: PTBMessage = await self.command.interface.serf.api_call(
|
message: PTBMessage = await self.command.serf.api_call(
|
||||||
self.command.interface.serf.client.send_message,
|
self.command.serf.client.send_message,
|
||||||
chat_id=self.telegram_channel_id,
|
chat_id=self.telegram_channel_id,
|
||||||
text=rst.escape(self.channel_text),
|
text=rst.escape(self.channel_text),
|
||||||
parse_mode="HTML",
|
parse_mode="HTML",
|
||||||
|
@ -377,8 +373,8 @@ class MMTask:
|
||||||
|
|
||||||
# Delete the channel message
|
# Delete the channel message
|
||||||
log.debug(f"Deleting message for: {self.mmid}")
|
log.debug(f"Deleting message for: {self.mmid}")
|
||||||
await self.command.interface.serf.api_call(
|
await self.command.serf.api_call(
|
||||||
self.command.interface.serf.client.delete_message,
|
self.command.serf.client.delete_message,
|
||||||
chat_id=self._mmevent.interface_data.chat_id,
|
chat_id=self._mmevent.interface_data.chat_id,
|
||||||
message_id=self._mmevent.interface_data.message_id
|
message_id=self._mmevent.interface_data.message_id
|
||||||
)
|
)
|
||||||
|
@ -391,7 +387,7 @@ class MMTask:
|
||||||
log.debug(f"Updating message for: {self.mmid}")
|
log.debug(f"Updating message for: {self.mmid}")
|
||||||
try:
|
try:
|
||||||
await ru.asyncify(
|
await ru.asyncify(
|
||||||
self.command.interface.serf.client.edit_message_text,
|
self.command.serf.client.edit_message_text,
|
||||||
chat_id=self._mmevent.interface_data.chat_id,
|
chat_id=self._mmevent.interface_data.chat_id,
|
||||||
text=rst.escape(self.channel_text),
|
text=rst.escape(self.channel_text),
|
||||||
message_id=self._mmevent.interface_data.message_id,
|
message_id=self._mmevent.interface_data.message_id,
|
||||||
|
@ -403,8 +399,8 @@ class MMTask:
|
||||||
log.warning(f"TelegramError during update: {e}")
|
log.warning(f"TelegramError during update: {e}")
|
||||||
|
|
||||||
async def telegram_group_message_start(self):
|
async def telegram_group_message_start(self):
|
||||||
await self.command.interface.serf.api_call(
|
await self.command.serf.api_call(
|
||||||
self.command.interface.serf.client.send_message,
|
self.command.serf.client.send_message,
|
||||||
chat_id=self.telegram_group_id,
|
chat_id=self.telegram_group_id,
|
||||||
text=rst.escape(self.start_text),
|
text=rst.escape(self.start_text),
|
||||||
parse_mode="HTML",
|
parse_mode="HTML",
|
||||||
|
@ -412,8 +408,8 @@ class MMTask:
|
||||||
)
|
)
|
||||||
|
|
||||||
async def telegram_group_message_delete(self):
|
async def telegram_group_message_delete(self):
|
||||||
await self.command.interface.serf.api_call(
|
await self.command.serf.api_call(
|
||||||
self.command.interface.serf.client.send_message,
|
self.command.serf.client.send_message,
|
||||||
chat_id=self.telegram_group_id,
|
chat_id=self.telegram_group_id,
|
||||||
text=rst.escape(self.delete_text),
|
text=rst.escape(self.delete_text),
|
||||||
parse_mode="HTML",
|
parse_mode="HTML",
|
||||||
|
|
Loading…
Reference in a new issue