Esempio n. 1
0
    def redeem_coins(self, event):
        """
        :help: Redeem your free coins
        """
        user_coins = self._get_user_coins(event["user"])
        if user_coins == DECIMAL_ZERO:
            cache = self._redeem_cache(event["server"], event["user"])
            if not self.bot.cache.has_item(cache):
                redeem_amount = self._redeem_amount(event["server"])
                self._give(event["server"], event["user"], redeem_amount)

                event["stdout"].write("Redeemed %s coins" % self._coin_str(
                    redeem_amount))

                redeem_delay = self._redeem_delay(event["server"])
                self.bot.cache.temporary_cache(cache, redeem_delay)
            else:
                time_left = self.bot.cache.until_expiration(cache)
                event["stderr"].write("%s: Please wait %s before redeeming" % (
                    event["user"].nickname,
                    utils.to_pretty_time(math.ceil(time_left))))
        else:
            event["stderr"].write(
                "%s: You can only redeem coins when you have none" %
                event["user"].nickname)
Esempio n. 2
0
 def next_lottery(self, event):
     """
     :help: Show time until the next lottery draw
     """
     until = self._until_next_6_hour()
     event["stdout"].write("Next lottery is in: %s" %
         utils.to_pretty_time(until))
Esempio n. 3
0
    def redeem_coins(self, event):
        """
        :help: Redeem your free coins
        """
        user_coins = decimal.Decimal(event["user"].get_setting("coins", "0.0"))
        if user_coins == DECIMAL_ZERO:
            cache = self._redeem_cache(event["server"], event["user"])
            if not self.bot.cache.has_item(cache):
                redeem_amount = decimal.Decimal(event["server"].get_setting(
                    "redeem-amount", DEFAULT_REDEEM_AMOUNT))
                event["user"].set_setting("coins",
                                          str(user_coins + redeem_amount))
                event["stdout"].write("Redeemed %s coins" %
                                      "{0:.2f}".format(redeem_amount))

                redeem_delay = event["server"].get_setting(
                    "redeem-delay", DEFAULT_REDEEM_DELAY)
                self.bot.cache.temporary_cache(cache, redeem_delay)
            else:
                time_left = self.bot.cache.until_expiration(cache)
                event["stderr"].write(
                    "Please wait %s before redeeming" %
                    utils.to_pretty_time(math.ceil(time_left)))
        else:
            event["stderr"].write(
                "You can only redeem coins when you have none")
Esempio n. 4
0
 def next_lottery(self, event):
     """
     :help: Show time until the next lottery draw
     """
     until = self._until_next_6_hour()
     event["stdout"].write("Next lottery is in: %s" %
         utils.to_pretty_time(until))
Esempio n. 5
0
    def redeem_coins(self, event):
        """
        :help: Redeem your free coins
        """
        user_coins = self._get_user_coins(event["user"])
        if user_coins == DECIMAL_ZERO:
            cache = self._redeem_cache(event["server"], event["user"])
            if not self.bot.cache.has_item(cache):
                redeem_amount = self._redeem_amount(event["server"])
                self._give(event["server"], event["user"], redeem_amount)

                event["stdout"].write("Redeemed %s coins" % self._coin_str(
                    redeem_amount))

                redeem_delay = self._redeem_delay(event["server"])
                self.bot.cache.temporary_cache(cache, redeem_delay)
            else:
                time_left = self.bot.cache.until_expiration(cache)
                event["stderr"].write("%s: Please wait %s before redeeming" % (
                    event["user"].nickname,
                    utils.to_pretty_time(math.ceil(time_left))))
        else:
            event["stderr"].write(
                "%s: You can only redeem coins when you have none" %
                event["user"].nickname)
Esempio n. 6
0
    def seen(self, event):
        """
        :help: Find out when a user was last seen
        :usage: <nickname>
        """
        user = event["server"].get_user(event["args_split"][0])
        seen_seconds = user.get_setting("seen")

        if seen_seconds:
            seen_info = None
            if event["is_channel"]:
                seen_info = event["target"].get_user_setting(
                    event["user"].get_id(), "seen-info", None)
                if seen_info:
                    seen_info = " (%s%s)" % (seen_info["action"],
                                             utils.consts.RESET)

            since = utils.to_pretty_time(time.time() - seen_seconds,
                                         max_units=2)
            event["stdout"].write(
                "%s was last seen %s ago%s" %
                (event["args_split"][0], since, seen_info or ""))
        else:
            event["stderr"].write("I have never seen %s before." %
                                  (event["args_split"][0]))
Esempio n. 7
0
    def stop_timer(self, event):
        timer = self._get_timer(event["user"])
        if not timer:
            raise utils.EventError("No timer started")

        self._del_timer(event["user"])
        elapsed = time.time() - timer
        pretty = utils.to_pretty_time(int(elapsed))
        event["stdout"].write("Timer stopped at %s" % pretty)
Esempio n. 8
0
 def seen(self, event):
     """
     :help: Find out when a user was last seen
     :usage: <nickname>
     """
     seen_seconds = event["server"].get_user(event["args_split"][0]
         ).get_setting("seen")
     if seen_seconds:
         since = utils.to_pretty_time(time.time()-seen_seconds,
             max_units=2)
         event["stdout"].write("%s was last seen %s ago" % (
             event["args_split"][0], since))
     else:
         event["stderr"].write("I have never seen %s before." % (
             event["args_split"][0]))
Esempio n. 9
0
 def seen(self, event):
     """
     :help: Find out when a user was last seen
     :usage: <nickname>
     """
     seen_seconds = event["server"].get_user(
         event["args_split"][0]).get_setting("seen")
     if seen_seconds:
         since = utils.to_pretty_time(time.time() - seen_seconds,
                                      max_units=2)
         event["stdout"].write("%s was last seen %s ago" %
                               (event["args_split"][0], since))
     else:
         event["stderr"].write("I have never seen %s before." %
                               (event["args_split"][0]))
Esempio n. 10
0
    def check_run(self, data):
        name = data["check_run"]["name"]
        commit = self._short_hash(data["check_run"]["head_sha"])
        commit = utils.irc.color(commit, utils.consts.LIGHTBLUE)

        url = ""
        if data["check_run"]["details_url"]:
            url = data["check_run"]["details_url"]
            url = " - %s" % self.exports.get_one("shortlink")(url)

        duration = ""
        if data["check_run"]["completed_at"]:
            started_at = self._iso8601(data["check_run"]["started_at"])
            completed_at = self._iso8601(data["check_run"]["completed_at"])
            if completed_at > started_at:
                seconds = (completed_at - started_at).total_seconds()
                duration = " in %s" % utils.to_pretty_time(seconds)

        status = data["check_run"]["status"]
        status_str = ""
        if status == "queued":
            status_str = utils.irc.bold("queued")
        elif status == "in_progress":
            status_str = utils.irc.bold("started")
        elif status == "completed":
            conclusion = data["check_run"]["conclusion"]
            conclusion_color = utils.consts.GREEN
            if conclusion in CHECK_RUN_FAILURES:
                conclusion_color = utils.consts.RED
            if conclusion == "neutral":
                conclusion_color = utils.consts.LIGHTGREY

            status_str = utils.irc.color(CHECK_RUN_CONCLUSION[conclusion],
                                         conclusion_color)

        return [
            "[build @%s] %s: %s%s%s" %
            (commit, name, status_str, duration, url)
        ]
Esempio n. 11
0
    def check_run(self, data):
        name = data["check_run"]["name"]
        commit = self._short_hash(data["check_run"]["head_sha"])
        commit = utils.irc.color(commit, utils.consts.LIGHTBLUE)

        url = ""
        if data["check_run"]["details_url"]:
            url = data["check_run"]["details_url"]
            url = " - %s" % self.exports.get_one("shortlink")(url)

        duration = ""
        if data["check_run"]["completed_at"]:
            started_at = self._iso8601(data["check_run"]["started_at"])
            completed_at = self._iso8601(data["check_run"]["completed_at"])
            if completed_at > started_at:
                seconds = (completed_at-started_at).total_seconds()
                duration = " in %s" % utils.to_pretty_time(seconds)

        status = data["check_run"]["status"]
        status_str = ""
        if status == "queued":
            status_str = utils.irc.bold("queued")
        elif status == "in_progress":
            status_str = utils.irc.bold("started")
        elif status == "completed":
            conclusion = data["check_run"]["conclusion"]
            conclusion_color = COLOR_POSITIVE
            if conclusion in CHECK_RUN_FAILURES:
                conclusion_color = COLOR_NEGATIVE
            if conclusion == "neutral":
                conclusion_color = COLOR_NEUTRAL

            status_str = utils.irc.color(
                CHECK_RUN_CONCLUSION[conclusion], conclusion_color)

        return ["[build @%s] %s: %s%s%s" % (
            commit, name, status_str, duration, url)]
Esempio n. 12
0
 def _uptime(self):
     return utils.to_pretty_time(int(time.time()-self.bot.start_time))
Esempio n. 13
0
 def _uptime(self):
     return utils.to_pretty_time(int(time.time() - self.bot.start_time))