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&&4 zU;2@|xJoZ#G%`M02mY(Ydl%n=FWpVL4iYz|LXJOQ<&F^RXq^f{MNIlAj9azmx?hxL zTuxhYn)0X7n0irs3kMmy#G*>dHR6&E&z4I%Va3lXxr1)rI`>nx^bWcSeZctjfnx1q zO<)FQkoQQaE;UpK)0New^_8&U4pv5+;LLqE8*#LS!y2l$Ls6s&hKjm(RplAETSHZ= zDx*zs_C6f#mpX_KYOrd*RICY#F7B->+o2|p_oF6FP_6%>rqA}Hrt?vUt_j_9A@a5m zVGNsq#$6%4Y`j24ByEGdPeL`44@n-8&^qK3lBXoq`7B0sA7puxk^y=ScUq2KJw