Added /msg slash command for IRC-style direct message

pull/2006/head
Sven Mueller 9 years ago
parent ce342c6c2a
commit 6af0d51fa1
  1. 14
      packages/rocketchat-slashcommands-msg/client.coffee
  2. 1
      packages/rocketchat-slashcommands-msg/i18n/ar.i18n.json
  3. 1
      packages/rocketchat-slashcommands-msg/i18n/cs.i18n.json
  4. 4
      packages/rocketchat-slashcommands-msg/i18n/de.i18n.json
  5. 1
      packages/rocketchat-slashcommands-msg/i18n/el.i18n.json
  6. 4
      packages/rocketchat-slashcommands-msg/i18n/en.i18n.json
  7. 1
      packages/rocketchat-slashcommands-msg/i18n/es.i18n.json
  8. 1
      packages/rocketchat-slashcommands-msg/i18n/fa.i18n.json
  9. 1
      packages/rocketchat-slashcommands-msg/i18n/fi.i18n.json
  10. 1
      packages/rocketchat-slashcommands-msg/i18n/fr.i18n.json
  11. 1
      packages/rocketchat-slashcommands-msg/i18n/he.i18n.json
  12. 1
      packages/rocketchat-slashcommands-msg/i18n/hr.i18n.json
  13. 1
      packages/rocketchat-slashcommands-msg/i18n/hu.i18n.json
  14. 1
      packages/rocketchat-slashcommands-msg/i18n/it.i18n.json
  15. 1
      packages/rocketchat-slashcommands-msg/i18n/ja.i18n.json
  16. 1
      packages/rocketchat-slashcommands-msg/i18n/km.i18n.json
  17. 1
      packages/rocketchat-slashcommands-msg/i18n/ko.i18n.json
  18. 1
      packages/rocketchat-slashcommands-msg/i18n/ku.i18n.json
  19. 1
      packages/rocketchat-slashcommands-msg/i18n/lo.i18n.json
  20. 1
      packages/rocketchat-slashcommands-msg/i18n/ms-MY.i18n.json
  21. 1
      packages/rocketchat-slashcommands-msg/i18n/nl.i18n.json
  22. 1
      packages/rocketchat-slashcommands-msg/i18n/pl.i18n.json
  23. 1
      packages/rocketchat-slashcommands-msg/i18n/pt.i18n.json
  24. 1
      packages/rocketchat-slashcommands-msg/i18n/ro.i18n.json
  25. 1
      packages/rocketchat-slashcommands-msg/i18n/ru.i18n.json
  26. 1
      packages/rocketchat-slashcommands-msg/i18n/sq.i18n.json
  27. 1
      packages/rocketchat-slashcommands-msg/i18n/sr.i18n.json
  28. 1
      packages/rocketchat-slashcommands-msg/i18n/sv.i18n.json
  29. 1
      packages/rocketchat-slashcommands-msg/i18n/ta-IN.i18n.json
  30. 1
      packages/rocketchat-slashcommands-msg/i18n/tr.i18n.json
  31. 1
      packages/rocketchat-slashcommands-msg/i18n/ug.i18n.json
  32. 1
      packages/rocketchat-slashcommands-msg/i18n/uk.i18n.json
  33. 1
      packages/rocketchat-slashcommands-msg/i18n/zh.i18n.json
  34. 36
      packages/rocketchat-slashcommands-msg/package.js
  35. 36
      packages/rocketchat-slashcommands-msg/server.coffee

@ -0,0 +1,14 @@
RocketChat.slashCommands.add 'msg', (command, params, item) ->
trimmedParams = params.trim()
username = trimmedParams.slice(0, trimmedParams.indexOf(' '))
if username is ''
return
username = username.replace('@', '')
if Session.get('showUserInfo') is username
Session.set('showUserInfo', null)
,
description: TAPi18n.__ 'Direct_message_someone'
params: '@username <message>'

@ -0,0 +1,4 @@
{
"Username_doesnt_exist" : "Der Benutzername `%s` existiert nicht.",
"Direct_message_someone" : "Jemandem eine private Nachricht schicken"
}

@ -0,0 +1,4 @@
{
"Username_doesnt_exist" : "The username `%s` doesn't exist.",
"Direct_message_someone" : "Direct message someone"
}

@ -0,0 +1,36 @@
Package.describe({
name: 'rocketchat:slashcommands-msg',
version: '0.0.1',
summary: 'Command handler for the /msg command',
git: ''
});
Package.onUse(function(api) {
api.versionsFrom('1.0');
api.use([
'coffeescript',
'check',
'rocketchat:lib'
]);
api.addFiles('client.coffee', 'client');
api.addFiles('server.coffee', 'server');
// TAPi18n
api.use('templating', 'client');
var _ = Npm.require('underscore');
var fs = Npm.require('fs');
tapi18nFiles = _.compact(_.map(fs.readdirSync('packages/rocketchat-slashcommands-msg/i18n'), function(filename) {
if (fs.statSync('packages/rocketchat-slashcommands-msg/i18n/' + filename).size > 16) {
return 'i18n/' + filename;
}
}));
api.use('tap:i18n');
api.addFiles(tapi18nFiles);
});
Package.onTest(function(api) {
});

@ -0,0 +1,36 @@
###
# Msg is a named function that will replace /msg commands
###
class Msg
constructor: (command, params, item) ->
if command isnt 'msg' or not Match.test params, String
return
trimmedParams = params.trim()
usernameOrig = trimmedParams.slice(0, trimmedParams.indexOf(' '))
message = trimmedParams.slice(trimmedParams.indexOf(' ') + 1)
if username is ''
return
username = usernameOrig.replace('@', '')
user = Meteor.users.findOne Meteor.userId()
msgUser = RocketChat.models.Users.findOneByUsername username
if not msgUser?
RocketChat.Notifications.notifyUser Meteor.userId(), 'message', {
_id: Random.id()
rid: item.rid
ts: new Date
msg: TAPi18n.__('Username_doesnt_exist', { postProcess: 'sprintf', sprintf: [ usernameOrig ] }, user.language)
}
return
rid = Meteor.call 'createDirectMessage', username
msgObject = { _id: Random.id(), rid: rid.rid, msg: message}
Meteor.call 'sendMessage', msgObject
RocketChat.slashCommands.add 'msg', Msg
Loading…
Cancel
Save