include option to track reaction events
This commit is contained in:
parent
9e767eebff
commit
9a12dec6eb
|
@ -7,6 +7,10 @@ warn_threshold_days: 30
|
||||||
# number of days of inactivity to be considered in the "danger zone"
|
# number of days of inactivity to be considered in the "danger zone"
|
||||||
kick_threshold_days: 60
|
kick_threshold_days: 60
|
||||||
|
|
||||||
|
# track reactions? if false, will only track activity based on normal message events, but if true
|
||||||
|
# will update the user's last-active date when they add a reaction to a message
|
||||||
|
track_reactions: True
|
||||||
|
|
||||||
# list of users who can add mxids to the exclusion list
|
# list of users who can add mxids to the exclusion list
|
||||||
admins:
|
admins:
|
||||||
- '@user1:server.tld'
|
- '@user1:server.tld'
|
||||||
|
|
|
@ -20,6 +20,7 @@ class Config(BaseProxyConfig):
|
||||||
def do_update(self, helper: ConfigUpdateHelper) -> None:
|
def do_update(self, helper: ConfigUpdateHelper) -> None:
|
||||||
helper.copy("admins")
|
helper.copy("admins")
|
||||||
helper.copy("master_room")
|
helper.copy("master_room")
|
||||||
|
helper.copy("track_reactions")
|
||||||
helper.copy("warn_threshold_days")
|
helper.copy("warn_threshold_days")
|
||||||
helper.copy("kick_threshold_days")
|
helper.copy("kick_threshold_days")
|
||||||
|
|
||||||
|
@ -31,13 +32,24 @@ class KickBot(Plugin):
|
||||||
self.config.load_and_update()
|
self.config.load_and_update()
|
||||||
|
|
||||||
@event.on(EventType.ROOM_MESSAGE)
|
@event.on(EventType.ROOM_MESSAGE)
|
||||||
async def update_user_timestamp(self, evt: MessageEvent) -> None:
|
async def update_message_timestamp(self, evt: MessageEvent) -> None:
|
||||||
q = """
|
q = """
|
||||||
REPLACE INTO user_events(mxid, last_message_timestamp)
|
REPLACE INTO user_events(mxid, last_message_timestamp)
|
||||||
VALUES ($1, $2)
|
VALUES ($1, $2)
|
||||||
"""
|
"""
|
||||||
await self.database.execute(q, evt.sender, evt.timestamp)
|
await self.database.execute(q, evt.sender, evt.timestamp)
|
||||||
|
|
||||||
|
@event.on(EventType.REACTION)
|
||||||
|
async def update_reaction_timestamp(self, evt: MessageEvent) -> None:
|
||||||
|
if not self.config["track_reactions"]:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
q = """
|
||||||
|
REPLACE INTO user_events(mxid, last_message_timestamp)
|
||||||
|
VALUES ($1, $2)
|
||||||
|
"""
|
||||||
|
await self.database.execute(q, evt.sender, evt.timestamp)
|
||||||
|
|
||||||
@command.new("activity", help="track active/inactive status of members of a space")
|
@command.new("activity", help="track active/inactive status of members of a space")
|
||||||
async def activity(self) -> None:
|
async def activity(self) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in New Issue