mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
/tg/ input stripping.
Borrows /tg/ html stripping code. Ghosts are the first to be given this boon, they now have to deliberately emote things like "Spooky man and it#36&;s friends type crap".
This commit is contained in:
@@ -70,10 +70,14 @@
|
|||||||
else non_whitespace = 1
|
else non_whitespace = 1
|
||||||
if(non_whitespace) return text //only accepts the text if it has some non-spaces
|
if(non_whitespace) return text //only accepts the text if it has some non-spaces
|
||||||
|
|
||||||
// Used to get a sanitized input.
|
// Used to get a properly sanitized input, of max_length
|
||||||
/proc/stripped_input(var/mob/user, var/message = "", var/title = "", var/default = "", var/max_length=MAX_MESSAGE_LEN)
|
/proc/stripped_input(var/mob/user, var/message = "", var/title = "", var/default = "", var/max_length=MAX_MESSAGE_LEN)
|
||||||
var/name = input(user, message, title, default)
|
var/name = input(user, message, title, default)
|
||||||
return strip_html_simple(name, max_length)
|
return strip_html_properly(name, max_length)
|
||||||
|
|
||||||
|
// Used to get a trimmed, properly sanitized input, of max_length
|
||||||
|
/proc/trim_strip_input(var/mob/user, var/message = "", var/title = "", var/default = "", var/max_length=MAX_MESSAGE_LEN)
|
||||||
|
return trim(stripped_input(user, message, title, default, max_length))
|
||||||
|
|
||||||
//Filters out undesirable characters from names
|
//Filters out undesirable characters from names
|
||||||
/proc/reject_bad_name(var/t_in, var/allow_numbers=0, var/max_length=MAX_NAME_LEN)
|
/proc/reject_bad_name(var/t_in, var/allow_numbers=0, var/max_length=MAX_NAME_LEN)
|
||||||
@@ -314,3 +318,22 @@ proc/TextPreview(var/string,var/len=40)
|
|||||||
return string
|
return string
|
||||||
else
|
else
|
||||||
return "[copytext(string, 1, 37)]..."
|
return "[copytext(string, 1, 37)]..."
|
||||||
|
|
||||||
|
//This proc strips html properly, but it's not lazy like the other procs.
|
||||||
|
//This means that it doesn't just remove < and > and call it a day.
|
||||||
|
//Also limit the size of the input, if specified.
|
||||||
|
/proc/strip_html_properly(var/input, var/max_length = MAX_MESSAGE_LEN)
|
||||||
|
var/opentag = 1 //These store the position of < and > respectively.
|
||||||
|
var/closetag = 1
|
||||||
|
while(1)
|
||||||
|
opentag = findtext(input, "<")
|
||||||
|
closetag = findtext(input, ">")
|
||||||
|
if(!closetag || !opentag)
|
||||||
|
break
|
||||||
|
input = copytext(input, 1, opentag) + copytext(input, (closetag + 1))
|
||||||
|
if(max_length)
|
||||||
|
input = copytext(input,1,max_length)
|
||||||
|
return input
|
||||||
|
|
||||||
|
/proc/trim_strip_html_properly(var/input, var/max_length = MAX_MESSAGE_LEN)
|
||||||
|
return trim(strip_html_properly(input, max_length))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/mob/dead/observer/say(var/message)
|
/mob/dead/observer/say(var/message)
|
||||||
message = sanitize(copytext(message, 1, MAX_MESSAGE_LEN))
|
message = strip_html_properly(message)
|
||||||
|
|
||||||
if (!message)
|
if (!message)
|
||||||
return
|
return
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/mob/dead/observer/emote(var/act, var/type, var/message)
|
/mob/dead/observer/emote(var/act, var/type, var/message)
|
||||||
message = sanitize(copytext(message, 1, MAX_MESSAGE_LEN))
|
message = trim_strip_html_properly(message)
|
||||||
|
|
||||||
if(!message)
|
if(!message)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
src << "\red You cannot speak in IC (Muted)."
|
src << "\red You cannot speak in IC (Muted)."
|
||||||
return
|
return
|
||||||
|
|
||||||
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
|
message = trim_strip_html_properly(message)
|
||||||
|
|
||||||
if(stat == 2)
|
if(stat == 2)
|
||||||
return say_dead(message)
|
return say_dead(message)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
src << "\red You cannot speak in IC (Muted)."
|
src << "\red You cannot speak in IC (Muted)."
|
||||||
return
|
return
|
||||||
|
|
||||||
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
|
message = trim_strip_html_properly(message)
|
||||||
|
|
||||||
if(stat == 2)
|
if(stat == 2)
|
||||||
return say_dead(message)
|
return say_dead(message)
|
||||||
|
|||||||
@@ -5,7 +5,8 @@
|
|||||||
if(say_disabled) //This is here to try to identify lag problems
|
if(say_disabled) //This is here to try to identify lag problems
|
||||||
usr << "\red Speech is currently admin-disabled."
|
usr << "\red Speech is currently admin-disabled."
|
||||||
return
|
return
|
||||||
|
|
||||||
|
message = trim_strip_html_properly(message)
|
||||||
log_whisper("[src.name]/[src.key] : [message]")
|
log_whisper("[src.name]/[src.key] : [message]")
|
||||||
|
|
||||||
if (src.client)
|
if (src.client)
|
||||||
@@ -21,8 +22,6 @@
|
|||||||
|
|
||||||
if (src.stat)
|
if (src.stat)
|
||||||
return
|
return
|
||||||
|
|
||||||
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) //made consistent with say
|
|
||||||
|
|
||||||
if(name != GetVoice())
|
if(name != GetVoice())
|
||||||
alt_name = "(as [get_id_name("Unknown")])"
|
alt_name = "(as [get_id_name("Unknown")])"
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
if (src.client.handle_spam_prevention(message,MUTE_IC))
|
if (src.client.handle_spam_prevention(message,MUTE_IC))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
|
message = trim_strip_html_properly(message)
|
||||||
|
|
||||||
if (stat == 2)
|
if (stat == 2)
|
||||||
return say_dead(message)
|
return say_dead(message)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
if(istype(src.loc,/mob/living/simple_animal/borer))
|
if(istype(src.loc,/mob/living/simple_animal/borer))
|
||||||
|
|
||||||
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
|
message = trim_strip_html_properly(message)
|
||||||
if (!message)
|
if (!message)
|
||||||
return
|
return
|
||||||
log_say("[key_name(src)] : [message]")
|
log_say("[key_name(src)] : [message]")
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/mob/living/simple_animal/borer/say(var/message)
|
/mob/living/simple_animal/borer/say(var/message)
|
||||||
|
|
||||||
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
|
message = trim_strip_html_properly(message)
|
||||||
message = capitalize(message)
|
message = capitalize(message)
|
||||||
|
|
||||||
if(!message)
|
if(!message)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
usr << "\red Speech is currently admin-disabled."
|
usr << "\red Speech is currently admin-disabled."
|
||||||
return
|
return
|
||||||
|
|
||||||
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
|
message = strip_html_properly(message)
|
||||||
|
|
||||||
set_typing_indicator(0)
|
set_typing_indicator(0)
|
||||||
if(use_me)
|
if(use_me)
|
||||||
|
|||||||
Reference in New Issue
Block a user