#!/usr/bin/env python3
# -*-coding:UTF-8 -*
"""
The DbCleaner Module
===================

"""
import os
import sys
import time
import datetime

from pubsublogger import publisher

import NotificationHelper

from packages import Date
from packages import Item
from packages import Term

def clean_term_db_stat_token():
    all_stat_date = Term.get_all_token_stat_history()

    list_date_to_keep = Date.get_date_range(31)
    for date in all_stat_date:
        if date not in list_date_to_keep:
            # remove history
            Term.delete_token_statistics_by_date(date)

    print('Term Stats Cleaned')


if __name__ == "__main__":

    publisher.port = 6380
    publisher.channel = "Script"
    publisher.info("DbCleaner started")

    # low priority
    time.sleep(180)

    daily_cleaner = True
    current_date = datetime.datetime.now().strftime("%Y%m%d")

    while True:

        if daily_cleaner:
            clean_term_db_stat_token()
            daily_cleaner = False
        else:
            sys.exit(0)
            time.sleep(600)

        new_date = datetime.datetime.now().strftime("%Y%m%d")
        if new_date != current_date:
            current_date = new_date
            daily_cleaner = True