Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- r.thebutton = {
- _setTimer: function (e) {
- var t = "00000", n = (e > 0 ? e : 0).toString(), i = t.substring(0, t.length - n.length) + n;
- for (var s = 0; s < 4; s++)r.thebutton._timerTextNodes[s].nodeValue = i[s];
- e % 100 === 0 && r.thebutton._drawPie(e, 6e4)
- }, _countdown: function () {
- r.thebutton._setTimer(r.thebutton._msLeft), r.thebutton._msLeft = Math.max(0, r.thebutton._msLeft - 10)
- }, init: function () {
- if ($("#thebutton").length === 0)return;
- this._chart = new google.visualization.PieChart($(".thebutton-pie").get(0)), this._msLeft = 0, this._msgSecondsLeft = 0, this._tickTime = "", this._tickMac = "", this._lastMsLeft = Infinity, this._timerTextNodes = [$("#thebutton-s-10s").get(0).childNodes[0], $("#thebutton-s-1s").get(0).childNodes[0], $("#thebutton-s-100ms").get(0).childNodes[0], $("#thebutton-s-10ms").get(0).childNodes[0]], r.debug("in r.thebutton.init()"), this._started = !1, r.config.thebutton_websocket ? (r.debug("got thebutton_websocket"), this._websocket = new r.WebSocket(r.config.thebutton_websocket), this._websocket.on({
- "message:expired": this._onExpired,
- "message:not_started": this._onNotStarted,
- "message:just_expired": this._onJustExpired,
- "message:ticking": this._onTicking
- }, this), this._websocket.start()) : r.debug("didn't get thebutton_websocket");
- var e = $("#thebutton").parent();
- e.on("click", function (e) {
- var t = $(this);
- t.is(".active.locked") && (t.addClass("unlocking").removeClass("locked"), setTimeout(function () {
- t.removeClass("unlocking").addClass("unlocked")
- }, 300))
- }), $("#thebutton").on("click", function (t) {
- t.preventDefault(), t.stopPropagation();
- if (e.hasClass("pressed"))return;
- r.thebutton._countdownInterval = window.clearInterval(r.thebutton._countdownInterval), r.thebutton._setTimer(6e4);
- var n = {
- seconds: $("#thebutton-timer").val(),
- prev_seconds: r.thebutton._msgSecondsLeft,
- tick_time: r.thebutton._tickTime,
- tick_mac: r.thebutton._tickMac
- };
- $.request("press_button", n, function (e) {
- console.log(e)
- }), e.addClass("pressed").removeClass("unlocked"), r.thebutton.pulse()
- })
- }, _drawPie: function (e, t) {
- var n = t - e, r = google.visualization.arrayToDataTable([["", ""], ["gone", n], ["remaining", e]]), i = {
- chartArea: {
- top: 0,
- left: 0,
- width: 70,
- height: 70
- },
- pieSliceBorderColor: "transparent",
- legend: "none",
- pieSliceText: "none",
- slices: {0: {color: "#C8C8C8"}, 1: {color: "#4A4A4A"}},
- enableInteractivity: !1
- };
- this._chart.draw(r, i)
- }, _onExpired: function (e) {
- var t = e.seconds_elapsed;
- r.debug("timer expired " + t + " ago"), $(".thebutton-wrap").removeClass("active").addClass("complete"), r.thebutton._countdownInterval = window.clearInterval(r.thebutton._countdownInterval), r.thebutton._setTimer(0)
- }, _onNotStarted: function (e) {
- r.debug("timer hasn't started")
- }, _onJustExpired: function (e) {
- r.debug("timer just expired"), $(".thebutton-wrap").removeClass("active").addClass("complete"), $el = $("#thebutton").parent(), $el.removeClass("unlocked locked logged-out pressed too-new not-active").addClass("denied has-expired")
- }, _onTicking: function (e) {
- if (!r.thebutton._started) {
- var t = $("#thebutton").parent();
- t.is(".not-active, .locked") && t.removeClass("denied not-active").addClass("active locked"), r.thebutton._started = !0, r.thebutton._countdownInterval = window.setInterval(r.thebutton._countdown, 10)
- }
- var n = e.seconds_left;
- this._tickTime = e.now_str, this._msgSecondsLeft = n, this._tickMac = e.tick_mac;
- var i = e.participants_text, s = n * 1e3;
- s > r.thebutton._lastMsLeft && this.pulse2(), r.thebutton._lastMsLeft = s, r.thebutton._msLeft = n * 1e3, r.thebutton._countdownInterval || (this._countdownInterval = window.setInterval(r.thebutton._countdown, 10)), r.debug(n + " seconds remaining"), r.debug(i + " users have pushed the button"), $("#thebutton-timer").val(parseInt(e.seconds_left, 10)), $(".thebutton-participants").text(e.participants_text)
- }, pulse: function () {
- $els = $(".thebutton-container, .thebutton-pie-container"), $els.removeClass("pulse pulse2"), setTimeout(function () {
- $els.addClass("pulse")
- }, 1)
- }, pulse2: function () {
- var e = $(".thebutton-pie-container"), t = this;
- e.removeClass("pulse pulse2"), setTimeout(function () {
- e.addClass("pulse2")
- }, 1)
- }, _testState: function (e, t) {
- t = t || 6e4, $el = $("#thebutton").parent();
- var n = "denied logged-out too-new has-expired pressed locked unlocked";
- $el.removeClass(n), r.thebutton._msLeft = t, r.thebutton.pulse();
- switch (e) {
- case"logged-out":
- $el.addClass("denied logged-out");
- break;
- case"too-new":
- $el.addClass("denied too-new");
- break;
- case"has-expired":
- $el.addClass("denied has-expired");
- break;
- case"pressed":
- $el.addClass("pressed");
- break;
- case"unlocked":
- $el.addClass("unlocked");
- break;
- case"locked":
- default:
- $el.addClass("locked")
- }
- }
- }, $(function () {
- r.thebutton.init()
- })
- }catch
- (err)
- {
- r.sendError("Error running module", "reddit.js", ":", err)
- }
- ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement