"""
清洗Seed库，解决时间问题
"""
import re

from base.utils import mongo_helper
from base.utils.es_helper import es_query
from base.utils.mongo_helper import query_list_new

years = ["2020", "2021"]
months = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"]
days = [
    "01", "02", "03", "04", "05", "06", "07", "08", "09",
    "10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
    "20", "21", "22", "23", "24", "25", "26", "27", "28", "29",
    "30", "31"
]


def change(input_str):
    maybe_list = []
    for year in years:
        for month in months:
            for day in days:
                maybe_list.append(year + month + day)
                maybe_list.append(year + "-" + month + "-" + day)
                maybe_list.append(year + "\/" + month + "\/" + day)
                maybe_list.append(year + "\/" + month + day)
                maybe_list.append(year + month + "\/" + day)
                maybe_list.append(year + "-" + month + "\/" + day)
            maybe_list.append(year + month)
            maybe_list.append(year + "-" + month)
            maybe_list.append(year + "\/" + month)
        maybe_list.append(year)
    for maybe_str in maybe_list:
        if maybe_str in input_str:
            if "\/" in maybe_str and "-" in maybe_str:
                maybe_re = ""
                for tt in maybe_str.split("\/"):
                    if "-" not in tt:
                        maybe_re += "[0-9]{" + str(len(tt)) + "}" + "\/"
                    else:
                        maybe_re_new = ""
                        for tt2 in tt.split("-"):
                            maybe_re_new += "[0-9]{" + str(len(tt2)) + "}" + "\-"
                        maybe_re += maybe_re_new[:-2] + "\/"

                maybe_re = maybe_re[:-2]
                input_str = input_str.replace(maybe_str, maybe_re)

            elif "\/" in maybe_str:
                maybe_re = ""
                for tt in maybe_str.split("\/"):
                    maybe_re += "[0-9]{" + str(len(tt)) + "}" + "\/"
                maybe_re = maybe_re[:-2]
                input_str = input_str.replace(maybe_str, maybe_re)

            elif "-" in maybe_str:
                maybe_re = ""
                for tt in maybe_str.split("-"):
                    maybe_re += "[0-9]{" + str(len(tt)) + "}" + "\-"
                maybe_re = maybe_re[:-2]
                input_str = input_str.replace(maybe_str, maybe_re)

            else:
                maybe_re = "[0-9]{" + str(len(maybe_str)) + "}"
                input_str = input_str.replace(maybe_str, maybe_re)
    return input_str


if __name__ == '__main__':
    items = query_list_new("aic_news_range_seed")
    for item in items:
        re_news = item.get("re_news")
        if re_news is not None:
            re_news_old = re_news
            re_news_new = change(re_news)
            if re_news_new != re_news:
                print(f"---\n{re_news}\n{re_news_new}")
                # 用一个es搜索的结果做测试
                print("[!!]完成更新")
                mongo_helper.update_one(table="aic_news_range_seed", filter={"_id": item['_id']},
                                        update={'$set': {"re_news": re_news_new}})
