#!/usr/bin/python3

## yannabino check

import os
import glob
import lxml.etree as et
# import argparse

import dater

from erimp import Erimp

import filer

## maximum issues to dig back
max_issues = 100

e = Erimp('nep')

# # # read date base
# date_base = filer.load('/home/ernad/ernad/var/nep/db/papers_dates.json')
#
# # # lowercase datasbases
# lc_db = {}
# for papid in date_base:
#     print(papid)
#     print(date_base[papid])
#     lc_db[papid.lower()] = date_base[papid]
#     quit()
#
#
# # # first get the data on the issues, up to max_issues
# in_issues = {}
# krikt_fudi = e.dirs['krikt']
# krikt_fufis = sorted(glob.glob(krikt_fudi + "/*.json.gz"), reverse=True)[:max_issues]
# last_issuedate = os.path.basename(krikt_fufis[0])[0:10]
# issued = {}
# for krikt_fufi in krikt_fufis:
#     date = os.path.basename(krikt_fufi)[0:10]
#     data = filer.load(krikt_fufi).keys()
#     for papid in data:
#         issued[papid] = date

fields_fudi = '/home/ernad/fields'
# # leave out last field
# field_fufis = sorted(glob.glob(fields_fudi + "/*.xml"), reverse=True)[1:]
field_fufis = sorted(glob.glob(fields_fudi + "/*.xml"))[1:]

# # read the futli data
futli_fudi = '/home/ernad/var/opt/nep/futli'
futli_fufis = glob.glob(futli_fudi + "/*.txt")
futlis = {}
for futli_fufi in futli_fufis:
    futli_file = open(futli_fufi, 'r')
    for line in futli_file.readlines():
        futli = line[:-1]
        futlis[futli] = True
    futli_file.close()

in_fields = {}
missing = {}
count_issued = 0
count_fielded = 0
count_missing = 0
count_no_futli = 0
today = dater.today()

for field_fufi in field_fufis:
    date = os.path.basename(field_fufi)[0:10]
    if date < '2026-04-20':
        continue
    if date == today:
        continue
    #if date > last_issuedate:
    #    print("I skip " + date)
    #    continue
    doc = filer.parse_lax(field_fufi)
    fields_fudi = '/home/ernad/fields'
    papers = doc.getroot().xpath('//@id', namespaces=e.abovo.nsmap)
    for papid in papers:
        count_fielded += 1
        #if papid in issued:
        #    count_issued += 1
        #    # print(papid + ' issued')
        #    continue
        if papid.lower() not in futlis:
            print(f"no futli for {papid}")
            count_no_futli += 1
            continue
        print(papid)
        quit()
        if date not in missing:
            count_missing += 1
            missing[date] = [papid]
            continue
        count_missing += 1
        missing[date].append(papid.lower())
for date in missing:
    print(date + ' ' + str(len(missing[date])))
# print(missing)
quit()

print(str(count_fielded) + ' fielded')
print(str(count_issued) + ' issued')
count_not_issued = count_fielded - count_issued
print(str(count_not_issued) + ' not issued')
print(str(count_no_futli) + ' no futli')
print(str(count_missing) + ' missing')

for date in missing:
    print(date + ' ' + str(len(missing[date])))
