mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-24 11:16:34 +00:00
Add TEMPLATES.md generation tool
This commit is contained in:
parent
e1fbf64037
commit
d61345e79f
98
tools/templates/templates.py
Normal file
98
tools/templates/templates.py
Normal file
@ -0,0 +1,98 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
templates.py - template beautify TEMPLATES.md for Tasmota
|
||||
|
||||
Copyright (C) 2020 Theo Arends
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Requirements:
|
||||
- Python
|
||||
- pip pycurl certifi
|
||||
|
||||
Instructions:
|
||||
Execute command to produce file TEMPLATE.md as found in the Tasmota root folder
|
||||
|
||||
Usage:
|
||||
python templates.py
|
||||
|
||||
"""
|
||||
|
||||
import io
|
||||
import pycurl
|
||||
import certifi
|
||||
from io import BytesIO
|
||||
from io import StringIO
|
||||
from datetime import datetime
|
||||
|
||||
column = 27 # Start position of {"NAME":... in line
|
||||
|
||||
def main():
|
||||
print ("\n*** templates.py v20200514 by Theo Arends ***")
|
||||
|
||||
# Download from template website
|
||||
buffer = BytesIO()
|
||||
url = "https://templates.blakadder.com/list.json"
|
||||
c = pycurl.Curl()
|
||||
c.setopt(c.URL, url)
|
||||
c.setopt(c.WRITEDATA, buffer)
|
||||
c.setopt(c.CAINFO, certifi.where())
|
||||
c.perform()
|
||||
c.close()
|
||||
body = buffer.getvalue()
|
||||
fin = StringIO(body.decode('UTF-8'))
|
||||
|
||||
now = datetime.now()
|
||||
month = now.strftime('%B')
|
||||
year = now.strftime('%Y')
|
||||
|
||||
# Write to root/TEMPLATES.md
|
||||
fout = open("..\..\TEMPLATES.md","w+")
|
||||
|
||||
fout.write("<img src=\"/tools/logo/TASMOTA_FullLogo_Vector.svg\" alt=\"Logo\" align=\"right\" height=\"76\"/>\n")
|
||||
fout.write("\n")
|
||||
fout.write("# Templates\n")
|
||||
fout.write("\n")
|
||||
fout.write("Find below the available templates as of " + month + " " + year + ". More template information can be found in the [Tasmota Device Templates Repository](http://blakadder.github.io/templates)\n")
|
||||
|
||||
not_first = 0
|
||||
fline = fin.readlines()
|
||||
for line in fline:
|
||||
if line.strip():
|
||||
if line.startswith("##"):
|
||||
if not_first:
|
||||
fout.write('```\n')
|
||||
fout.write('\n')
|
||||
fout.write(line)
|
||||
fout.write('```\n')
|
||||
not_first = 1
|
||||
elif line.startswith("#"):
|
||||
noop = 0
|
||||
else:
|
||||
pos1 = line.find("{")
|
||||
if pos1 < column:
|
||||
a = column + 2 - pos1
|
||||
lout = line[0:pos1 - 4] + " "*a + line[pos1:len(line)]
|
||||
else:
|
||||
lout = line[0:pos1 - 4] + " " + line[pos1:len(line)]
|
||||
fout.write(lout)
|
||||
|
||||
fout.write('```\n')
|
||||
|
||||
fout.close()
|
||||
fin.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
x
Reference in New Issue
Block a user