.BANCHO. Silences are now logged in RAP and on discord
This commit is contained in:
parent
ef35697772
commit
e11ae27b36
|
@ -143,6 +143,7 @@ def silence(fro, chan, message):
|
||||||
|
|
||||||
# Get target user ID
|
# Get target user ID
|
||||||
targetUserID = userHelper.getID(target)
|
targetUserID = userHelper.getID(target)
|
||||||
|
userID = userHelper.getID(fro)
|
||||||
|
|
||||||
# Make sure the user exists
|
# Make sure the user exists
|
||||||
if targetUserID == False:
|
if targetUserID == False:
|
||||||
|
@ -167,11 +168,14 @@ def silence(fro, chan, message):
|
||||||
# Send silence packet to target if he's connected
|
# Send silence packet to target if he's connected
|
||||||
targetToken = glob.tokens.getTokenFromUsername(target)
|
targetToken = glob.tokens.getTokenFromUsername(target)
|
||||||
if targetToken != None:
|
if targetToken != None:
|
||||||
targetToken.silence(silenceTime, reason)
|
# user online, silence both in db and with packet
|
||||||
|
targetToken.silence(silenceTime, reason, userID)
|
||||||
|
else:
|
||||||
|
# User offline, silence user only in db
|
||||||
|
userHelper.silence(targetUserID, int(time.time())+silenceTime, reason, userID)
|
||||||
|
|
||||||
# Log message
|
# Log message
|
||||||
msg = "{} has been silenced for the following reason: {}".format(target, reason)
|
msg = "{} has been silenced for the following reason: {}".format(target, reason)
|
||||||
discordBotHelper.sendConfidential(msg)
|
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
def removeSilence(fro, chan, message):
|
def removeSilence(fro, chan, message):
|
||||||
|
@ -182,16 +186,18 @@ def removeSilence(fro, chan, message):
|
||||||
|
|
||||||
# Make sure the user exists
|
# Make sure the user exists
|
||||||
targetUserID = userHelper.getID(target)
|
targetUserID = userHelper.getID(target)
|
||||||
|
userID = userHelper.getID(fro)
|
||||||
if targetUserID == False:
|
if targetUserID == False:
|
||||||
return "{}: user not found".format(target)
|
return "{}: user not found".format(target)
|
||||||
|
|
||||||
# Reset user silence time and reason in db
|
|
||||||
userHelper.silence(targetUserID, 0, "")
|
|
||||||
|
|
||||||
# Send new silence end packet to user if he's online
|
# Send new silence end packet to user if he's online
|
||||||
targetToken = glob.tokens.getTokenFromUsername(target)
|
targetToken = glob.tokens.getTokenFromUsername(target)
|
||||||
if targetToken != None:
|
if targetToken != None:
|
||||||
targetToken.enqueue(serverPackets.silenceEndTime(0))
|
# User online, remove silence both in db and with packet
|
||||||
|
targetToken.silence(0, "", userID)
|
||||||
|
else:
|
||||||
|
# user offline, remove islene ofnlt from db
|
||||||
|
userHelper.silence(targetUserID, 0, "", userID)
|
||||||
|
|
||||||
return "{}'s silence reset".format(target)
|
return "{}'s silence reset".format(target)
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@ from helpers import discordBotHelper
|
||||||
from helpers import generalFunctions
|
from helpers import generalFunctions
|
||||||
from helpers.systemHelper import runningUnderUnix
|
from helpers.systemHelper import runningUnderUnix
|
||||||
from objects import glob
|
from objects import glob
|
||||||
|
from helpers import userHelper
|
||||||
|
import time
|
||||||
|
|
||||||
ENDL = "\n" if runningUnderUnix() else "\r\n"
|
ENDL = "\n" if runningUnderUnix() else "\r\n"
|
||||||
|
|
||||||
|
@ -114,3 +116,17 @@ def pm(message):
|
||||||
message -- chat message
|
message -- chat message
|
||||||
"""
|
"""
|
||||||
logMessage(message, "CHAT", bcolors.BLUE, of="chatlog_private.txt")
|
logMessage(message, "CHAT", bcolors.BLUE, of="chatlog_private.txt")
|
||||||
|
|
||||||
|
def rap(userID, message, discord=False, through="FokaBot"):
|
||||||
|
"""
|
||||||
|
Log a private message to Admin logs
|
||||||
|
|
||||||
|
userID -- userID of who made the action
|
||||||
|
message -- message without subject (eg: "is a meme" becomes "user is a meme")
|
||||||
|
discord -- if True, send message to discord
|
||||||
|
through -- "through" thing string. Optional. Default: "FokaBot"
|
||||||
|
"""
|
||||||
|
glob.db.execute("INSERT INTO rap_logs (id, userid, text, datetime, through) VALUES (NULL, %s, %s, %s, %s)", [userID, message, int(time.time()), through])
|
||||||
|
if discord == True:
|
||||||
|
username = userHelper.getUsername(userID)
|
||||||
|
logMessage("{} {}".format(username, message), discord=True)
|
||||||
|
|
|
@ -2,6 +2,8 @@ from helpers import passwordHelper
|
||||||
from constants import gameModes
|
from constants import gameModes
|
||||||
from helpers import generalFunctions
|
from helpers import generalFunctions
|
||||||
from objects import glob
|
from objects import glob
|
||||||
|
from helpers import logHelper as log
|
||||||
|
import time
|
||||||
|
|
||||||
def getID(username):
|
def getID(username):
|
||||||
"""
|
"""
|
||||||
|
@ -98,7 +100,8 @@ def getSilenceEnd(userID):
|
||||||
return glob.db.fetch("SELECT silence_end FROM users WHERE id = %s", [userID])["silence_end"]
|
return glob.db.fetch("SELECT silence_end FROM users WHERE id = %s", [userID])["silence_end"]
|
||||||
|
|
||||||
|
|
||||||
def silence(userID, silenceEndTime, silenceReason):
|
def silence(userID, silenceEndTime, silenceReason, author = 999):
|
||||||
|
# TODO: user seconds insteaf od silenceEndTime
|
||||||
"""
|
"""
|
||||||
Set userID's **ABSOLUTE** silence end UNIX time
|
Set userID's **ABSOLUTE** silence end UNIX time
|
||||||
Remember to add time.time() to the silence length
|
Remember to add time.time() to the silence length
|
||||||
|
@ -106,10 +109,20 @@ def silence(userID, silenceEndTime, silenceReason):
|
||||||
userID -- userID
|
userID -- userID
|
||||||
silenceEndtime -- UNIX time when the silence ends
|
silenceEndtime -- UNIX time when the silence ends
|
||||||
silenceReason -- Silence reason shown on website
|
silenceReason -- Silence reason shown on website
|
||||||
|
author -- userID of who silenced the user. Default: 999
|
||||||
"""
|
"""
|
||||||
|
# db qurey
|
||||||
glob.db.execute("UPDATE users SET silence_end = %s, silence_reason = %s WHERE id = %s", [silenceEndTime, silenceReason, userID])
|
glob.db.execute("UPDATE users SET silence_end = %s, silence_reason = %s WHERE id = %s", [silenceEndTime, silenceReason, userID])
|
||||||
|
|
||||||
|
# Loh
|
||||||
|
seconds = silenceEndTime-int(time.time())
|
||||||
|
targetUsername = getUsername(userID)
|
||||||
|
# TODO: exists check im drunk rn i need to sleep (stampa piede ubriaco confirmed)
|
||||||
|
if seconds > 0:
|
||||||
|
log.rap(author, "has silenced {} for {} seconds for the following reason: \"{}\"".format(targetUsername, seconds, silenceReason), True)
|
||||||
|
else:
|
||||||
|
log.rap(author, "has removed {}'s silence".format(targetUsername), True)
|
||||||
|
|
||||||
def getRankedScore(userID, gameMode):
|
def getRankedScore(userID, gameMode):
|
||||||
"""
|
"""
|
||||||
Get userID's ranked score relative to gameMode
|
Get userID's ranked score relative to gameMode
|
||||||
|
|
|
@ -242,15 +242,16 @@ class token:
|
||||||
# Logout event
|
# Logout event
|
||||||
logoutEvent.handle(self, None)
|
logoutEvent.handle(self, None)
|
||||||
|
|
||||||
def silence(self, seconds, reason):
|
def silence(self, seconds, reason, author = 999):
|
||||||
"""
|
"""
|
||||||
Silences this user (both db and packet)
|
Silences this user (both db and packet)
|
||||||
|
|
||||||
seconds -- silence length in seconds
|
seconds -- silence length in seconds
|
||||||
reason -- silence reason
|
reason -- silence reason
|
||||||
|
author -- userID of who has silenced the target. Optional. Default: 999 (fokabot)
|
||||||
"""
|
"""
|
||||||
# Silence user in db
|
# Silence user in db
|
||||||
userHelper.silence(self.userID, int(time.time())+seconds, reason)
|
userHelper.silence(self.userID, int(time.time())+seconds, reason, author)
|
||||||
|
|
||||||
# Send silence packet to target
|
# Send silence packet to target
|
||||||
self.enqueue(serverPackets.silenceEndTime(seconds))
|
self.enqueue(serverPackets.silenceEndTime(seconds))
|
||||||
|
@ -258,9 +259,6 @@ class token:
|
||||||
# Send silenced packet to everyone else
|
# Send silenced packet to everyone else
|
||||||
glob.tokens.enqueueAll(serverPackets.userSilenced(self.userID))
|
glob.tokens.enqueueAll(serverPackets.userSilenced(self.userID))
|
||||||
|
|
||||||
# Log
|
|
||||||
log.info("{} has been silenced for {} seconds for the following reason: {}".format(self.username, seconds, reason), True)
|
|
||||||
|
|
||||||
def spamProtection(self, increaseSpamRate = True):
|
def spamProtection(self, increaseSpamRate = True):
|
||||||
"""
|
"""
|
||||||
Silences the user if is spamming.
|
Silences the user if is spamming.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user