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 = {}
for thread in self.threads:
tdict[thread] = timers.data[thread]
if thread in ["radio"]:
if tdict[thread]["passInstance"]:
tdict[thread]["args"] = [self]
tMgr = Thread(target=timers.threadManager, args=(tdict,))
tMgr.daemon = True

View file

@ -6,7 +6,7 @@ from typing import Optional, Any
import bare, pylast
load_dotenv()
__version__ = "v3.0.6"
__version__ = "v3.0.7-dev"
npbase: str = (
"\[\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:
if not data["noWrap"]:
while 1:
if ignoreErrors:
if data["ignoreErrors"]:
try:
data["func"](*data["args"])
except Exception:
@ -112,11 +112,18 @@ def radio(instance: bare.bot) -> NoReturn:
instance.log("Thread while loop broken", "FATAL")
exit(1)
def mcDown(instance: bare.bot) -> None:
instance.sendraw("TOPIC #firemc :FireMC Relay channel (offline)")
data: dict[str, dict[str, Any]] = {
"radio": {"noWrap": True, "func": radio, "args": []},
"mc-down": {"noWrap": False, "func": mcDown, "args": [], "interval": 60}
"radio": {"noWrap": True, "func": radio, "passInstance": True},
"mc-down": {
"noWrap": False,
"func": mcDown,
"passInstance": True,
"interval": 60,
"ignoreErrors": True,
},
}