1er commit

This commit is contained in:
tfa
2026-01-07 09:07:52 +01:00
commit cdfa2b4716
2 changed files with 57 additions and 0 deletions

9
maubot.yaml Normal file
View File

@@ -0,0 +1,9 @@
maubot: 0.1.0
id: tfa.tantine
version: 1.0.0
license: AGPL-3.0-or-later
modules:
- tantine
main_class: Tantine
config: false
extra_files:

48
tantine.py Normal file
View File

@@ -0,0 +1,48 @@
from typing import List
from maubot import Plugin, MessageEvent
from maubot.handlers import command
from mautrix.types import EventType
import datetime
import random
import asyncio
class Tantine(Plugin):
@command.new(name="tantine")
async def tantine(self, evt: MessageEvent) -> None:
await evt.mark_read()
weekday = datetime.datetime.now().weekday()
if weekday == 1: # mardi
when = "demain"
elif weekday == 2: # mercredi
when = "ce"
else:
when = "mercredi"
await evt.reply(f"Est-ce qu'il y a un buffet {when} soir ?")
await asyncio.sleep(random.randint(3, 10))
if random.random() < 0.4:
await evt.reply("Non")
return
# Récupération membres du salon
state = await self.client.get_state(evt.room_id)
members = []
for event in state:
if event.type == EventType.ROOM_MEMBER:
if event.state_key != self.client.mxid:
display = event.content.displayname or event.state_key
members.append(display)
if not members:
await evt.reply("Oui")
return
count = min(len(members), random.randint(1, 3))
chosen = random.sample(members, count)
mentions = ", ".join(chosen)
await evt.reply(f"Oui : {mentions}")