-
-
Save sampaiodiego/db4b60717e7ac0051024dde23c6a902e to your computer and use it in GitHub Desktop.
/* | |
EXAMPLE MESSAGE | |
/poll "question?" "option 1" "option 2" | |
*/ | |
/** Global Helpers | |
* | |
* console - A normal console instance | |
* _ - An underscore instance | |
* s - An underscore string instance | |
* HTTP - The Meteor HTTP object to do sync http calls | |
*/ | |
class Script { | |
/** | |
* @params {object} request | |
*/ | |
prepare_outgoing_request({ request }) { | |
// request.params {object} | |
// request.method {string} | |
// request.url {string} | |
// request.auth {string} | |
// request.headers {object} | |
// request.data.token {string} | |
// request.data.channel_id {string} | |
// request.data.channel_name {string} | |
// request.data.timestamp {date} | |
// request.data.user_id {string} | |
// request.data.user_name {string} | |
// request.data.text {string} | |
// request.data.trigger_word {string} | |
const emojis = [ | |
':zero:', | |
':one:', | |
':two:', | |
':three:', | |
':four:', | |
':five:', | |
':six:', | |
':seven:', | |
':eight:', | |
':nine:', | |
':ten:' | |
]; | |
let match; | |
// Change the URL and method of the request | |
match = request.data.text.match(/((["'])(?:(?=(\\?))\3.)*?\2)/g); | |
let title = ''; | |
let options = []; | |
match.forEach((item, i) => { | |
item = item.replace(/(^['"]|['"]$)/g, ''); | |
if (i === 0) { | |
title = item; | |
} else { | |
options.push(emojis[(options.length + 1)] + ' ' + item); | |
} | |
}); | |
return { | |
message: { | |
text: '_Please vote using reactions_', | |
attachments: [ | |
{ | |
color: '#0000DD', | |
title: title, | |
text: options.join('\n') | |
} | |
] | |
} | |
}; | |
} | |
/** | |
* @params {object} request, response | |
*/ | |
process_outgoing_response({ request, response }) { | |
} | |
} |
Thanks for this. One small thing that would be nice is to change option :ten:
to :keycap_ten:
so the actual icon is shown.
Does exactly what we need it to do. Thanks for publishing this!
i did according to instructions but variant are not click able (browser and application tested)
Awsome simple feature. Thanks for sharing!
Not work in 0.73.2
@gudge I have the same issue. I can send it but no one can respond.
Response with reactions are supported.
is there a way to implement some "filters"?
so that a user could only post one reaction to a poll?
or/and! that a user can only post a reaction that matches with one of the options?
other way this poll is quite useless ...
@3x3cut0r please try out the Poll Rocket.Chat App, https://github.com/sampaiodiego/rocket.chat.app-poll
it is a improved version of this integration.
Does anyone know of a method to halt the initial "!poll" message from appearing, so that only the Webook response is posted?
-Thanks!
@sampaiodiego I've installed it. After typing in the /poll command, form poops up. After filling all the required fields, I'm not able to create the poll because upon clicking Create button its not doing anything.
@wajeeh-devsinc please post any issues on the app repository https://github.com/sampaiodiego/rocket.chat.app-poll
the issue you're describing looks like something with permissions.
Hello need help for full commadline creation of poll
am calling poll creation using
/api/v1/commands.run
with following params
{
"command": "poll",
"roomId":"zDSutedKQTqxY42D2",
"params": "'Question?' 'op1' 'op2'",
"triggerId":"NPgkh84FbQ6wsry2L"
}
it return success but in chat no polls are being created.
Sorry to be blunt, but this isn't a solution at all. It's simply a formatting aid for the simplest part of a poll, namely displaying the options.