|
@@ -4,8 +4,6 @@ from enum import Enum, auto
|
|
|
|
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
|
|
|
|
-from config import GLOBAL_ADMINS, GROUP_ADMINS
|
|
|
-
|
|
|
|
|
|
BANGS = ('!',)
|
|
|
|
|
@@ -29,6 +27,7 @@ class RollbotMessage:
|
|
|
group_id: str
|
|
|
message_id: str
|
|
|
message_txt: str
|
|
|
+ from_admin: bool
|
|
|
|
|
|
def __post_init__(self):
|
|
|
self.is_command = False
|
|
@@ -39,14 +38,21 @@ class RollbotMessage:
|
|
|
self.command = cmd.lower()
|
|
|
self.raw_args = raw
|
|
|
|
|
|
- self.from_admin = self.sender_id is not None and \
|
|
|
- self.sender_id in GLOBAL_ADMINS or (
|
|
|
- self.group_id in GROUP_ADMINS and
|
|
|
- self.sender_id in GROUP_ADMINS[self.group_id])
|
|
|
-
|
|
|
@staticmethod
|
|
|
- def from_groupme(msg):
|
|
|
- return RollbotMessage("GROUPME", msg["name"], msg["sender_id"], msg["group_id"], msg["id"], msg["text"].strip())
|
|
|
+ def from_groupme(msg, global_admins=(), group_admins={}):
|
|
|
+ sender_id = msg["sender_id"]
|
|
|
+ group_id = msg["group_id"]
|
|
|
+ return RollbotMessage(
|
|
|
+ "GROUPME",
|
|
|
+ msg["name"],
|
|
|
+ sender_id,
|
|
|
+ group_id,
|
|
|
+ msg["id"],
|
|
|
+ msg["text"].strip(),
|
|
|
+ sender_id in global_admins or (
|
|
|
+ group_id in group_admins and
|
|
|
+ sender_id in group_admins[group_id])
|
|
|
+ )
|
|
|
|
|
|
@staticmethod
|
|
|
def from_web(content):
|
|
@@ -54,7 +60,7 @@ class RollbotMessage:
|
|
|
if len(content) > 0 and content[0] not in BANGS:
|
|
|
content = BANGS[0] + content
|
|
|
# TODO should still assign an id...
|
|
|
- return RollbotMessage("WEB_FRONTEND", "user", None, None, None, content)
|
|
|
+ return RollbotMessage("WEB_FRONTEND", "user", None, None, None, content, False)
|
|
|
|
|
|
def args(self, normalize=True):
|
|
|
arg, rest = pop_arg(self.raw_args)
|