mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Added spam filter
Added spam filter functionality to message server and message server monitor.
This commit is contained in:
@@ -26,7 +26,7 @@
|
||||
var/emag = 0 // When it is emagged.
|
||||
var/message = "<span class='notice'>System bootup complete. Please select an option.</span>" // The message that shows on the main menu.
|
||||
var/auth = 0 // Are they authenticated?
|
||||
var/optioncount = 7
|
||||
var/optioncount = 8
|
||||
// Custom Message Properties
|
||||
var/customsender = "System Administrator"
|
||||
var/obj/item/device/pda/customrecepient = null
|
||||
@@ -122,6 +122,7 @@
|
||||
dat += "<dd><A href='?src=\ref[src];clearr=1'>	[++i]. Clear Request Console Logs</a><br></dd>"
|
||||
dat += "<dd><A href='?src=\ref[src];pass=1'>	[++i]. Set Custom Key</a><br></dd>"
|
||||
dat += "<dd><A href='?src=\ref[src];msg=1'>	[++i]. Send Admin Message</a><br></dd>"
|
||||
dat += "<dd><A href='?src=\ref[src];spam=1'>	[++i]. Modify Spam Filter</a><br></dd>"
|
||||
else
|
||||
for(var/n = ++i; n <= optioncount; n++)
|
||||
dat += "<dd><font color='blue'>	[n]. ---------------</font><br></dd>"
|
||||
@@ -240,6 +241,18 @@
|
||||
<td width='15%'>[rc.rec_dpt]</td><td width='300px'>[rc.message]</td><td width='15%'>[rc.stamp]</td><td width='15%'>[rc.id_auth]</td><td width='15%'>[rc.priority]</td></tr>"}
|
||||
dat += "</table>"
|
||||
|
||||
//Spam filter modification
|
||||
if(5)
|
||||
dat += "<center><A href='?src=\ref[src];back=1'>Back</a> - <A href='?src=\ref[src];refresh=1'>Refresh</center><hr>"
|
||||
var/index = 0
|
||||
for(var/token in src.linkedServer.spamfilter)
|
||||
index++
|
||||
if(index > 3000)
|
||||
break
|
||||
dat += "<dd>[index]	 <a href='?src=\ref[src];deltoken=[index]'>[token]</a><br></dd>"
|
||||
dat += "<hr>"
|
||||
dat += "<a href='?src=\ref[src];addtoken=1'>Add token</a><br>"
|
||||
|
||||
|
||||
dat += "</body>"
|
||||
message = defaultmsg
|
||||
@@ -485,6 +498,26 @@
|
||||
|
||||
//usr << href_list["select"]
|
||||
|
||||
if(href_list["spam"])
|
||||
if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||
message = noserver
|
||||
else
|
||||
if(auth)
|
||||
src.screen = 5
|
||||
|
||||
if(href_list["addtoken"])
|
||||
if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||
message = noserver
|
||||
else
|
||||
src.linkedServer.spamfilter += input(usr,"Enter text you want to be filtered out","Token creation") as text|null
|
||||
|
||||
if(href_list["deltoken"])
|
||||
if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||
message = noserver
|
||||
else
|
||||
var/tokennum = text2num(href_list["deltoken"])
|
||||
src.linkedServer.spamfilter.Cut(tokennum,tokennum+1)
|
||||
|
||||
if (href_list["back"])
|
||||
src.screen = 0
|
||||
|
||||
|
||||
@@ -917,7 +917,11 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
if(useTC != 2) // Does our recipient have a broadcaster on their level?
|
||||
U << "ERROR: Cannot reach recipient."
|
||||
return
|
||||
useMS.send_pda_message("[P.owner]","[owner]","[t]")
|
||||
var/send_result = useMS.send_pda_message("[P.owner]","[owner]","[t]")
|
||||
if (send_result)
|
||||
U << "ERROR: Messaging server rejected your message."
|
||||
return
|
||||
|
||||
tnote.Add(list(list("sent" = 1, "owner" = "[P.owner]", "job" = "[P.ownjob]", "message" = "[t]", "target" = "\ref[P]")))
|
||||
P.tnote.Add(list(list("sent" = 0, "owner" = "[owner]", "job" = "[ownjob]", "message" = "[t]", "target" = "\ref[src]")))
|
||||
for(var/mob/M in player_list)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/datum/event/pda_spam
|
||||
endWhen = 6000
|
||||
var/time_failed = 0
|
||||
var/last_spam_time = 0
|
||||
var/obj/machinery/message_server/useMS
|
||||
|
||||
/datum/event/pda_spam/setup()
|
||||
time_failed = world.time
|
||||
last_spam_time = world.time
|
||||
for (var/obj/machinery/message_server/MS in message_servers)
|
||||
if(MS.active)
|
||||
useMS = MS
|
||||
@@ -20,7 +20,6 @@
|
||||
break
|
||||
|
||||
if(useMS)
|
||||
time_failed = world.time
|
||||
if(prob(2))
|
||||
// /obj/machinery/message_server/proc/send_pda_message(var/recipient = "",var/sender = "",var/message = "")
|
||||
var/obj/item/device/pda/P
|
||||
@@ -86,7 +85,10 @@
|
||||
"You have won tickets to the newest romantic comedy 16 RULES OF LOVE!",\
|
||||
"You have won tickets to the newest thriller THE CULT OF THE SLEEPING ONE!")
|
||||
|
||||
useMS.send_pda_message("[P.owner]", sender, message)
|
||||
if (useMS.send_pda_message("[P.owner]", sender, message)) //Message been filtered by spam filter.
|
||||
return
|
||||
|
||||
last_spam_time = world.time
|
||||
|
||||
if (prob(50)) //Give the AI an increased chance to intercept the message
|
||||
for(var/mob/living/silicon/ai/ai in mob_list)
|
||||
@@ -111,6 +113,6 @@
|
||||
|
||||
if(L)
|
||||
L << "\icon[P] <b>Message from [sender] (Unknown / spam?), </b>\"[message]\" (Unable to Reply)"
|
||||
else if(world.time > time_failed + 1200)
|
||||
else if(world.time > last_spam_time + 1200)
|
||||
//if there's no server active for two minutes, give up
|
||||
kill()
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#define MESSAGE_SERVER_SPAM_REJECT 1
|
||||
|
||||
var/global/list/obj/machinery/message_server/message_servers = list()
|
||||
|
||||
/datum/data_pda_msg
|
||||
@@ -59,6 +61,9 @@ var/global/list/obj/machinery/message_server/message_servers = list()
|
||||
var/active = 1
|
||||
var/decryptkey = "password"
|
||||
|
||||
var/list/spamfilter = list()
|
||||
var/const/errorcode_spam_rejected = MESSAGE_SERVER_SPAM_REJECT
|
||||
|
||||
/obj/machinery/message_server/New()
|
||||
message_servers += src
|
||||
decryptkey = GenerateKey()
|
||||
@@ -90,6 +95,9 @@ var/global/list/obj/machinery/message_server/message_servers = list()
|
||||
|
||||
/obj/machinery/message_server/proc/send_pda_message(var/recipient = "",var/sender = "",var/message = "")
|
||||
pda_msgs += new/datum/data_pda_msg(recipient,sender,message)
|
||||
for (var/token in spamfilter)
|
||||
if (findtextEx(message,token))
|
||||
return errorcode_spam_rejected
|
||||
|
||||
/obj/machinery/message_server/proc/send_rc_message(var/recipient = "",var/sender = "",var/message = "",var/stamp = "", var/id_auth = "", var/priority = 1)
|
||||
rc_msgs += new/datum/data_rc_msg(recipient,sender,message,stamp,id_auth)
|
||||
|
||||
Reference in New Issue
Block a user