#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Author: Hendrik Schutter, mail@hendrikschutter.com Date of creation: 2022/07/20 Date of last modification: 2022/07/20 """ from datetime import datetime import os import template_html as thtml import shutil class exporter: export_dir = "" tsStart = 0 counter = 0 def __init__(self, path): self.export_dir = path self.tsStart = datetime.now() # set start time for exporting try: os.mkdir(self.export_dir) except FileExistsError: pass try: os.mkdir(os.path.join(self.export_dir, "compare/")) except FileExistsError: pass self.copy_static_export() def copy_static_export(self): try: os.mkdir(os.path.join(self.export_dir, "css/")) except FileExistsError: pass try: os.mkdir(os.path.join(self.export_dir, "data/")) except FileExistsError: pass shutil.copy( "./html/css/w3.css", os.path.join(self.export_dir, "css/", "w3.css") ) shutil.copy( "./html/data/favicon.ico", os.path.join(self.export_dir, "data/", "favicon.ico"), ) shutil.copy( "./html/data/icon.png", os.path.join(self.export_dir, "data/", "icon.png") ) def export_comparison(self, seller_listing, competitor_listings): self.counter += 1 f = open( os.path.join(self.export_dir, "compare/", str(self.counter) + ".html"), "a" ) f.write(thtml.html_comparison_head()) f.write("") f.write(thtml.html_comparison_navigation(self.counter)) f.write(thtml.html_comparison_seller_listing(seller_listing)) f.write(thtml.html_comparison_competitor_list_header()) competitor_listing_counter = 0 for competitor_listing in competitor_listings: competitor_listing_counter += 1 f.write( thtml.html_comparison_competitor_listing( competitor_listing, competitor_listing_counter ) ) f.write(thtml.html_comparison_trailer()) f.close() def export_startpage( self, seller_listings_count, cheaper_listings_count, compare_time, date ): duration_export = datetime.now() - self.tsStart hours, remainder = divmod(duration_export.total_seconds(), 3600) minutes, seconds = divmod(remainder, 60) duration_export = ( str(hours) + "h " + str(minutes) + "m " + str(round(seconds, 2)) + "s" ) f = open(os.path.join(self.export_dir, "index.html"), "a") f.write(thtml.html_startpage_head()) f.write( thtml.html_startpage_info( seller_listings_count, cheaper_listings_count, compare_time, duration_export, date, ) ) f.write(thtml.html_startpage_trailer()) f.close() if __name__ == "__main__": seller_listing_dummy = { "title": "Seller Title", "price": float(42.42), "image": "https://i.ebayimg.com/images/g/7lAAAOSw~ixieBVP/s-l500.jpg", "url": "https://www.ebay.de/itm/165508291809", } competitor_listings_dummy = [ { "title": "Competitor Title 01", "price": float(40.42), "image": "https://i.ebayimg.com/images/g/7lAAAOSw~ixieBVP/s-l500.jpg", "url": "https://www.ebay.de/itm/165508291809", }, { "title": "Competitor Title 02", "price": float(41.42), "image": "https://i.ebayimg.com/images/g/7lAAAOSw~ixieBVP/s-l500.jpg", "url": "https://www.ebay.de/itm/165508291809", }, { "title": "Competitor Title 03", "price": float(42.00), "image": "https://i.ebayimg.com/images/g/7lAAAOSw~ixieBVP/s-l500.jpg", "url": "https://www.ebay.de/itm/165508291809", }, ] exp = exporter("./html_out/") exp.export_comparison(seller_listing_dummy, competitor_listings_dummy) exp.export_startpage(10, 2, 0, "d")