def save_register(form_data): db = DB() user = form_data['user'] passwd = form_data['password'] email = form_data['email'] db.insert('users',{'username':user, 'password':passwd, 'email':email, 'create_at':datetime.now().strftime("%y-%m-%d %H:%M")}) return True, 'ok'
def setup(): clean_db_cache('test_users') db = DB() db.insert( 'test_users', { 'username': '******', 'password': '******', 'email': '*****@*****.**', 'create_at': datetime.datetime.now().strftime("%y-%m-%d %H:%M"), 'is_active': 'Y', 'snp_table': 'snp_mRNA_table', 'expr_table': 'expr_gene_pos', 'desc_table': 'locus_gene_mlocus' })
class Auctions(object): def __init__(self): self.__config = ConfigParser() self.__config.read('app/config') self.__db = DB() self.__retries = 0 self.__max_retries = int( self.__config.get('komornik.pl', 'max_retries')) def get_auctions(self, page=None): html = self.__get_auctions_page(page) auctions = self.__parse_auctions_page(html) return auctions def set_auctions(self, auctions): for auction in auctions: self.__db.insert(table='auctions', data=auction, ignore_duplicates=True) def __get_auctions_page(self, page=None): ua = UserAgent() headers = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'pl,en-US;q=0.7,en;q=0.3', 'Connection': 'keep-alive', 'Host': 'licytacje.komornik.pl', 'Upgrade-Insecure-Requests': '1', 'Cache-Control': 'max-age=0', 'User-Agent': ua.random, } url = self.__config.get( 'komornik.pl', 'auctions_page') if not page else self.__config.get( 'komornik.pl', 'auctions_page') + '?page=' + str(page) print('Getting %s' % url) try: response = requests.get( url, headers=headers, timeout=int(self.__config.get('komornik.pl', 'timeout'))) except requests.exceptions.ReadTimeout: if self.__retries < self.__max_retries: self.__retries += 1 sleep(randint(5, 10)) return self.__get_auctions_page(page) else: raise Exception('Timeout. Nie pobrano strony') if response.status_code == 200: return response.text elif self.__retries < self.__max_retries: self.__retries += 1 sleep(randint(5, 10)) return self.__get_auctions_page(page) else: raise Exception('Nie pobrano strony') @staticmethod def __parse_auctions_page(html): auctions = [] soup = BeautifulSoup(html, "html.parser") rows = soup.find('table', 'table').find_all('tr') for row in rows: cells = row.find_all("td") if len(cells) >= 7: auctions.append({ # 'lp': cells[0].get_text().strip(), 'bailiff_name': cells[1].get_text().strip(), 'signature': cells[2].get_text().strip(), 'kw_number': cells[3].get_text().strip(), 'type': cells[4].get_text().strip(), 'address': cells[5].get_text().strip(), 'id': findall('\d+', cells[6].find('a')['href'])[0], }) return auctions