187 lines
11 KiB
Python
187 lines
11 KiB
Python
import random
|
|
import uuid
|
|
import copy
|
|
import os
|
|
|
|
|
|
if "GETFORM" not in globals():GETFORM={}
|
|
if "POSTFORM" not in globals():POSTFORM={}
|
|
GETFORM={"path": r"C:\Users\Lenovo\Desktop\Contract\Confidentiality Agreement For Galaxy Vantone Software Development Studio.docx"}
|
|
|
|
class PWMOD():
|
|
DOC="!"
|
|
END="/"
|
|
ROT="."
|
|
HTM=""
|
|
class PyWeb():
|
|
def __init__(self):
|
|
self.Html=""
|
|
self.Frame={"Code":[]}
|
|
self.HeadId=self.RanDomId()
|
|
self.BodyId=self.RanDomId()
|
|
self.FootId=self.RanDomId()
|
|
self.MainId=self.RanDomId()
|
|
self.TopDId=self.RanDomId()
|
|
self.SetId=self.MainId
|
|
self._InItFrame()
|
|
self._InItMET()
|
|
self._InItEL()
|
|
def _InItFrame(self):
|
|
self.INIT_DOCTYPE=_DOCTYPE(self, html=None)
|
|
self._AddCode(PWMOD.HTM, "head", id=self.HeadId, nend=True)
|
|
self._AddCode(PWMOD.HTM, "body", id=self.BodyId, nend=True)
|
|
self._AddCode(PWMOD.HTM, "nav", id=self.TopDId, _class="pw-Top",FrameId=self.BodyId, nend=True)
|
|
self._AddCode(PWMOD.HTM, "main", id=self.MainId, _class="pw-main", FrameId=self.BodyId, nend=True)
|
|
self._AddCode(PWMOD.HTM, "footer", id=self.FootId, nend=True, FrameId=self.BodyId)
|
|
def _InItMET(self):
|
|
self.AddCSS("/assets/css/gvs-design-public-system.css")
|
|
self.AddCSS("/PyWeb/style.css")
|
|
self.AddCSS("/PyWeb/npro/npro.css")
|
|
self.AddJS("/PyWeb/npro/npro.js")
|
|
def RanDomId(self):
|
|
return str(uuid.uuid3(uuid.NAMESPACE_DNS, str(random.randint(0, 10000000000000000000)))).replace("-","")
|
|
def _SearchChange(self, SearchClass, FrameId, ClassAdd):
|
|
for i in SearchClass:
|
|
if "id" in i["KW"] and i["KW"]["id"] == FrameId:
|
|
_=copy.deepcopy(ClassAdd)
|
|
i["Child"].append(_)
|
|
return True
|
|
else:
|
|
if self._SearchChange(i["Child"], FrameId=FrameId, ClassAdd=ClassAdd):
|
|
return True
|
|
return False
|
|
def _AddCode(self, StartAdd, Code, IDEcho=False, IntermediateSpecifics = "", FrameId = None, nend=False, id = False, Child=[], **k):
|
|
IDEcho=(True if id else False) if IDEcho == None else bool(IDEcho)
|
|
k["id"]=id if id else self.RanDomId()
|
|
_={"StartAdd": StartAdd, "Code": Code, "NeedEnd": nend, "IntermediateSpecifics": IntermediateSpecifics, "FrameId": FrameId, "IDEcho": IDEcho, "KW": k, "Child": Child}
|
|
_=copy.deepcopy(_)
|
|
if FrameId and FrameId != PWMOD.ROT:
|
|
self._SearchChange(self.Frame["Code"], FrameId=FrameId, ClassAdd=_)
|
|
return id
|
|
self.Frame["Code"].append(_)
|
|
return id
|
|
def _HorizontalIterations(self, Code, tab=0):
|
|
_=""
|
|
for i in Code:
|
|
if "CHTML" in i["KW"]:
|
|
_+="%s%s\n" % (" "*tab, i["Code"])
|
|
continue
|
|
a=""
|
|
for _a in i["KW"]:
|
|
if _a!= "id" or i["IDEcho"]:
|
|
if i["KW"][_a]:
|
|
a+=(" %s="+("%s" if type(i["KW"][_a]) == int else "\"%s\"")) % (_a[1:] if _a[0] == "_" else _a, i["KW"][_a])
|
|
continue
|
|
else:
|
|
continue
|
|
a+=" %s" % (_a[1:] if _a[0] == "_" else _a)
|
|
_+="%s<%s%s%s>%s%s\n" % (" "*tab, i["StartAdd"], i["Code"], a, i["IntermediateSpecifics"], ("<%s%s>" % (PWMOD.END, i["Code"])) if i["NeedEnd"] and i["Child"] == [] else "")
|
|
if i["Child"]:
|
|
_+=self._HorizontalIterations(i["Child"], tab=tab+4)
|
|
_+="%s<%s%s>\n" % (" "*tab, PWMOD.END, i["Code"])
|
|
return _
|
|
def CID(self, id):
|
|
if id == False:
|
|
return {}
|
|
if id == None or id == True:
|
|
id=self.RanDomId()
|
|
return {"id": id}
|
|
def AddCSS(self, href, rel="stylesheet", type="text/css", IDEcho=False, id=False, FrameId=None):
|
|
if not FrameId: FrameId = self.HeadId
|
|
id=self.CID(id)
|
|
self._AddCode(PWMOD.HTM, "link", IDEcho=IDEcho, FrameId=FrameId, rel=rel, type=type, href=href, **id)
|
|
def AddJS(self, src=False, IDEcho=False, id=False, FrameId=None):
|
|
if not FrameId: FrameId = self.HeadId
|
|
id=self.CID(id)
|
|
self._AddCode(PWMOD.HTM, "script", IDEcho=IDEcho, FrameId=FrameId, src=src, nend=True, **id)
|
|
def AddTestCSS(self, IntermediateSpecifics="", IDEcho=False, id=False, FrameId=None):
|
|
if not FrameId: FrameId = self.HeadId
|
|
id=self.CID(id)
|
|
self._AddCode(PWMOD.HTM, "style", IDEcho=IDEcho, FrameId=FrameId, nend=True, IntermediateSpecifics=IntermediateSpecifics, **id)
|
|
def AddTestJS(self, IntermediateSpecifics="", IDEcho=False, id=False, FrameId=None):
|
|
if not FrameId: FrameId = self.HeadId
|
|
id=self.CID(id)
|
|
self._AddCode(PWMOD.HTM, "script", IDEcho=IDEcho, FrameId=FrameId, nend=True, IntermediateSpecifics=IntermediateSpecifics, **id)
|
|
def Finish(self):
|
|
self.Html=self._HorizontalIterations(self.Frame["Code"])
|
|
def _InItEL(SetSelf, n=""):
|
|
if n != "":
|
|
SetSelf=n
|
|
SetSelf.p =lambda IntermediateSpecifics="Test p", FrameId=None, nend=True, id=False, Child=[], **k : _p(master=SetSelf, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, Child=Child, **k)
|
|
SetSelf.s =lambda IntermediateSpecifics="Test s", FrameId=None, nend=True, id=False, Child=[], **k : _s(master=SetSelf, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, Child=Child, **k)
|
|
SetSelf.h1 =lambda IntermediateSpecifics="Test H1", FrameId=None, nend=True, id=False, Child=[], **k : _h(master=SetSelf, size=1, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, Child=Child, **k)
|
|
SetSelf.h2 =lambda IntermediateSpecifics="Test H2", FrameId=None, nend=True, id=False, Child=[], **k : _h(master=SetSelf, size=2, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, Child=Child, **k)
|
|
SetSelf.h3 =lambda IntermediateSpecifics="Test H3", FrameId=None, nend=True, id=False, Child=[], **k : _h(master=SetSelf, size=3, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, Child=Child, **k)
|
|
SetSelf.h4 =lambda IntermediateSpecifics="Test H4", FrameId=None, nend=True, id=False, Child=[], **k : _h(master=SetSelf, size=4, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, Child=Child, **k)
|
|
SetSelf.h5 =lambda IntermediateSpecifics="Test H5", FrameId=None, nend=True, id=False, Child=[], **k : _h(master=SetSelf, size=5, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, Child=Child, **k)
|
|
SetSelf.div =lambda IntermediateSpecifics="", FrameId=None, nend=True, id=True, Child=[], **k : _div(master=SetSelf, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, Child=Child, **k)
|
|
SetSelf.CHtml =lambda Code="", FrameId=None, nend=True, id=True, Child=[], **k : _CHtml(master=SetSelf, Code=Code, FrameId=FrameId, nend=nend, id=id, Child=Child, **k)
|
|
|
|
|
|
class _Widget(PyWeb):
|
|
# 这里需要解释一下,这里是伪继承,实际上没有初始化继承,
|
|
# 为的是VsCode的高亮
|
|
def __init__(self, master=PyWeb, Code="Widget", IntermediateSpecifics="Test EL", FrameId=None, nend=True, id=False, IDEcho=False, Child=[], StartAdd=PWMOD.HTM, **k) -> None:
|
|
if not FrameId: FrameId = master.SetId
|
|
id=master.CID(id)
|
|
self.id = master._AddCode(StartAdd, Code, IDEcho=IDEcho, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, Child=Child, **id, **k)
|
|
|
|
|
|
class _p(_Widget):
|
|
def __init__(self, master=PyWeb, IntermediateSpecifics="Test EL", FrameId=None, nend=True, id=False, IDEcho=False, Child=[], **k) -> None:
|
|
super().__init__(master=master, Code="p", IDEcho=IDEcho, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, Child=Child, **k)
|
|
|
|
class _DOCTYPE(_Widget):
|
|
def __init__(self, master=PyWeb, IntermediateSpecifics="", FrameId=PWMOD.ROT, nend=False, id=False, IDEcho=False, Child=[], **k) -> None:
|
|
super().__init__(master=master, Code="DOCTYPE", IDEcho=IDEcho, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, Child=Child, StartAdd=PWMOD.DOC, **k)
|
|
|
|
class _s(_Widget):
|
|
def __init__(self, master=PyWeb, IntermediateSpecifics="Test S", FrameId=None, nend=True, id=False, IDEcho=False, Child=[], **k) -> None:
|
|
super().__init__(master=master, Code="s", IDEcho=IDEcho, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, Child=Child, **k)
|
|
|
|
class _div(_Widget):
|
|
def __init__(self, master=PyWeb, IntermediateSpecifics="", FrameId=None, nend=True, id=False, IDEcho=False, Child=[], Code="div", **k) -> None:
|
|
super().__init__(master=master, Code=Code, IDEcho=IDEcho, IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, Child=Child, **k)
|
|
self.CID, self.SetId, self._AddCode=master.CID, self.id, master._AddCode
|
|
master._InItEL(self)
|
|
|
|
class _h(_Widget):
|
|
def __init__(self, master=PyWeb, size=1, IntermediateSpecifics="Test H1~H2", FrameId=None, nend=True, id=False, IDEcho=False, Child=[], **k):
|
|
super().__init__(master, "h%s" % (size), IntermediateSpecifics=IntermediateSpecifics, FrameId=FrameId, nend=nend, id=id, IDEcho=IDEcho, Child=Child, **k)
|
|
|
|
class _CHtml(_Widget):
|
|
def __init__(self, master=PyWeb, Code="", FrameId=None, nend=True, id=False, IDEcho=False, Child=[], **k):
|
|
super().__init__(master, Code, FrameId=FrameId, nend=nend, id=id, IDEcho=IDEcho, Child=Child, CHTML="", **k)
|
|
|
|
|
|
class ReadWord(PyWeb):
|
|
def __init__(self):
|
|
PyWeb.__init__(self)
|
|
self.init()
|
|
self.Finish()
|
|
def init(self):
|
|
if "path" not in GETFORM:
|
|
self.h1("错误异常!!!")
|
|
self.p("你没有正确地提交get参数 -> \"path\" not in GETFORM.",style="color: #EC1C24;")
|
|
self.p("事件错误等级: 小",style="color: #EC1C24;")
|
|
return
|
|
path=GETFORM.get("path")
|
|
if not os.path.isfile(path):
|
|
self.h1("错误异常!!!")
|
|
self.p("你没有提供正确地path路径 -> \"path\" file not found.",style="color: #EC1C24;")
|
|
self.p("事件错误等级: 小",style="color: #EC1C24;")
|
|
return
|
|
try:
|
|
html, css = W2H.W2H(path)
|
|
except:
|
|
self.h1("错误异常!!!")
|
|
self.p("处理word文件时出错 -> load \"path\" file back error.",style="color: #EC1C24;")
|
|
self.p("事件错误等级: 大",style="color: #EC1C24;")
|
|
return
|
|
self.AddCSS("/PyWeb/css/sheets-of-paper-a4.css")
|
|
self.h1(path.split("\\")[-1].split("/")[-1], style="text-align: center;")
|
|
doc=self.div(_class="document")
|
|
html="\n".join(html.split("\n")[1:])
|
|
page=doc.div(_class="page", contenteditable="true")
|
|
page.CHtml(html)
|
|
WebRet=ReadWord() |