VCARD-Inhalt geplant (in Flask-qr.py)

This commit is contained in:
2023-11-07 22:04:52 +01:00
parent e18dccf660
commit c9541268f9
6 changed files with 87 additions and 38 deletions

21
.idea/workspace.xml generated
View File

@@ -4,9 +4,13 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="3fdfc273-527d-4717-bd6d-4ba98fba7555" name="Changes" comment="wifi geht">
<list default="true" id="3fdfc273-527d-4717-bd6d-4ba98fba7555" name="Changes" comment="VCARD-Inhalt geplant (in Flask-qr.py)">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Dockerfile-RasPi" beforeDir="false" afterPath="$PROJECT_DIR$/Dockerfile-RasPi" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Flask-QR.py" beforeDir="false" afterPath="$PROJECT_DIR$/app/Flask-QR.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/static/style.css" beforeDir="false" afterPath="$PROJECT_DIR$/app/static/style.css" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/templates/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/app/templates/index.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/templates/qr.html" beforeDir="false" afterPath="$PROJECT_DIR$/app/templates/qr.html" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -83,7 +87,7 @@
<recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR" />
</key>
</component>
<component name="RunManager" selected="Docker.Dockerfile-Raspi">
<component name="RunManager">
<configuration default="true" type="docker-deploy" factoryName="dockerfile" temporary="true">
<deployment type="dockerfile">
<settings />
@@ -108,7 +112,15 @@
<option name="project" value="LOCAL" />
<updated>1699219722200</updated>
</task>
<option name="localTasksCounter" value="2" />
<task id="LOCAL-00002" summary="VCARD-Inhalt geplant (in Flask-qr.py)">
<option name="closed" value="true" />
<created>1699379424586</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1699379424586</updated>
</task>
<option name="localTasksCounter" value="3" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
@@ -136,6 +148,7 @@
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="css,mail,tel,url,calendar fertig" />
<option name="LAST_COMMIT_MESSAGE" value="css,mail,tel,url,calendar fertig" />
<MESSAGE value="VCARD-Inhalt geplant (in Flask-qr.py)" />
<option name="LAST_COMMIT_MESSAGE" value="VCARD-Inhalt geplant (in Flask-qr.py)" />
</component>
</project>

View File

@@ -3,6 +3,7 @@ FROM python:slim
LABEL authors="tebarius"
LABEL version="1.1"
LABEL description="QR-Code-Generator-Server with Flask-App"
LABEL platform="Raspberry Pi 3 with Raspian"
WORKDIR /app
COPY ./app /app/

View File

@@ -66,28 +66,63 @@ def makeqr():
data = f"tel:{request.args.get('tel')}"
elif request.args.get('type') == "vcard":
#BEGIN:VCARD
#VERSION:3.0
#N:Nachname;Vorname;;Titel;
#FN:Titel Vorname Nachname
#ORG:Firma
#TITLE:Job-Titel(Funktion)
#ADR:Postfach;Adresszusatz;straße;stadt;Bundesland;plz;Land
#TEL;TYPE=VOICE,WORK:Telefon
#TEL;TYPE=CELL,WORK:Mobil
#TEL;TYPE=VOICE,HOME:Telefon
#TEL;TYPE=CELL,HOME:Mobil
#TEL;FAX:Fax
#EMAIL;TYPE=WORK:E-Mail
#EMAIL;TYPE=HOME:E-Mail
#URL:website
#BDAY:--0203
#NICKNAME:spitzname
#END:VCARD
pass
elif request.args.get('type') == "geo":
pass
# BEGIN:VCARD
# VERSION:3.0
# N:Nachname;Vorname;;Titel;
# FN:Titel Vorname Nachname
# ORG:Firma
# TITLE:Job-Titel(Funktion)
# ADR:Postfach;Adresszusatz;straße;stadt;Bundesland;plz;Land
# TEL;TYPE=VOICE,WORK:Telefon
# TEL;TYPE=CELL,WORK:Mobil
# TEL;TYPE=VOICE,HOME:Telefon
# TEL;TYPE=CELL,HOME:Mobil
# TEL;TYPE=FAX:Fax
# EMAIL;TYPE=WORK:E-Mail
# EMAIL;TYPE=HOME:E-Mail
# URL:website
# BDAY:--0203
# NICKNAME:spitzname
# END:VCARD
titel = request.args.get("titel")
if titel != "":
titel += " "
data = (f"BEGIN:VCARD\nVERSION:3.0\nN:{request.args.get('nname')};"
f"{request.args.get("vname")};;{titel};\nFN:{titel}"
f"{request.args.get("vname")} {request.args.get("nname")}\n"
f"ADR:{request.args.get("pbox")};{request.args.get("adresszusatz")};"
f"{request.args.get("strasse")};{request.args.get("ort")};"
f"{request.args.get("bland")};{request.args.get("plz")};"
f"{request.args.get("land")}\n")
if request.args.get("org") != "":
data += f"ORG:{request.args.get("org")}\n"
if request.args.get("jtitel") != "":
data += f"TITLE:{request.args.get("jtitel")}\n"
if request.args.get("tel-a") != "":
data += f"TEL;TYPE=VOICE,WORK:{request.args.get("tel-a")}\n"
if request.args.get("mobil-a") != "":
data += f"TEL;TYPE=CELL,WORK:{request.args.get("mobil-a")}\n"
if request.args.get("tel-p") != "":
data += f"TEL;TYPE=VOICE,HOME:{request.args.get("tel-p")}\n"
if request.args.get("mobil-p") != "":
data += f"TEL;TYPE=CELL,HOME:{request.args.get("mobil-p")}\n"
if request.args.get("fax") != "":
data += f"TEL;TYPE=FAX:{request.args.get("fax")}\n"
if request.args.get("mail-a") != "":
data += f"EMAIL;TYPE=WORK:{request.args.get("mail-a")}\n"
if request.args.get("mail-p") != "":
data += f"EMAIL;TYPE=HOME:{request.args.get("mail-p")}\n"
if request.args.get("url") != "":
data += f"URL:{request.args.get("url")}\n"
if request.args.get("nickname") != "":
data += f"NICKNAME:{request.args.get("nickname")}\n"
if request.args.get("gebdate") != "":
gebdate = request.args.get('gebdate').replace('-', '')
if request.args.get("ohneJahr"):
data += f"BDAY:--{gebdate[4:]}\n"
else:
data += f"BDAY:{gebdate}\n"
data += "END:VCARD\n"
elif request.args.get('type') == "wifi":
passw = (request.args.get("passw").replace("\\", "\\\\").replace(";", "\\;")

View File

@@ -2,26 +2,26 @@
text-align: center;
background-color: #eee;
border-radius: 60px;
filter: drop-shadow(10px 10px 20px blue);
font-size: 70px;
filter: drop-shadow(10px 10px 15px blue);
font-size: 60px;
}
p {
text-align: center;
font-size: 50px;
font-size: 40px;
}
div {
text-align: center;
font-size: 50px;
font-size: 40px;
}
form {
text-align: center;
font-size: 50px;
font-size: 40px;
}
input { font-size: 30px;
input { font-size: 40px;
}
button {
border: solid gainsboro;
font-size: 30px;
font-size: 40px;
margin: 15px;
border-radius: 50px;
filter: drop-shadow(10px 10px 10px blue);
@@ -30,12 +30,12 @@
{
transform: scale(4);
margin: 10px;
vertical-align:12px;
vertical-align:10px;
}
input[type='checkbox']
{
transform: scale(4);
margin: 10px;
vertical-align:12px;
vertical-align:10px;
}

View File

@@ -6,9 +6,9 @@
<div><button><a href="./text.html">einfacher Text </a></button></div>
<div><button><a href="./url.html">URL/Website-Link</a></button></div>
<div><button><a href="./tel.html">Telefonnummer</a></button></div>
<!--<div><button><a href="./vcard.html">Visitenkarte (vCard)</a></button></div>-->
<!--<div><button><a href="./geo.html">geographische Koordinaten</a></button></div>-->
<div><button><a href="./mail.html">EMail-Adresse</a></button></div>
<<div><button><a href="./wifi.html">WIFI</a></button></div>
<div><button><a href="./wifi.html">WIFI</a></button></div>
<div><button><a href="./cal.html">Kalender-Termin</a></button></div>
<div><button><a href="./vcard.html">Visitenkarte (vCard)</a></button></div>
{% endblock %}

View File

@@ -6,7 +6,7 @@
{{ data }} <br>
<br>
<!--suppress HtmlUnknownTarget -->
<img src="{{ data|qrcode(fit=True, box_size=15, border=2, ) }}" alt="QR-Code f&uuml;r {{ data }}">
<img src="{{ data|qrcode(fit=True, box_size=10, border=2, ) }}" alt="QR-Code f&uuml;r {{ data }}">
</p>
<p>
<a href="./">Noch einmal bitte!</a>