2022-07-20 20:31:49 +02:00
#!/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
2022-07-20 23:21:01 +02:00
import shutil
2022-07-20 20:31:49 +02:00
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
2022-07-20 23:21:01 +02:00
try :
os . mkdir ( os . path . join ( self . export_dir , " compare/ " ) )
except FileExistsError :
pass
2022-07-20 20:31:49 +02:00
2022-07-20 23:21:01 +02:00
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
2022-07-20 20:31:49 +02:00
2022-07-20 23:21:01 +02:00
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 " ) )
2022-07-20 20:31:49 +02:00
2022-07-20 23:21:01 +02:00
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 " )
2022-07-20 20:31:49 +02:00
2022-07-20 23:21:01 +02:00
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 ( ) )
2022-07-20 20:31:49 +02:00
f . close ( )
2022-07-20 23:21:01 +02:00
def export_startpage ( self , seller_listings_count , cheaper_listings_count , compare_time , date ) :
2022-07-21 00:01:48 +02:00
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 "
2022-07-20 20:31:49 +02:00
2022-07-20 23:21:01 +02:00
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 ( )
2022-07-20 20:31:49 +02:00
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 )
2022-07-21 00:01:48 +02:00
exp . export_startpage ( 10 , 2 , 0 , " d " )
2022-07-20 20:31:49 +02:00