Skip to content

Commit

Permalink
various: Force bot username to lower case
Browse files Browse the repository at this point in the history
  • Loading branch information
sogehige committed Apr 14, 2018
1 parent bca150b commit cdb0db1
Show file tree
Hide file tree
Showing 8 changed files with 19 additions and 19 deletions.
4 changes: 2 additions & 2 deletions libs/api.js
Expand Up @@ -198,7 +198,7 @@ class API {

// set subscribers
for (let subscriber of subscribers) {
if (subscriber.name === config.settings.broadcaster_username || subscriber.name === config.settings.bot_username) continue
if (subscriber.name === config.settings.broadcaster_username || subscriber.name === config.settings.bot_username.toLowerCase()) continue
await global.db.engine.update('users', { username: subscriber.name }, { is: { subscriber: true } })
}
}
Expand Down Expand Up @@ -754,7 +754,7 @@ class API {
const userHaveId = _.isNil(user.id)
const needToWait = _.isNil(cid) || _.isNil(global.overlays)
const notEnoughAPICalls = this.remainingAPICalls <= 10 && this.refreshAPICalls > _.now() / 1000
const isSkipped = user.username === config.settings.broadcaster_username || user.username === config.settings.bot_username
const isSkipped = user.username === config.settings.broadcaster_username || user.username === config.settings.bot_username.toLowerCase()
debug('api:isFollowerUpdate')(`GET ${url}\nwait: ${needToWait}\ncalls: ${this.remainingAPICalls}\nskipped: ${isSkipped}`)
if (needToWait || notEnoughAPICalls || !userHaveId || isSkipped) {
if (notEnoughAPICalls) debug('api:isFollowerUpdate')('Waiting for rate-limit to refresh')
Expand Down
4 changes: 2 additions & 2 deletions libs/commons.js
Expand Up @@ -110,7 +110,7 @@ Commons.prototype.sendMessage = async function (message, sender, attr) {
if (message === '') return false // if message is empty, don't send anything

// if sender is null/undefined, we can assume, that username is from dashboard -> bot
if (_.get(sender, 'username', config.settings.bot_username) === config.settings.bot_username && !attr.force) return false // we don't want to reply on bot commands
if (_.get(sender, 'username', config.settings.bot_username.toLowerCase()) === config.settings.bot_username.toLowerCase() && !attr.force) return false // we don't want to reply on bot commands
message = !_.isUndefined(sender) && !_.isUndefined(sender.username) ? message.replace(/\$sender/g, (global.configuration.getValue('atUsername') ? '@' : '') + sender.username) : message
if (!(await global.configuration.getValue('mute')) || attr.force) {
if ((!_.isNil(attr.quiet) && attr.quiet)) return true
Expand Down Expand Up @@ -173,7 +173,7 @@ Commons.prototype.isBot = function (user) {
d('isBot(%j)', user)
try {
if (_.isString(user)) user = { username: user }
return config.settings.bot_username.toLowerCase().trim() === user.username.toLowerCase().trim()
return config.settings.bot_username.toLowerCase().toLowerCase().trim() === user.username.toLowerCase().trim()
} catch (e) {
d(e)
return true // we can expect, if user is null -> bot or admin
Expand Down
12 changes: 6 additions & 6 deletions libs/message.js
Expand Up @@ -34,7 +34,7 @@ class Message {
let onlineUsers = await global.db.engine.find('users.online')
let onlineViewers = []
for (let user of onlineUsers) {
if (user.username !== attr.sender && user.username !== config.settings.bot_username) {
if (user.username !== attr.sender && user.username !== config.settings.bot_username.toLowerCase()) {
onlineViewers.push(user.username)
}
}
Expand All @@ -45,7 +45,7 @@ class Message {
let onlineViewers = await global.db.engine.find('users.online')
let onlineFollowers = []
for (let viewer of onlineViewers) {
if (viewer.username !== attr.sender && viewer.username !== config.settings.bot_username) {
if (viewer.username !== attr.sender && viewer.username !== config.settings.bot_username.toLowerCase()) {
let user = await global.db.engine.find('users', { username: viewer.username, is: { follower: true } })
if (!_.isEmpty(user)) onlineFollowers.push(user.username)
}
Expand All @@ -57,7 +57,7 @@ class Message {
let onlineViewers = await global.db.engine.find('users.online')
let onlineSubscribers = []
for (let viewer of onlineViewers) {
if (viewer.username !== attr.sender && viewer.username !== config.settings.bot_username) {
if (viewer.username !== attr.sender && viewer.username !== config.settings.bot_username.toLowerCase()) {
let user = await global.db.engine.find('users', { username: viewer.username, is: { subscriber: true } })
if (!_.isEmpty(user)) onlineSubscribers.push(user.username)
}
Expand All @@ -67,19 +67,19 @@ class Message {
},
'(random.viewer)': async function () {
let viewer = await global.users.getAll()
viewer = _.filter(viewer, function (o) { return o.username !== attr.sender && o.username !== config.settings.bot_username })
viewer = _.filter(viewer, function (o) { return o.username !== attr.sender && o.username !== config.settings.bot_username.toLowerCase() })
if (viewer.length === 0) return 'unknown'
return _.sample(viewer).username
},
'(random.follower)': async function () {
let follower = await global.users.getAll({ is: { follower: true } })
follower = _.filter(follower, function (o) { return o.username !== attr.sender && o.username !== config.settings.bot_username })
follower = _.filter(follower, function (o) { return o.username !== attr.sender && o.username !== config.settings.bot_username.toLowerCase() })
if (follower.length === 0) return 'unknown'
return _.sample(follower).username
},
'(random.subscriber)': async function () {
let subscriber = await global.users.getAll({ is: { subscriber: true } })
subscriber = _.filter(subscriber, function (o) { return o.username !== attr.sender && o.username !== config.settings.bot_username })
subscriber = _.filter(subscriber, function (o) { return o.username !== attr.sender && o.username !== config.settings.bot_username.toLowerCase() })
if (subscriber.length === 0) return 'unknown'
return _.sample(subscriber).username
},
Expand Down
2 changes: 1 addition & 1 deletion libs/parser.js
Expand Up @@ -165,7 +165,7 @@ class Parser {
(command.permission === constants.MODS && (isMod || isOwner)) ||
(command.permission === constants.OWNER_ONLY && isOwner)) {
var text = message.trim().replace(new RegExp('^(' + command.command + ')', 'i'), '').trim()
if (typeof command.fnc === 'function') command.fnc(command.this, _.isNil(sender) ? { username: config.settings.bot_username } : sender, text.trim(), message)
if (typeof command.fnc === 'function') command.fnc(command.this, _.isNil(sender) ? { username: config.settings.bot_username.toLowerCase() } : sender, text.trim(), message)
else global.log.error(command.command + ' have wrong null function registered!', { fnc: 'Parser.prototype.parseCommands' })
} else {
// user doesn't have permissions for command
Expand Down
2 changes: 1 addition & 1 deletion libs/systems/points.js
Expand Up @@ -60,7 +60,7 @@ Points.prototype.webPanel = function () {
}

Points.prototype.setSocket = function (self, socket, data) {
self.setPoints(self, {username: config.settings.bot_username}, data.username + ' ' + data.value) // we want to show this in chat
self.setPoints(self, {username: config.settings.bot_username.toLowerCase()}, data.username + ' ' + data.value) // we want to show this in chat
}

Points.prototype.resetPoints = function (self, socket, data) {
Expand Down
10 changes: 5 additions & 5 deletions libs/twitch.js
Expand Up @@ -121,7 +121,7 @@ class Twitch {

let lastFollowAgo = ''
let lastFollowUsername = 'n/a'
let onlineFollowersCount = _.size(_.filter(onlineFollowers, (o) => o !== config.settings.broadcaster_username && o !== config.settings.bot_username)) // except bot and user
let onlineFollowersCount = _.size(_.filter(onlineFollowers, (o) => o !== config.settings.broadcaster_username && o !== config.settings.bot_username.toLowerCase())) // except bot and user
if (events.length > 0) {
lastFollowUsername = events[0].username
lastFollowAgo = moment(events[0].timestamp).fromNow()
Expand All @@ -147,7 +147,7 @@ class Twitch {

let lastSubAgo = ''
let lastSubUsername = 'n/a'
let onlineSubCount = _.size(_.filter(onlineSubscribers, (o) => o !== config.settings.broadcaster_username && o !== config.settings.bot_username)) // except bot and user
let onlineSubCount = _.size(_.filter(onlineSubscribers, (o) => o !== config.settings.broadcaster_username && o !== config.settings.bot_username.toLowerCase())) // except bot and user
if (events.length > 0) {
lastSubUsername = events[0].username
lastSubAgo = moment(events[0].timestamp).fromNow()
Expand Down Expand Up @@ -302,10 +302,10 @@ class Twitch {
let users = await global.users.getAll()
if (type === 'points' && global.commons.isSystemEnabled('points')) {
message = global.translate('top.listPoints').replace(/\$amount/g, 10)
sorted = _.orderBy(_.filter(users, function (o) { return !_.isNil(o.points) && !global.commons.isOwner(o.username) && o.username !== config.settings.bot_username }), 'points', 'desc')
sorted = _.orderBy(_.filter(users, function (o) { return !_.isNil(o.points) && !global.commons.isOwner(o.username) && o.username !== config.settings.bot_username.toLowerCase() }), 'points', 'desc')
} else if (type === 'time') {
message = global.translate('top.listWatched').replace(/\$amount/g, 10)
sorted = _.orderBy(_.filter(users, function (o) { return !_.isNil(o.time) && !_.isNil(o.time.watched) && !global.commons.isOwner(o.username) && o.username !== config.settings.bot_username }), 'time.watched', 'desc')
sorted = _.orderBy(_.filter(users, function (o) { return !_.isNil(o.time) && !_.isNil(o.time.watched) && !global.commons.isOwner(o.username) && o.username !== config.settings.bot_username.toLowerCase() }), 'time.watched', 'desc')
} else if (type === 'tips') {
sorted = {}
message = global.translate('top.listTips').replace(/\$amount/g, 10)
Expand All @@ -317,7 +317,7 @@ class Twitch {
sorted = _.orderBy(sorted, 'amount', 'desc')
} else {
message = global.translate('top.listMessages').replace(/\$amount/g, 10)
sorted = _.orderBy(_.filter(users, function (o) { return !_.isNil(o.stats) && !_.isNil(o.stats.messages) && !global.commons.isOwner(o.username) && o.username !== config.settings.bot_username }), 'stats.messages', 'desc')
sorted = _.orderBy(_.filter(users, function (o) { return !_.isNil(o.stats) && !_.isNil(o.stats.messages) && !global.commons.isOwner(o.username) && o.username !== config.settings.bot_username.toLowerCase() }), 'stats.messages', 'desc')
}

// remove ignored users
Expand Down
2 changes: 1 addition & 1 deletion libs/users.js
Expand Up @@ -410,7 +410,7 @@ Users.prototype.set = async function (username, object) {
if (_.isNil(username)) return global.log.error('username is NULL!\n' + new Error().stack)

username = username.toLowerCase()
if (username === config.settings.bot_username || _.isNil(username)) return // it shouldn't happen, but there can be more than one instance of a bot
if (username === config.settings.bot_username.toLowerCase() || _.isNil(username)) return // it shouldn't happen, but there can be more than one instance of a bot

// force max value of points
object.points = _.get(object, 'points', 0) >= Number.MAX_SAFE_INTEGER / 1000000 ? Math.floor(Number.MAX_SAFE_INTEGER / 1000000) : parseInt(_.get(object, 'points', 0), 10)
Expand Down
2 changes: 1 addition & 1 deletion main.js
Expand Up @@ -181,7 +181,7 @@ function loadClientListeners (client) {
global.client.on('message', async function (channel, sender, message, fromSelf) {
debug('tmijs')('Message received: %s\n\tuserstate: %s', message, JSON.stringify(sender))

if (!fromSelf && config.settings.bot_username !== sender.username) {
if (!fromSelf && config.settings.bot_username.toLowerCase() !== sender.username) {
sendMessageToWorker(sender, message)
global.linesParsed++
}
Expand Down

0 comments on commit cdb0db1

Please sign in to comment.