#import copy #import os #import sys #import base64 #import hashlib import re import docing import filing import lxml.etree as etree from lxml.builder import ElementMaker from nitpo import Nitpo from sheets import Sheets class Webenv(Nitpo): def __init__(self, do_verbose=False): """web class""" super().__init__() self.N = "{%s}" % self.const['ns'] self.E = ElementMaker(nsmap={None: self.const['ns']}) self.env = None self.sheets = Sheets() self.do_verbose = do_verbose def prepare(self): """this is the stuff we prepare at start of server""" preps = {} preps['web_sheet'] = self.sheets.return_sheet('web') # # compiled regular expressions res = {} surid = r'[-_0-9a-zA-Z]{22}' res['surid'] = re.compile(surid) ## kept for legaci res['url_u'] = re.compile(r'//u/' + surid) res['url_w'] = re.compile(r'//w/' + surid) res['url'] = re.compile(r'//[uw]/' + surid) res['main_param_name'] = re.compile(r'[A-Z_]+') preps['res'] = res # # maximum requests for a faild kisu to relead vakis preps['const'] = {} preps['count_reload_vakis'] = {} if not self.has_conf('files', 'vakis'): raise Exception("webenv needs a vakis file.") preps['vakis'] = filing.load(self.conf['files']['vakis']) return preps