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" /> <option name="autoReloadType" value="SELECTIVE" />
</component> </component>
<component name="ChangeListManager"> <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$/.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/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> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -83,7 +87,7 @@
<recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR" /> <recent name="D:\mager\Documents\IntelliJ\Docker-Flask-QR" />
</key> </key>
</component> </component>
<component name="RunManager" selected="Docker.Dockerfile-Raspi"> <component name="RunManager">
<configuration default="true" type="docker-deploy" factoryName="dockerfile" temporary="true"> <configuration default="true" type="docker-deploy" factoryName="dockerfile" temporary="true">
<deployment type="dockerfile"> <deployment type="dockerfile">
<settings /> <settings />
@@ -108,7 +112,15 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1699219722200</updated> <updated>1699219722200</updated>
</task> </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 /> <servers />
</component> </component>
<component name="Vcs.Log.Tabs.Properties"> <component name="Vcs.Log.Tabs.Properties">
@@ -136,6 +148,7 @@
</component> </component>
<component name="VcsManagerConfiguration"> <component name="VcsManagerConfiguration">
<MESSAGE value="css,mail,tel,url,calendar fertig" /> <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> </component>
</project> </project>

View File

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

View File

@@ -77,17 +77,52 @@ def makeqr():
# TEL;TYPE=CELL,WORK:Mobil # TEL;TYPE=CELL,WORK:Mobil
# TEL;TYPE=VOICE,HOME:Telefon # TEL;TYPE=VOICE,HOME:Telefon
# TEL;TYPE=CELL,HOME:Mobil # TEL;TYPE=CELL,HOME:Mobil
#TEL;FAX:Fax # TEL;TYPE=FAX:Fax
# EMAIL;TYPE=WORK:E-Mail # EMAIL;TYPE=WORK:E-Mail
# EMAIL;TYPE=HOME:E-Mail # EMAIL;TYPE=HOME:E-Mail
# URL:website # URL:website
# BDAY:--0203 # BDAY:--0203
# NICKNAME:spitzname # NICKNAME:spitzname
# END:VCARD # END:VCARD
pass titel = request.args.get("titel")
if titel != "":
elif request.args.get('type') == "geo": titel += " "
pass 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": elif request.args.get('type') == "wifi":
passw = (request.args.get("passw").replace("\\", "\\\\").replace(";", "\\;") passw = (request.args.get("passw").replace("\\", "\\\\").replace(";", "\\;")

View File

@@ -2,26 +2,26 @@
text-align: center; text-align: center;
background-color: #eee; background-color: #eee;
border-radius: 60px; border-radius: 60px;
filter: drop-shadow(10px 10px 20px blue); filter: drop-shadow(10px 10px 15px blue);
font-size: 70px; font-size: 60px;
} }
p { p {
text-align: center; text-align: center;
font-size: 50px; font-size: 40px;
} }
div { div {
text-align: center; text-align: center;
font-size: 50px; font-size: 40px;
} }
form { form {
text-align: center; text-align: center;
font-size: 50px; font-size: 40px;
} }
input { font-size: 30px; input { font-size: 40px;
} }
button { button {
border: solid gainsboro; border: solid gainsboro;
font-size: 30px; font-size: 40px;
margin: 15px; margin: 15px;
border-radius: 50px; border-radius: 50px;
filter: drop-shadow(10px 10px 10px blue); filter: drop-shadow(10px 10px 10px blue);
@@ -30,12 +30,12 @@
{ {
transform: scale(4); transform: scale(4);
margin: 10px; margin: 10px;
vertical-align:12px; vertical-align:10px;
} }
input[type='checkbox'] input[type='checkbox']
{ {
transform: scale(4); transform: scale(4);
margin: 10px; 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="./text.html">einfacher Text </a></button></div>
<div><button><a href="./url.html">URL/Website-Link</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="./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="./geo.html">geographische Koordinaten</a></button></div>-->
<div><button><a href="./mail.html">EMail-Adresse</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="./cal.html">Kalender-Termin</a></button></div>
<div><button><a href="./vcard.html">Visitenkarte (vCard)</a></button></div>
{% endblock %} {% endblock %}

View File

@@ -6,7 +6,7 @@
{{ data }} <br> {{ data }} <br>
<br> <br>
<!--suppress HtmlUnknownTarget --> <!--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>
<p> <p>
<a href="./">Noch einmal bitte!</a> <a href="./">Noch einmal bitte!</a>