eBayCompetitorPriceCompare/export_html.py

112 lines
3.8 KiB
Python

#!/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("<body>")
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")