from nitpo import Nitpo import copy # import filing # import subprocess import json # only needed for testnig import time from reports import Reports import lxml.etree as etree # welco # baunz bounced # musko must confrm # already_subbed there # proda profile damage # bad_report class Fecha(Nitpo): def __init__(self, do_verbose=False): super().__init__() self.do_verbose = do_verbose self.reports = Reports() self.out = {} return None def output(self, env, preps): is_it_parsed = self.parse_uri(env, preps) if not is_it_parsed: ## signals error return {} return self.out def parse_uri(self, env, preps): raw_uri = env['RAW_URI'] self.out['raw_uri'] = env['RAW_URI'] repcode = None emad = None out = preps['res']['re'].fullmatch(raw_uri) if out is None: # # let server.py generate a human response return False #else: # self.out['perid'] = out.groups(0)[2] repcode = out.groups(0)[0] ## syntax check for repcode, if it fails, ## we use a human-readable page if not preps['res']['repcode'].fullmatch(repcode): return False ## now we need to get started with proding a fetcha output web_ele = copy.deepcopy(preps['web_ele']) emad = out.groups(0)[1] # # questionable whether we should # if not self.reports.does_it_exist(repcode): if not self.reports.does_it_exist(repcode): web_ele.attrib['status'] = 'bad_report' # time.sleep(6) web_ele.attrib['repcode'] = repcode web_ele.attrib['emad'] = emad web_doc = etree.ElementTree(web_ele) message = str(preps['sheets']['fecha'](web_doc)) self.out['message'] = message return True