From 36066b297e939de65e0631ff3535fd2a1674c935 Mon Sep 17 00:00:00 2001
From: Jonas <77726472+kobolol@users.noreply.github.com>
Date: Tue, 27 Sep 2022 15:08:14 +0200
Subject: [PATCH] Added Main Programm
Added the Main Programm i coded before!
---
main.py | 27 ++++++++++++
render/__pycache__/initer.cpython-39.pyc | Bin 0 -> 970 bytes
render/fonts/font1.ttf | Bin 0 -> 57676 bytes
render/initer.py | 25 +++++++++++
render/outputs/Jonas1.png | Bin 0 -> 1302 bytes
render/outputs/Jonas2.png | Bin 0 -> 16500 bytes
render/themelist.txt | 24 ++++++++++
render/themes/black.png | Bin 0 -> 272 bytes
render/themes/white.png | Bin 0 -> 6537 bytes
.../utils/__pycache__/readfile.cpython-39.pyc | Bin 0 -> 821 bytes
.../__pycache__/render_worker.cpython-39.pyc | Bin 0 -> 885 bytes
.../__pycache__/text_align.cpython-39.pyc | Bin 0 -> 571 bytes
render/utils/__pycache__/theme.cpython-39.pyc | Bin 0 -> 1498 bytes
render/utils/readfile.py | 41 ++++++++++++++++++
render/utils/render_worker.py | 17 ++++++++
render/utils/speicher | 16 +++++++
render/utils/text_align.py | 13 ++++++
render/utils/theme.py | 30 +++++++++++++
18 files changed, 193 insertions(+)
create mode 100644 main.py
create mode 100644 render/__pycache__/initer.cpython-39.pyc
create mode 100644 render/fonts/font1.ttf
create mode 100644 render/initer.py
create mode 100644 render/outputs/Jonas1.png
create mode 100644 render/outputs/Jonas2.png
create mode 100644 render/themelist.txt
create mode 100644 render/themes/black.png
create mode 100644 render/themes/white.png
create mode 100644 render/utils/__pycache__/readfile.cpython-39.pyc
create mode 100644 render/utils/__pycache__/render_worker.cpython-39.pyc
create mode 100644 render/utils/__pycache__/text_align.cpython-39.pyc
create mode 100644 render/utils/__pycache__/theme.cpython-39.pyc
create mode 100644 render/utils/readfile.py
create mode 100644 render/utils/render_worker.py
create mode 100644 render/utils/speicher
create mode 100644 render/utils/text_align.py
create mode 100644 render/utils/theme.py
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..eb96698
--- /dev/null
+++ b/main.py
@@ -0,0 +1,27 @@
+from flask import *
+from render.initer import load_themes, render_pic
+import os
+
+app = Flask(__name__)
+
+
+@app.route("/", methods=["GET"])
+def create_pic():
+ name_query = str(request.args.get("name"))
+ theme_query = str(request.args.get("t"))
+
+ filename = render_pic(themes, name_query, theme_query)
+
+ if filename == "error":
+ return "
error
check if theme exist or name & theme is given!
"
+
+ return send_file(filename, mimetype='image/gif')
+
+
+if __name__ == "__main__":
+ dirs = 'render/outputs'
+ for f in os.listdir(dirs):
+ os.remove(os.path.join(dirs, f))
+
+ themes = load_themes()
+ app.run(port=888)
diff --git a/render/__pycache__/initer.cpython-39.pyc b/render/__pycache__/initer.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..cc7eacd2ecb3bad34175e242fb3717736bb45fce
GIT binary patch
literal 970
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
z
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
Us93kVP`C3~$z=8;^`0dCFGySA_y7O^
literal 0
HcmV?d00001
diff --git a/render/initer.py b/render/initer.py
new file mode 100644
index 0000000..fd4c598
--- /dev/null
+++ b/render/initer.py
@@ -0,0 +1,25 @@
+from render.utils.theme import Theme
+from render.utils.readfile import readfile
+from render.utils.render_worker import render_worker
+import os
+
+
+def render_pic(themes, name, theme):
+ if theme == "None" or name == "None" or len(themes)-1 < int(theme):
+ return "error"
+
+ if not os.path.exists(f"render/outputs/{name}{theme}.png"):
+ print("Anfrage noch nicht gerendert, Wird nun erstellt ...")
+ filename = render_worker(name, int(theme), themes)
+ return filename
+
+ else:
+ print("Anfrage wurde schon gerendert, wird nun übergeben ...")
+ return f"render/outputs/{name}{theme}.png"
+
+
+def load_themes():
+ file = open("render/themelist.txt", "r")
+ liste = readfile(file)
+ file.close()
+ return liste
diff --git a/render/outputs/Jonas1.png b/render/outputs/Jonas1.png
new file mode 100644
index 0000000000000000000000000000000000000000..f1695c7d62a4fe5d0205abd355d8edde4d350390
GIT binary patch
literal 1302
zcmbVM{a2EA6!-f)AS4PnO{y6(EwL>z6AL?}PrfWYW?*@0%lC#QD+jJ3n^2FY%g##I
zY~{>T9JQ=CGqc2uO=+GDrfDjrlu@SnvIsPMfd#>6e?s?{&;8ubx%ZxX?z#6Qck5;k
zw`FcFE-oGk@v+-nTrf@-;{sqO#A(`;PH^RJNr`i!!{NC6_>#^kcPGSdN-3x@3@4Xg
z-{GswE=v;g7BNaMhbB<^Rv!E;Fg>1cjPctyK&f1IO^A33e!bYc7=6_e6gsYXYef7}y66F6>H5Vhg_d;&0ZoqUSlhA677s?HVC)QF11XZ*bT
z=0Xm9)b!x(&t7*Hi-6AhwEccE(vLf9xYT3Cs_QC46>L_
z-U7c$MV?{L-h=P4rN3ZHh!_qmauN;dUqGwEro<>ir{xZ({{`L>vAk>!4389z@RflD
zG|LK_{#?z8i&xX}L3Gd=_lV+Z6Zvs}9~m%oq8s#|*Q(zMeVP)1qFXRT(4Vosm__|X
zQE7OK$dAk>i+#9RpuK_`@AmJ57Ie+C
z9LPWFl$^iTa433=DUDZ6<*VRXw1<`DN9ER|`uf30=>_FaP_;Iuc`Y`rVV;2zW2lQA
zXT#r>yvp7^%c60BRhekf8SSALpQJbF$A{2`!fa1-&y-IelLYT_Or!h7$DKz&Z12cg
zMN3rGs?K9;ZoNrjXi#y%;X%AQ!%Mi#IK~RW@;Vh>6rrz?7cmbWMI(KtOSt-kbNPF_
zTlo}@U@qUAn*n#tIQPWa>}!OG5@lm%L_V;tPSm#<;VuPQ`<@!c8lMl)fnjB3-b>a)
z`?T&!@Y`U?C$tJ**G77_V0|P9D(73vcG>g(%5@YCVQ*{xmZc&~kM!>k+n=F$F=0M}
sSn7Lw_qIBA-t=+3PqDnQV@aXsPqgKArM(X%#BGgjjLs_l56na>CIA2c
literal 0
HcmV?d00001
diff --git a/render/outputs/Jonas2.png b/render/outputs/Jonas2.png
new file mode 100644
index 0000000000000000000000000000000000000000..046e2809e09f370254cf498811ba9ab0d79ebb0c
GIT binary patch
literal 16500
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 @P@H|_|NN2~==ZTB
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
L46A-~`Sbq)9mFts
literal 0
HcmV?d00001
diff --git a/render/themelist.txt b/render/themelist.txt
new file mode 100644
index 0000000..1abc7ae
--- /dev/null
+++ b/render/themelist.txt
@@ -0,0 +1,24 @@
+0
+white.png
+180
+font1.ttf
+0
+0
+0
+
+1
+black.png
+180
+font1.ttf
+255
+255
+255
+
+2
+white.png
+180
+font1.ttf
+204
+6
+5
+
diff --git a/render/themes/black.png b/render/themes/black.png
new file mode 100644
index 0000000000000000000000000000000000000000..b40186d779adcd1392f874ff229ab52eee906b22
GIT binary patch
literal 272
zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7#Nv>l*8o|0J>k`OE=6A+A7rd6n%gAjMhW5n0T@z;_6Q8AUa`8i0b+JY5_^DsH_!$jAuf
mH7WdGpXcEKWDO)Zuv3afj)Bod?BE2DGdx}WT-G@yGywoGoFgg#
literal 0
HcmV?d00001
diff --git a/render/themes/white.png b/render/themes/white.png
new file mode 100644
index 0000000000000000000000000000000000000000..6da7f6552b84a72b677c27468242a5149af2bf2e
GIT binary patch
literal 6537
zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7&zE~RK2WrGmv5|4sv&5Sa(k5B}gjW(btiI
zVPik{pF~z5pR>RtvY3H^?=T269?xHq!oVOY=jq}YQW5v|#zw{l1D*pLru?sOQN{j}{Xkr-62BReds5Bfc
z6G5RcT1|{rkicXx+B6t#8jO~SquF4zX#lDeN1FzqP#A3*j5ZB`$zZf;FxoU2EfYtx
z!D!O}R4I-&4M3qV+B6t#8UT~QAZQvKs4|v+6wCc5dYbJ%P|Eal^>bP0l+XkKbZ&hL
literal 0
HcmV?d00001
diff --git a/render/utils/__pycache__/readfile.cpython-39.pyc b/render/utils/__pycache__/readfile.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..9fa5b33c65473bbb2265ec10e4206351a9e58f21
GIT binary patch
literal 821
zcma))y>8S%5XX1cYkSW}njl4hC{j@5niGKnDMBbw5Fbr+5>(M4VQx1UgFlY-UXf^B
z!6WbhP$DFrgJ;+hD!%{)6*G>JVrbaa{KvCD+oPG;bYml7xUPQLT?oP04+<_Xj=?@!
zeGNr11vx9=7=S6Rg7@s0EAfm?!WJo;fDfOa>OwDo!hVg>Q;tKl`WBKUYd}H66>kDG
zffk}gXfc{Z8#(rnz4+NAjw^V>%_En5WS>|QU>w|I4S%~sPe@+&L=1>Pa^910Ktd!R
zdJ+vtgyd^a;sJ?~eCvrE5Q*e_PeubWLb5|uT2P4#oN%FwTn~u@@&wiwbdRnAC>E((8f!Z+O$jy?ZvAqS6-e}rS0NqQRS7{^%wq5@9%n%
zXQlqk4Bd=h2Zwv}*SE{Gp3h9RG-**}+URmVJF}-1I#W^JgW1zLo+@qTYn$aY2B{)2
zU7dOPC!iARCnyZWKU)Ir5CS!-6bV(4xLJ`Rlij#3{)yHbN+Rb}t~^1g
zlpHy5mQ%o3JbfrXKNg
zLmj_o?MJMm*_6T^_Kjgw(#;WvY-?2FHRARi+iDpfc|acLa@mn0<3jdKlSOaYZuk@w
zDtbQIA%>9D&4NTsdzVK|NIqAyIRq_Pca}x|6A3d#70YKLs}4X+9;#3)D7AEftK?j$
z#Y~tpoye$5<4jc!M1RZ^E}<3*m>x*Q^eCjIQ+jYb$&*~3-NP66@MXn{@U!q8X+yNs
z!>R1LpMb_`Bt4Ur>#Q^_q8~^egXizX`K!_O^DHbzLzzc1Ow(9EYop;pUFGnS`7}<%
zyWwC|H$0lFI4K%3zRBe$A-l6h)kxNObortK2H{iujI;dvy7&KJ-99aplx?_fa+q&_U{2tma$l!8pC{rC23F{49b)s)e~MP<%>V!Z
literal 0
HcmV?d00001
diff --git a/render/utils/__pycache__/text_align.cpython-39.pyc b/render/utils/__pycache__/text_align.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..fe6be8a1b29cddc3363ffa453123cca061f47814
GIT binary patch
literal 571
zcmY*W%}N|W5U&228MCY*=%Ow@!Crzn2_ZyfC1D}Rf{?>7u#D5aI9Q>tf!t_4;7eO1#n^;O5q%Pl~=d;XIACIC;4EE+|!i>|jY2oNNP
zf`o)POcB$NHkcu1Aw$fCcLO08{vq^&8Qy{(vEHDFQ;Fb11AbJcc_sTQK2MnY@V^Ck
za`ZmB78q)B3sZ>bgiSbNQp1$o(kV{Ug^BkrL%UG(b(r|IZ&>XM)`4rX?Kl-2Yu*Ol
z+5}`CGJnp-6le7hW=`zPO_Dxdbsl~`{@qcy6PUTs&H5grLlpKb3o25Ilc$Af~{Zr{jbrCMjw?J=HO_LmHylKm6;efKCd+l?{xpj7EG<8uUfPd1(daGZV`JUCEoqY#
yvPM5q)xq3B&$Dbe_@$g!<-{tt>!#LBvk+FXV3)oXl{m}gcee%Y+P1M{oBadc6N+{K
literal 0
HcmV?d00001
diff --git a/render/utils/__pycache__/theme.cpython-39.pyc b/render/utils/__pycache__/theme.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..b3729f8befcd56c20fdcb6c636cc57563d10d223
GIT binary patch
literal 1498
zcmb7@OK;Oa5XX1@&a+8*zdk@NQJdTls(>I65{e>~Q)FpnGH#p74_G^gR=&|Mldt3p
z2R;HfBqV0MI5wye@>=_!9nX4x-q~HR*K0FuzqZG#ZyICY$*DITotM~?LzH(681NhH
zU$rFz?Uar56~6zgVHWkp2ORip$$>33;Go^Gr4Bk6XbmvILTiEz4q6LZ&_-)R2fAn-
z=s_QC3l3m_whcpM9p>i83qSN%P7O$7Le8)!W0Z_%Ot4Ht<(ZDEWd^FAnW#o)p_-YE
zY5_ZCTRtDzd0!NXg_v)`(3kn3^xt@?7kQzdcgr`g;{dAo+c-*#_%6dN4q|y+Wi0&3
zKmK&&