From 5bcc8cb4fc134d2b84f8d85a1fb8e8e60b51ec79 Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Tue, 26 Apr 2016 12:02:50 -0300 Subject: [PATCH] Internal Hubot naming clarification rocketchat:hubot -> rocketchat:internal-hubot RocketBot -> InternalHubot RocketBot_Name -> InternalHubot_Username --- example-build.sh | 2 +- packages/rocketchat-hubot/hubot.coffee | 34 ++++++++-------- packages/rocketchat-hubot/package.js | 6 +-- packages/rocketchat-hubot/settings.coffee | 6 +-- packages/rocketchat-lib/i18n/en.i18n.json | 7 ++-- .../server/methods/sendMessage.coffee | 2 +- server/startup/migrations/v048.js | 40 +++++++++++++++++++ 7 files changed, 68 insertions(+), 29 deletions(-) create mode 100644 server/startup/migrations/v048.js diff --git a/example-build.sh b/example-build.sh index ea4d6d0c8a3..5a3fdc5d90e 100755 --- a/example-build.sh +++ b/example-build.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash export METEOR_SETTINGS=$(cat settings.json) -meteor add rocketchat:hubot meteorhacks:kadira +meteor add rocketchat:internal-hubot meteorhacks:kadira meteor build --server https://demo.rocket.chat --directory /var/www/rocket.chat cd /var/www/rocket.chat/bundle/programs/server npm install diff --git a/packages/rocketchat-hubot/hubot.coffee b/packages/rocketchat-hubot/hubot.coffee index e65cac42df7..f73452937dc 100644 --- a/packages/rocketchat-hubot/hubot.coffee +++ b/packages/rocketchat-hubot/hubot.coffee @@ -56,7 +56,7 @@ class RocketChatAdapter extends Hubot.Adapter # console.log envelope, strings sendHelper @robot, envelope, strings, (string) => console.log "send #{envelope.room}: #{string} (#{envelope.user.id})" if DEBUG - RocketChat.sendMessage RocketBot.user, { msg: string }, { _id: envelope.room } + RocketChat.sendMessage InternalHubot.user, { msg: string }, { _id: envelope.room } # Public: Raw method for sending emote data back to the chat source. # @@ -133,17 +133,17 @@ class RocketChatAdapter extends Hubot.Adapter close: -> console.log 'ROCKETCHATADAPTER -> close'.blue -class RocketBotReceiver +class InternalHubotReceiver constructor: (message) -> #console.log message - if message.u.username isnt RocketBot.name + if message.u.username isnt InternalHubot.name room = RocketChat.models.Rooms.findOneById message.rid if room.t is 'c' console.log message - RocketBotUser = new Hubot.User(message.u.username, room: message.rid) - RocketBotTextMessage = new Hubot.TextMessage(RocketBotUser, message.msg, message._id) - RocketBot.adapter.receive RocketBotTextMessage + InternalHubotUser = new Hubot.User(message.u.username, room: message.rid) + InternalHubotTextMessage = new Hubot.TextMessage(InternalHubotUser, message.msg, message._id) + InternalHubot.adapter.receive InternalHubotTextMessage return message class HubotScripts @@ -276,25 +276,25 @@ sendHelper = Meteor.bindEnvironment (robot, envelope, strings, map) -> console.error "Hubot error: #{err}" if DEBUG robot.logger.error "RocketChat send error: #{err}" -RocketBot = {} +InternalHubot = {} init = => - RocketBot = new Robot null, null, false, RocketChat.settings.get 'RocketBot_Name' - RocketBot.alias = 'bot' - RocketBot.adapter = new RocketChatAdapter RocketBot - HubotScripts(RocketBot) - RocketBot.run() + InternalHubot = new Robot null, null, false, RocketChat.settings.get 'InternalHubot_Username' + InternalHubot.alias = 'bot' + InternalHubot.adapter = new RocketChatAdapter InternalHubot + HubotScripts(InternalHubot) + InternalHubot.run() - # RocketBot.hear /^test/i, (res) -> + # InternalHubot.hear /^test/i, (res) -> # res.send "Test? TESTING? WE DON'T NEED NO TEST, EVERYTHING WORKS!" - if RocketChat.settings.get 'RocketBot_Enabled' - RocketChat.callbacks.add 'afterSaveMessage', RocketBotReceiver, RocketChat.callbacks.priority.LOW, 'rocketbot-parser' + if RocketChat.settings.get 'InternalHubot_Enabled' + RocketChat.callbacks.add 'afterSaveMessage', InternalHubotReceiver, RocketChat.callbacks.priority.LOW, 'rocketbot-parser' else RocketChat.callbacks.remove 'afterSaveMessage', 'rocketbot-parser' # Meteor.startup -> - # console.log RocketBot; + # console.log InternalHubot; # # what's (the regexp for) my name? # robot.respond /(?:)/, -> false # mynameRE = robot.listeners.pop().regex @@ -339,7 +339,7 @@ init = => # username: "rocketbot" # action: true -RocketChat.models.Settings.findByIds([ 'RocketBot_Name', 'RocketBot_Enabled']).observe +RocketChat.models.Settings.findByIds([ 'InternalHubot_Username', 'InternalHubot_Enabled']).observe added: -> init() changed: -> diff --git a/packages/rocketchat-hubot/package.js b/packages/rocketchat-hubot/package.js index 821473aed6f..8bda5cd3d9e 100644 --- a/packages/rocketchat-hubot/package.js +++ b/packages/rocketchat-hubot/package.js @@ -1,5 +1,5 @@ Package.describe({ - name: 'rocketchat:hubot', + name: 'rocketchat:internal-hubot', version: '0.0.1', summary: 'Package hubot for Meteor server', git: '' @@ -23,8 +23,8 @@ Package.onUse(function(api) { api.export('Hubot', ['server']); api.export('HubotScripts', ['server']); - api.export('RocketBot', ['server']); - api.export('RocketBotReceiver', ['server']); + api.export('InternalHubot', ['server']); + api.export('InternalHubotReceiver', ['server']); api.export('RocketChatAdapter', ['server']); }); diff --git a/packages/rocketchat-hubot/settings.coffee b/packages/rocketchat-hubot/settings.coffee index 74eac6d47a2..d98acf59a6b 100644 --- a/packages/rocketchat-hubot/settings.coffee +++ b/packages/rocketchat-hubot/settings.coffee @@ -1,3 +1,3 @@ -RocketChat.settings.addGroup 'RocketBot' -RocketChat.settings.add 'RocketBot_Enabled', true, { type: 'boolean', group: 'RocketBot' } -RocketChat.settings.add 'RocketBot_Name', 'Rocket.Cat', { type: 'string', group: 'RocketBot', i18nDescription: 'RocketBot_Name_Description' } +RocketChat.settings.addGroup 'InternalHubot' +RocketChat.settings.add 'InternalHubot_Enabled', true, { type: 'boolean', group: 'InternalHubot', i18nLabel: 'Enabled' } +RocketChat.settings.add 'InternalHubot_Username', 'Rocket.Cat', { type: 'string', group: 'InternalHubot', i18nLabel: 'Username', i18nDescription: 'InternalHubot_Username_Description' } diff --git a/packages/rocketchat-lib/i18n/en.i18n.json b/packages/rocketchat-lib/i18n/en.i18n.json index f33ee93e2dd..ad55629062d 100644 --- a/packages/rocketchat-lib/i18n/en.i18n.json +++ b/packages/rocketchat-lib/i18n/en.i18n.json @@ -813,9 +813,8 @@ "Reset_password" : "Reset password", "Restart" : "Restart", "Restart_the_server" : "Restart the server", - "RocketBot_Enabled" : "RocketBot Enabled", - "RocketBot_Name" : "RocketBot Name", - "RocketBot_Name_Description" : "RocketBot name must be a valid username registered on your server.", + "InternalHubot" : "Internal Hubot", + "InternalHubot_Username_Description" : "This must be a valid username of a bot registered on your server.", "Role" : "Role", "Role_Editing" : "Role Editing", "Role_removed" : "Role removed", @@ -1147,4 +1146,4 @@ "Your_Open_Source_solution" : "Your own Open Source chat solution", "Your_password_is_wrong" : "Your password is wrong!", "Your_push_was_sent_to_s_devices" : "Your push was sent to %s devices" -} \ No newline at end of file +} diff --git a/packages/rocketchat-lib/server/methods/sendMessage.coffee b/packages/rocketchat-lib/server/methods/sendMessage.coffee index 2be88199287..1755baec8fd 100644 --- a/packages/rocketchat-lib/server/methods/sendMessage.coffee +++ b/packages/rocketchat-lib/server/methods/sendMessage.coffee @@ -29,5 +29,5 @@ Meteor.methods # type: 'method' # name: 'sendMessage' # userId: (userId) -> -# return RocketChat.models.Users.findOneById(userId)?.username isnt RocketChat.settings.get('RocketBot_Name') +# return RocketChat.models.Users.findOneById(userId)?.username isnt RocketChat.settings.get('InternalHubot_Username') # , 5, 1000 diff --git a/server/startup/migrations/v048.js b/server/startup/migrations/v048.js new file mode 100644 index 00000000000..c10051bab67 --- /dev/null +++ b/server/startup/migrations/v048.js @@ -0,0 +1,40 @@ +RocketChat.Migrations.add({ + version: 48, + up: function() { + if (RocketChat && RocketChat.models && RocketChat.models.Settings) { + + var RocketBot_Enabled = RocketChat.models.Settings.findOne({ + _id: 'RocketBot_Enabled' + }); + if (RocketBot_Enabled) { + RocketChat.models.Settings.remove({ + _id: 'RocketBot_Enabled' + }); + RocketChat.models.Settings.upsert({ + _id: 'InternalHubot_Enabled' + }, { + $set: { + value: RocketBot_Enabled.value + } + }); + } + + var RocketBot_Name = RocketChat.models.Settings.findOne({ + _id: 'RocketBot_Name' + }); + if (RocketBot_Name) { + RocketChat.models.Settings.remove({ + _id: 'RocketBot_Name' + }); + RocketChat.models.Settings.upsert({ + _id: 'InternalHubot_Username' + }, { + $set: { + value: RocketBot_Name.value + } + }); + } + + } + } +});