Conditionally allow ASCII characters (for Xaekai)
This commit is contained in:
parent
7002874bbb
commit
91c24518c5
|
@ -116,8 +116,14 @@ ChatModule.prototype.handleChatMsg = function (user, data) {
|
|||
return;
|
||||
}
|
||||
|
||||
// Limit to 240 characters, disallow all ASCII control characters except tab (\t)
|
||||
data.msg = data.msg.substring(0, 240).replace(/[\x00-\x08\x0a-\x1f]+/g, " ");
|
||||
// Limit to 240 characters
|
||||
data.msg = data.msg.substring(0, 240);
|
||||
// If channel doesn't permit them, strip ASCII control characters
|
||||
if (!this.channel.modules.options ||
|
||||
!this.channel.modules.options.get("allow_ascii_control")) {
|
||||
|
||||
data.msg = data.msg.replace(/[\x00-\x1f]+/g, " ");
|
||||
}
|
||||
|
||||
// Disallow blankposting
|
||||
if (!data.msg.trim()) {
|
||||
|
|
|
@ -6,24 +6,25 @@ var url = require("url");
|
|||
function OptionsModule(channel) {
|
||||
ChannelModule.apply(this, arguments);
|
||||
this.opts = {
|
||||
allow_voteskip: true, // Allow users to voteskip
|
||||
voteskip_ratio: 0.5, // Ratio of skip votes:non-afk users needed to skip the video
|
||||
afk_timeout: 600, // Number of seconds before a user is automatically marked afk
|
||||
allow_voteskip: true, // Allow users to voteskip
|
||||
voteskip_ratio: 0.5, // Ratio of skip votes:non-afk users needed to skip the video
|
||||
afk_timeout: 600, // Number of seconds before a user is automatically marked afk
|
||||
pagetitle: this.channel.name, // Title of the browser tab
|
||||
maxlength: 0, // Maximum length (in seconds) of a video queued
|
||||
externalcss: "", // Link to external stylesheet
|
||||
externaljs: "", // Link to external script
|
||||
chat_antiflood: false, // Throttle chat messages
|
||||
maxlength: 0, // Maximum length (in seconds) of a video queued
|
||||
externalcss: "", // Link to external stylesheet
|
||||
externaljs: "", // Link to external script
|
||||
chat_antiflood: false, // Throttle chat messages
|
||||
chat_antiflood_params: {
|
||||
burst: 4, // Number of messages to allow with no throttling
|
||||
sustained: 1, // Throttle rate (messages/second)
|
||||
cooldown: 4 // Number of seconds with no messages before burst is reset
|
||||
burst: 4, // Number of messages to allow with no throttling
|
||||
sustained: 1, // Throttle rate (messages/second)
|
||||
cooldown: 4 // Number of seconds with no messages before burst is reset
|
||||
},
|
||||
show_public: false, // List the channel on the index page
|
||||
enable_link_regex: true, // Use the built-in link filter
|
||||
password: false, // Channel password (false -> no password required for entry)
|
||||
allow_dupes: false, // Allow duplicate videos on the playlist
|
||||
torbanned: false // Block connections from Tor exit nodes
|
||||
show_public: false, // List the channel on the index page
|
||||
enable_link_regex: true, // Use the built-in link filter
|
||||
password: false, // Channel password (false -> no password required for entry)
|
||||
allow_dupes: false, // Allow duplicate videos on the playlist
|
||||
torbanned: false, // Block connections from Tor exit nodes
|
||||
allow_ascii_control: false // Allow ASCII control characters (\x00-\x1f)
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -249,6 +250,10 @@ OptionsModule.prototype.handleSetOptions = function (user, data) {
|
|||
this.opts.torbanned = Boolean(data.torbanned);
|
||||
}
|
||||
|
||||
if ("allow_ascii_control" in data && user.account.effectiveRank >= 3) {
|
||||
this.opts.allow_ascii_control = Boolean(data.allow_ascii_control);
|
||||
}
|
||||
|
||||
this.channel.logger.log("[mod] " + user.getName() + " updated channel options");
|
||||
this.sendOpts(this.channel.users);
|
||||
};
|
||||
|
|
|
@ -76,6 +76,7 @@ mixin adminoptions
|
|||
mixin textbox-auto("cs-externaljs", "External Javascript", "Script URL")
|
||||
mixin rcheckbox-auto("cs-show_public", "List channel publicly")
|
||||
mixin rcheckbox-auto("cs-torbanned", "Block connections from Tor")
|
||||
mixin rcheckbox-auto("cs-allow_ascii_control", "Allow ASCII control characters (e.g. newlines)")
|
||||
.form-group
|
||||
.col-sm-8.col-sm-offset-4
|
||||
span.text-info Changes are automatically saved.
|
||||
|
|
|
@ -865,6 +865,7 @@ function handleModPermissions() {
|
|||
$("#cs-voteskip_ratio").val(CHANNEL.opts.voteskip_ratio);
|
||||
$("#cs-allow_dupes").val(CHANNEL.opts.allow_dupes);
|
||||
$("#cs-torbanned").val(CHANNEL.opts.torbanned);
|
||||
$("#cs-allow_ascii_control").val(CHANNEL.opts.allow_ascii_control);
|
||||
(function() {
|
||||
if(typeof CHANNEL.opts.maxlength != "number") {
|
||||
$("#cs-maxlength").val("");
|
||||
|
|
Loading…
Reference in a new issue