Skip to content

Instantly share code, notes, and snippets.

@sampaiodiego
Last active May 21, 2021 12:36
Show Gist options
  • Star 26 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save sampaiodiego/db4b60717e7ac0051024dde23c6a902e to your computer and use it in GitHub Desktop.
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 }) {
}
}
@designgurudotorg
Copy link

I like the simplicity of this solution but I've found it very confusing for users - they aren't sure how to respond and can't find the correct emoticon to use etc...

Have you looked at integrating one of these into RocketChat @sampaiodiego?
https://github.com/mfpierre/meteor-poll or:
https://github.com/aramk/meteor-voting-app

@ulope
Copy link

ulope commented Oct 26, 2017

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.

@mathabaws
Copy link

mathabaws commented Jan 23, 2018

Thanks for this. One small thing that would be nice is to change option :ten: to :keycap_ten: so the actual icon is shown.

@itsthejoker
Copy link

Does exactly what we need it to do. Thanks for publishing this!

@gudge25
Copy link

gudge25 commented Dec 28, 2018

i did according to instructions but variant are not click able (browser and application tested)

@marfraTUC
Copy link

Awsome simple feature. Thanks for sharing!

@rrzaripov
Copy link

Not work in 0.73.2

@fsejoseph
Copy link

fsejoseph commented Mar 28, 2019

@gudge I have the same issue. I can send it but no one can respond.

image

Copy link

ghost commented Apr 8, 2019

Response with reactions are supported.

@3x3cut0r
Copy link

3x3cut0r commented Aug 22, 2019

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

@sampaiodiego
Copy link
Author

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

@starhound
Copy link

Does anyone know of a method to halt the initial "!poll" message from appearing, so that only the Webook response is posted?
-Thanks!

@wajeeh-devsinc
Copy link

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

@sampaiodiego
Copy link
Author

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

@wajeeh-devsinc
Copy link

wajeeh-devsinc commented Oct 19, 2020 via email

@Prashant454
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment