Commit 9cb0dc6b authored by nanahira's avatar nanahira

detect badword in room title

parent 29cb49e7
...@@ -1951,9 +1951,31 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)-> ...@@ -1951,9 +1951,31 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
auto_death: false auto_death: false
} }
options.lflist = _.findIndex lflists, (list)-> ((options.rule == 1) == list.tcg) and list.date.isBefore() options.lflist = _.findIndex lflists, (list)-> ((options.rule == 1) == list.tcg) and list.date.isBefore()
room_title = info.pass.slice(8).replace(String.fromCharCode(0xFEFF), ' ')
if _.any(badwords.level3, (badword) ->
regexp = new RegExp(badword, 'i')
return room_title.match(regexp)
, room_title)
log.warn("BAD NAME LEVEL 3", room_title, client.name, client.ip)
ygopro.stoc_die(client, "${bad_name_level3}")
return
else if _.any(badwords.level2, (badword) ->
regexp = new RegExp(badword, 'i')
return room_title.match(regexp)
, room_title)
log.warn("BAD NAME LEVEL 2", room_title, client.name, client.ip)
ygopro.stoc_die(client, "${bad_name_level2}")
return
else if _.any(badwords.level1, (badword) ->
regexp = new RegExp(badword, 'i')
return room_title.match(regexp)
, room_title)
log.warn("BAD NAME LEVEL 1", room_title, client.name, client.ip)
ygopro.stoc_die(client, "${bad_name_level1}")
return
room = new Room(name, options) room = new Room(name, options)
if room if room
room.title = info.pass.slice(8).replace(String.fromCharCode(0xFEFF), ' ') room.title = room_title
room.private = action == 2 room.private = action == 2
when 3 when 3
name = info.pass.slice(8) name = info.pass.slice(8)
......
...@@ -2420,7 +2420,7 @@ ...@@ -2420,7 +2420,7 @@
return (checksum & 0xFF) === 0; return (checksum & 0xFF) === 0;
}; };
buffer_handle_callback = function(buffer, decrypted_buffer, match_permit) { buffer_handle_callback = function(buffer, decrypted_buffer, match_permit) {
var action, len2, len3, m, n, name, opt1, opt2, opt3, options, player, ref2, ref3, room, title; var action, len2, len3, m, n, name, opt1, opt2, opt3, options, player, ref2, ref3, room, room_title, title;
if (client.closed) { if (client.closed) {
return; return;
} }
...@@ -2457,9 +2457,35 @@ ...@@ -2457,9 +2457,35 @@
options.lflist = _.findIndex(lflists, function(list) { options.lflist = _.findIndex(lflists, function(list) {
return ((options.rule === 1) === list.tcg) && list.date.isBefore(); return ((options.rule === 1) === list.tcg) && list.date.isBefore();
}); });
room_title = info.pass.slice(8).replace(String.fromCharCode(0xFEFF), ' ');
if (_.any(badwords.level3, function(badword) {
var regexp;
regexp = new RegExp(badword, 'i');
return room_title.match(regexp);
}, room_title)) {
log.warn("BAD NAME LEVEL 3", room_title, client.name, client.ip);
ygopro.stoc_die(client, "${bad_name_level3}");
return;
} else if (_.any(badwords.level2, function(badword) {
var regexp;
regexp = new RegExp(badword, 'i');
return room_title.match(regexp);
}, room_title)) {
log.warn("BAD NAME LEVEL 2", room_title, client.name, client.ip);
ygopro.stoc_die(client, "${bad_name_level2}");
return;
} else if (_.any(badwords.level1, function(badword) {
var regexp;
regexp = new RegExp(badword, 'i');
return room_title.match(regexp);
}, room_title)) {
log.warn("BAD NAME LEVEL 1", room_title, client.name, client.ip);
ygopro.stoc_die(client, "${bad_name_level1}");
return;
}
room = new Room(name, options); room = new Room(name, options);
if (room) { if (room) {
room.title = info.pass.slice(8).replace(String.fromCharCode(0xFEFF), ' '); room.title = room_title;
room["private"] = action === 2; room["private"] = action === 2;
} }
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment