MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / exportHtmlThread

Class exportHtmlThread

gui/utils/exportHtml.py:38–363  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

36
37
38class exportHtmlThread(threading.Thread):
39 def __init__(self, progress=False):
40 threading.Thread.__init__(self)
41 self.name = "HTMLExport"
42 self.progress = progress
43 self.stopRunning = False
44
45 def stop(self):
46 self.stopRunning = True
47
48 def run(self):
49 # wait 1 second just in case a lot of modifications get made
50 time.sleep(1)
51 if self.stopRunning:
52 return
53
54 sMkt = Market.getInstance()
55 sFit = Fit.getInstance()
56 settings = HTMLExportSettings.getInstance()
57
58 minimal = settings.getMinimalEnabled()
59 dnaUrl = "https://o.smium.org/loadout/dna/"
60
61 if minimal:
62 HTML = self.generateMinimalHTML(sMkt, sFit, dnaUrl)
63 else:
64 HTML = self.generateFullHTML(sMkt, sFit, dnaUrl)
65
66 try:
67 FILE = open(settings.getPath(), "w", encoding='utf-8')
68 FILE.write(HTML)
69 FILE.close()
70 except IOError as ex:
71 pyfalog.warning("Failed to write to " + settings.getPath())
72 pass
73 except (KeyboardInterrupt, SystemExit):
74 raise
75 except Exception as e:
76 if self.progress:
77 self.progress.error = f'{e}'
78 finally:
79 if self.progress:
80 self.progress.current += 1
81 self.progress.workerWorking = False
82
83 def generateFullHTML(self, sMkt, sFit, dnaUrl):
84 """ Generate the complete HTML with styling and javascript """
85 timestamp = time.localtime(time.time())
86 localDate = "%d/%02d/%02d %02d:%02d" % (timestamp[0], timestamp[1], timestamp[2], timestamp[3], timestamp[4])
87
88 HTML = """
89<!DOCTYPE html>
90<html>
91 <head>
92 <title>Pyfa Fittings</title>
93 <meta name="viewport" content="width=device-width, initial-scale=1">
94 <meta charset="utf-8" />
95 <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css" />

Callers 2

__init__Method · 0.85
refreshFittingHtmlMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected