Avoid spamming #firemc #6

Closed
9pfs wants to merge 14 commits from 9pfs/FireBot:dont-spam-firemc into master
3 changed files with 12 additions and 5 deletions
Showing only changes of commit ce5c979e8d - Show all commits

2
bot.py
View file

@ -272,7 +272,7 @@ class bot(bare.bot):
tdict = {} tdict = {}
for thread in self.threads: for thread in self.threads:
tdict[thread] = timers.data[thread] tdict[thread] = timers.data[thread]
if thread in ["radio"]: if tdict[thread]["passInstance"]:
tdict[thread]["args"] = [self] tdict[thread]["args"] = [self]
tMgr = Thread(target=timers.threadManager, args=(tdict,)) tMgr = Thread(target=timers.threadManager, args=(tdict,))
tMgr.daemon = True tMgr.daemon = True

View file

@ -6,7 +6,7 @@ from typing import Optional, Any
import bare, pylast import bare, pylast
load_dotenv() load_dotenv()
__version__ = "v3.0.6" __version__ = "v3.0.7-dev"
npbase: str = ( npbase: str = (
"\[\x0303last\.fm\x03\] [A-Za-z0-9_[\]{}\\|\-^]{1,$MAX} (is listening|last listened) to: \x02.+ - .*\x02( \([0-9]+ plays\)( \[.*\])?)?" # pyright: ignore [reportInvalidStringEscapeSequence] "\[\x0303last\.fm\x03\] [A-Za-z0-9_[\]{}\\|\-^]{1,$MAX} (is listening|last listened) to: \x02.+ - .*\x02( \([0-9]+ plays\)( \[.*\])?)?" # pyright: ignore [reportInvalidStringEscapeSequence]
) )

View file

@ -17,7 +17,7 @@ def is_dead(thr: Thread) -> bool:
def threadWrapper(data: dict) -> NoReturn: def threadWrapper(data: dict) -> NoReturn:
if not data["noWrap"]: if not data["noWrap"]:
while 1: while 1:
if ignoreErrors: if data["ignoreErrors"]:
try: try:
data["func"](*data["args"]) data["func"](*data["args"])
except Exception: except Exception:
@ -112,11 +112,18 @@ def radio(instance: bare.bot) -> NoReturn:
instance.log("Thread while loop broken", "FATAL") instance.log("Thread while loop broken", "FATAL")
exit(1) exit(1)
def mcDown(instance: bare.bot) -> None: def mcDown(instance: bare.bot) -> None:
instance.sendraw("TOPIC #firemc :FireMC Relay channel (offline)") instance.sendraw("TOPIC #firemc :FireMC Relay channel (offline)")
data: dict[str, dict[str, Any]] = { data: dict[str, dict[str, Any]] = {
"radio": {"noWrap": True, "func": radio, "args": []}, "radio": {"noWrap": True, "func": radio, "passInstance": True},
"mc-down": {"noWrap": False, "func": mcDown, "args": [], "interval": 60} "mc-down": {
"noWrap": False,
"func": mcDown,
"passInstance": True,
"interval": 60,
"ignoreErrors": True,
},
} }