#!/usr/bin/python3

from argparse import ArgumentParser
import re
import locale
from datetime import date
from pathlib import PosixPath

try:
    locale.setlocale(locale.LC_ALL, 'it_IT.utf-8')
except:
    pass

BASEDIR=PosixPath('/megaror/Redazione/anniversari/')

date_re = re.compile(r'^([0-9]{1,2})-([0-9]{1,2})-?(.*)$')

today = date.today()

def find_all():
    for f in BASEDIR.iterdir():
        if not f.is_dir():
            continue
        m = date_re.match(f.name)
        if m is None:
            continue
        month, day, name = (m.group(1), m.group(2), m.group(3))
        d = date(year=today.year, month=int(month), day=int(day))
        if (d - today).days < 0:
            d = date(year=today.year + 1, month=int(month), day=int(day))
        yield (d, name.replace('-', ' '), f)

def main():
    p = ArgumentParser()
    p.add_argument('--days', type=int, default=10)
    args = p.parse_args()

    content = ""
    for d, name, path in sorted(find_all()):
        if (d - today).days < args.days:
            title = "%s: %s" % (d.strftime("%A %d %B").title(), name)
            content += "%s\n%s\n\n" % (title, '=' * len(title))
            text_files = list(path.glob("*.txt"))
            for f in text_files:
                content += '%s\n' % (f.open().read())

    print(content)

if __name__ == '__main__':
    main()
