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