Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function() {
- var VOTE_DELAY = 1500; // Wait 1.5 seconds before voting again
- var VOTE_YES_FOR = ['Julian Assange', 'Nigel Farage', 'Donald Trump'];
- function buildVoteBatch(slides, candidatesToVoteFor) {
- return _.map(slides, function(slide) {
- var titleHtml = slide.title.value;
- var title = titleHtml.match(/">(.*?)</)[1].trim();
- var shouldVoteYes = _.some(candidatesToVoteFor, function(target) { return title.match(target) });
- var answerOption = slide.options[1 - shouldVoteYes | 0];
- return { title: title, slideId: slide.id, answer: answerOption }
- });
- }
- function submitInteraction(interactionId, result, successCallback) {
- var payload = JSON.stringify({ interactionId: interactionId, result: result });
- var xhr = new XMLHttpRequest();
- xhr.open("POST", "http://interaction.apester.com/interaction-submission", true);
- xhr.onload = function() {
- if(xhr.status === 204) {
- successCallback();
- }
- }
- xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
- xhr.send(payload);
- }
- function gethInteractionWidgetData(interactionId) {
- return JSON.parse($('script[data-payload-url="/api/interaction/' + interactionId + '"]').text()).payload;
- }
- var interactionWidget = gethInteractionWidgetData(window.interactionId);
- var slides = interactionWidget.data.slides;
- var batch = buildVoteBatch(slides, VOTE_YES_FOR);
- var result = _.map(batch, function(vote) { return { slideId: vote.slideId, result: vote.answer.id }; });
- var resultFriendly = _.map(batch, function(vote) { return '' + vote.title + ': ' + vote.answer.value; });
- console.log(resultFriendly);
- setInterval(function() {
- submitInteraction(interactionWidget.interactionId, result, function() { console.log('voted'); });
- }, VOTE_DELAY);
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement