コード例 #1
0
        self._hooks = [pomodoro, sound, video]

    def __call__(self, goal=None):

        [x.start(goal) for x in self._hooks]

        n = int(self._config.get("minutes"))
        for i in range(n):
            time.sleep(ONE_MINUTE)
            [x.tick(i + 1, n) for x in self._hooks]

        [x.end() for x in self._hooks]


if __name__ == '__main__':
    config = Config.from_env_variables({
        "minutes": "POMO_MINUTES",
        "log_file": "POMO_LOGFILE",
        "minute_elapsed_sound": "POMO_MINUTE_ELAPSED_SOUND",
        "timer_start_sound": "POMO_START_SOUND",
        "timer_end_sound": "POMO_END_SOUND",
        "player": "POMO_PLAYER"
    })

    timer = Timer(config)

    if len(sys.argv) > 1:
        timer(string.join(sys.argv[1:], " "))
    else:
        timer()
コード例 #2
0
ファイル: pomostats.py プロジェクト: konr/pomo
        print "Attempted: {}".format(len(pomodoros_list))
        print "Not quickly aborted (5min): {}".format(len(not_aborted))
        print "Pomodoros: {}".format(len(ended))
        print "Last 24 hours: {}".format(len(last_24h))

        for p in sorted(last_24h, key=lambda x: x["started_at"]):
            print "  - {:%H:%M}: {}".format(
                datetime.fromtimestamp(p.get("started_at")),
                p.get("goal", "???"))


class EAVTReader(Configurable):
    def __call__(self):
        with open(os.environ["HOME"] + "/" + self._config.get("log_file"),
                  "r") as f:
            data = f.read()
        data = "[" + data.replace("}{", "},{") + "]"
        # FIX sort by t
        self._data = json.loads(data)
        return self._data


if __name__ == '__main__':
    config = Config.from_env_variables({"log_file": "POMO_LOGFILE"})
    data_reader = EAVTReader(config)
    state_reconstructor = StateReconstructor()
    analyser = Analyser()

    analyser(state_reconstructor(data_reader()))