Files
yealink2csv/main.py
2023-06-09 11:37:11 +02:00

78 lines
2.4 KiB
Python

#!/usr/bin/python3
import csv
import os
from datetime import datetime
path = '/srv/tftp/'
header_cfg = """#!version:1.0.0.1
#Tasti rapidi del tastierino esterno
#ATTENZIONE: NON MODIFICARE QUESTO FILE
#Questo file viene generato automaticamente a partire dal file
#tastierino_esterno.csv, modificare quest'ultimo ed attendere qualche minuto
account.1.sip_server.1.address = 192.168.1.7"""
def append_log(text):
with open("error.txt", "a") as f:
now = datetime.now()
now_formatted = now.strftime("%d/%m/%Y, %H:%M:%S")
log = " ".join([now_formatted, text])
f.write(log)
try:
os.chdir(path)
append_log("Current working directory: {0}".format(os.getcwd()))
except FileNotFoundError:
append_log("Directory: {0} does not exist".format(path))
except NotADirectoryError:
append_log("{0} is not a directory".format(path))
except PermissionError:
append_log("You do not have permissions to change to {0}".format(path))
def main(ofile):
with open(ofile, newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=',', quotechar='"')
line_count = 0
to_write = header_cfg
for row in spamreader:
if line_count == 0:
# trova la posizione dei campi che ci interessano
idx_ext = row.index('extension')
idx_name = row.index('name')
else:
if 'idx_ext' not in locals() or 'idx_name' not in locals():
append_log("Errore: file csv senza i campi 'extension' e/o 'name'")
try:
ext_n = int(row[idx_ext])
except:
continue
ext_name = row[idx_name]
to_write = "\n".join([to_write, print_ext(line_count, ext_n, ext_name)])
line_count += 1
write_f(to_write,"tastierino_esterno.cfg")
def write_f(text,file_name):
with open(file_name, "w") as file:
file.write(text)
def print_ext(n, n_ext, lbl_ext):
spamrow = f"""expansion_module.1.key.{n}.extension =
expansion_module.1.key.{n}.label = {n_ext}
expansion_module.1.key.{n}.type = 16
expansion_module.1.key.{n}.value = {lbl_ext}"""
return spamrow
def print_hotkeys():
exit
if __name__ == '__main__':
ofile: str = 'tastierino_esterno.csv'
try:
main(ofile)
except FileNotFoundError:
append_log("File CSV non trovato")