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/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/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/auth = 0 // Are they authenticated?
|
||||||
var/optioncount = 7
|
var/optioncount = 8
|
||||||
// Custom Message Properties
|
// Custom Message Properties
|
||||||
var/customsender = "System Administrator"
|
var/customsender = "System Administrator"
|
||||||
var/obj/item/device/pda/customrecepient = null
|
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];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];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];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
|
else
|
||||||
for(var/n = ++i; n <= optioncount; n++)
|
for(var/n = ++i; n <= optioncount; n++)
|
||||||
dat += "<dd><font color='blue'>	[n]. ---------------</font><br></dd>"
|
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>"}
|
<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>"
|
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>"
|
dat += "</body>"
|
||||||
message = defaultmsg
|
message = defaultmsg
|
||||||
@@ -485,6 +498,26 @@
|
|||||||
|
|
||||||
//usr << href_list["select"]
|
//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"])
|
if (href_list["back"])
|
||||||
src.screen = 0
|
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?
|
if(useTC != 2) // Does our recipient have a broadcaster on their level?
|
||||||
U << "ERROR: Cannot reach recipient."
|
U << "ERROR: Cannot reach recipient."
|
||||||
return
|
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]")))
|
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]")))
|
P.tnote.Add(list(list("sent" = 0, "owner" = "[owner]", "job" = "[ownjob]", "message" = "[t]", "target" = "\ref[src]")))
|
||||||
for(var/mob/M in player_list)
|
for(var/mob/M in player_list)
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/datum/event/pda_spam
|
/datum/event/pda_spam
|
||||||
endWhen = 6000
|
endWhen = 6000
|
||||||
var/time_failed = 0
|
var/last_spam_time = 0
|
||||||
var/obj/machinery/message_server/useMS
|
var/obj/machinery/message_server/useMS
|
||||||
|
|
||||||
/datum/event/pda_spam/setup()
|
/datum/event/pda_spam/setup()
|
||||||
time_failed = world.time
|
last_spam_time = world.time
|
||||||
for (var/obj/machinery/message_server/MS in message_servers)
|
for (var/obj/machinery/message_server/MS in message_servers)
|
||||||
if(MS.active)
|
if(MS.active)
|
||||||
useMS = MS
|
useMS = MS
|
||||||
@@ -20,7 +20,6 @@
|
|||||||
break
|
break
|
||||||
|
|
||||||
if(useMS)
|
if(useMS)
|
||||||
time_failed = world.time
|
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
// /obj/machinery/message_server/proc/send_pda_message(var/recipient = "",var/sender = "",var/message = "")
|
// /obj/machinery/message_server/proc/send_pda_message(var/recipient = "",var/sender = "",var/message = "")
|
||||||
var/obj/item/device/pda/P
|
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 romantic comedy 16 RULES OF LOVE!",\
|
||||||
"You have won tickets to the newest thriller THE CULT OF THE SLEEPING ONE!")
|
"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
|
if (prob(50)) //Give the AI an increased chance to intercept the message
|
||||||
for(var/mob/living/silicon/ai/ai in mob_list)
|
for(var/mob/living/silicon/ai/ai in mob_list)
|
||||||
@@ -111,6 +113,6 @@
|
|||||||
|
|
||||||
if(L)
|
if(L)
|
||||||
L << "\icon[P] <b>Message from [sender] (Unknown / spam?), </b>\"[message]\" (Unable to Reply)"
|
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
|
//if there's no server active for two minutes, give up
|
||||||
kill()
|
kill()
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
#define MESSAGE_SERVER_SPAM_REJECT 1
|
||||||
|
|
||||||
var/global/list/obj/machinery/message_server/message_servers = list()
|
var/global/list/obj/machinery/message_server/message_servers = list()
|
||||||
|
|
||||||
/datum/data_pda_msg
|
/datum/data_pda_msg
|
||||||
@@ -59,6 +61,9 @@ var/global/list/obj/machinery/message_server/message_servers = list()
|
|||||||
var/active = 1
|
var/active = 1
|
||||||
var/decryptkey = "password"
|
var/decryptkey = "password"
|
||||||
|
|
||||||
|
var/list/spamfilter = list()
|
||||||
|
var/const/errorcode_spam_rejected = MESSAGE_SERVER_SPAM_REJECT
|
||||||
|
|
||||||
/obj/machinery/message_server/New()
|
/obj/machinery/message_server/New()
|
||||||
message_servers += src
|
message_servers += src
|
||||||
decryptkey = GenerateKey()
|
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 = "")
|
/obj/machinery/message_server/proc/send_pda_message(var/recipient = "",var/sender = "",var/message = "")
|
||||||
pda_msgs += new/datum/data_pda_msg(recipient,sender,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)
|
/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)
|
rc_msgs += new/datum/data_rc_msg(recipient,sender,message,stamp,id_auth)
|
||||||
|
|||||||
Reference in New Issue
Block a user