Internal Hubot naming clarification

rocketchat:hubot -> rocketchat:internal-hubot
RocketBot -> InternalHubot
RocketBot_Name -> InternalHubot_Username
pull/3038/head
Gabriel Engel 10 years ago
parent 2910459e88
commit 5bcc8cb4fc
No known key found for this signature in database
GPG Key ID: A9FF0AD7DEE40258
  1. 2
      example-build.sh
  2. 34
      packages/rocketchat-hubot/hubot.coffee
  3. 6
      packages/rocketchat-hubot/package.js
  4. 6
      packages/rocketchat-hubot/settings.coffee
  5. 7
      packages/rocketchat-lib/i18n/en.i18n.json
  6. 2
      packages/rocketchat-lib/server/methods/sendMessage.coffee
  7. 40
      server/startup/migrations/v048.js

@ -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

@ -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: ->

@ -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']);
});

@ -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' }

@ -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"
}
}

@ -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

@ -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
}
});
}
}
}
});
Loading…
Cancel
Save