From b4c5daa212e3f67644845f302e1df34fa0706626 Mon Sep 17 00:00:00 2001 From: Marcel Gansfusz Date: Thu, 20 Mar 2025 22:53:36 +0100 Subject: [PATCH] added multiedia support, fixed a bug in get_profspath() --- app/__pycache__/main.cpython-313.pyc | Bin 23405 -> 24148 bytes app/main.py | 15 ++++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/__pycache__/main.cpython-313.pyc b/app/__pycache__/main.cpython-313.pyc index b0e05caffbe061abac860c75473c29841c86159c..0e60fa81eb9424cf9281d416f823392d320ade9b 100644 GIT binary patch delta 2110 zcmZuxdu&rx7{8}oyFS)#T~{_B+b-|TvBB8GvKOpfw=C=dyIfEv&b#$?Yv^wA+`9*j zW*8C$AIaiL%m|5@|CniF9BE=k;$uXkqA1iXNC-yI2|*w2d!O%~ z^L@Yb-TjEneN3G99S$1@>x&{47z-tkR36xU!3udIE9jTJpnavg|TI}h9WxIjr#5BRmnk)TPwxw)CMu>7L*@|1t z60-%XzSphi(dAMH__M%g7VPZP%GF~TF|9>bWGZR0%4-8Me^}B6HtSL-9Fh63%B#|_ z9OShqFNHLj>aL-~k*E~p57TI$tg09k3M*lCKn|Aits37)Wj&u1iSP;p$bB+B!Uw}t z?$e?)EURU7JzR$talohnMFGeyGmx08r+p}*g$LzeSn7!?kt18;_bM%foMR8Gyp{?m z+fi;|1@l(FT$gS;UU6)6y!_aUSKWn^YbW=-vmxQ$bn%J$gu8y$oNzavu*`#FW5QiD zRh@8`Pq!r8wKJiFyXm+keyN%elTkEu+1d52t89WnNK1phq|`LQBp6tMx0RULfOic^ zXRmq#W9BM6E3EZgu_ZP~Wo?Km%Vp!k3NLoF9temne27K|d5Le^*U0xuD%3Bk@L^2_ zLu(UX6s5c(4a&t(OiAMhr6YW=%#Vb%0mvZnsz$>~zh229^^vv&mqM^lK}nM^GlYe( zCsgm166FJm2F1o?kSY|`G{}|uEF^z)C!A-wQ_!aoJZ%~K$;*=t_P6&F&$n<>isTh2 zy80mqN4a@+Vf$BxYX$Q385HTuJiyP z5}kStRav5a1B-QBDx1D-P}0y*M$fTb^(VJkX$@S2)&jYbPUXW932p7SUoc^k{rqXTrF^)^)JUQM$eUpJn8qIfPX=W@F3rLl>M$+f4p zv#mRxW)B)_%qca#bw>#)kCi@tLv^UP53qsHaS2R|CjDZuW_G$hhkdic$&T(6$qjaC zXQk&No&?DmJV_e}*s#LJ+a!(IeZ^LzU;>DzEkWEY7+JTkcr{EDk*hL7I4s2svmrG% z76aKCUp}$1AAOsMo&Dq6pPL~PeWEy!DzJA8QLKWK4f^+#XQn2VK4&bVO~}$ETl)r% zvvYt5i{Julb}5WEJ%^j!^Y6FjEN1ku&ZdK&75YS61;}v-PMm|lv)I|Dl|8wFb?FIK z8rFjy9%5dsez|gpV*LTYQ2Gzr5hnm}bu+&kumVgFeg4M10{s=fK(7JmV1G63B)_oQ zKov}z=L24HoxLA;cH{3Da0^JWa~UD@GqlblnLzRzD{C&PxSfjn11= z@B7}}^Yp7r{MQTI`@5pZ46m8{R!&_^o%e2b2{(AT(#1JML&I*n=7KAI z6p>VpkHRW7;Oc&%UTr8owyL(4&aA4P3(i%wdvWio8k3 zY0Sp(7?_C;aXU;zTet(Jqe-7VOb6kG=R4DXHNpN=6D;>!4t#<+gW!2Qv+y>G8MY3u z_I@P1B|zU`2fW;OTGYiy;AsCV+zmJTn`}DEDDZlXAAWh@#Q*6aS3w=9+p*Z&U1?(( z-WZs}PZf_fs%wrX9?zd1d(e2Aj@tqw))%-!l3 zt{>SAq2YrEy}FyKR?{V2)>KQ$hwov`&2U&G&4<~lPCI&NuWC3uoOSvC-MI$-7@lYd z^yCP5Q5KA)ytk*uJ{7aRVL3cL=aC664pQB^AcW$)+NF z17=gl_Wnfm9}(KUMi1#;g7*l%CnyqZLd|H0@-s?w-J;BIFg9B6{Q)KR>r8&~$&<#{ zV2t($wx~+*E`98?2sk9=4@X}TZV{m6Mdj6rbrLB~#8# z%EP=>rb5cgJgTXZ@{y_{Rm~i(il0=EpSR5>OomiUmiCkirM9{83WetWTCUC(OjgUM z)smlBoe#_x783JQZw4zAnq4lg7VkG1Qc1ID9v5J=h<>D{z*1p3u{8BQ`Y|-?8*xkY mBNfqzv=CS*EG8DF&Z7fEGsZ>kn-xulRNPY`GCg2UocIS|23alu diff --git a/app/main.py b/app/main.py index 24ca2b3..647576d 100644 --- a/app/main.py +++ b/app/main.py @@ -365,6 +365,7 @@ def make_savepath( fname: str, ftype: str, ) -> str: + """Generates the path, the file is saved to after the upload process is finished. It creates all nessecery directories.""" lv = get_lvpath(lva) lvpath = lv[1] + "/" pf = get_profpath(prof, lv[0]) @@ -374,7 +375,10 @@ def make_savepath( if int(cat) in SUBCAT_CATEGORIES_I and subcat != "": sc = get_subcatpath(subcat, int(cat), pf[0], lv[0]) scpath = sc[1] + "/" - savepath = UNIZEUG_PATH + lvpath + pfpath + catpath + scpath + if int(cat) == 6: + savepath = UNIZEUG_PATH + lv[1] + "_Multimedia_only/" + pfpath + else: + savepath = UNIZEUG_PATH + lvpath + pfpath + catpath + scpath os.makedirs(savepath, exist_ok=True) filename = sem + "_" if int(cat) in EX_DATE_CATEGORIES_I: @@ -385,6 +389,7 @@ def make_savepath( def get_lvpath(lva: str) -> Tuple[int, str]: + """returns the path in UNIZEUG from a LVA based on its LVID (or name) that may be within a string. It uses the path within the database. If there is no Entry with a fitting LVID in the database it creates a new LVA.""" cur = db.cursor() lvid = re.search(r"[a-zA-Z0-9]{3}\.[a-zA-Z0-9]{3}", lva) if lvid is not None: @@ -407,11 +412,13 @@ def get_lvpath(lva: str) -> Tuple[int, str]: def get_profpath(prof: str, lid: int) -> Tuple[int, str]: + """Generates the foldername for a prof based on his name. It searches the database for matches.""" cur = db.cursor() prof = prof.replace("_", " ") cur.execute("SELECT id,name FROM Profs WHERE name=?", (prof,)) res = cur.fetchall() - if res is not None: + print(res != []) + if res is not None and res != []: ret = (res[0][0], res[0][1].replace(" ", "_")) cur.execute("SELECT * FROM LPLink WHERE LId=? AND PId=?", (lid, ret[0])) if cur.fetchall() is None: @@ -420,7 +427,7 @@ def get_profpath(prof: str, lid: int) -> Tuple[int, str]: fname, lname = prof.split(" ") cur.execute("SELECT id,name FROM Profs WHERE name like ?", (lname + " " + fname,)) res = cur.fetchall() - if res is not None: + if res is not None and res != []: ret = (res[0][0], res[0][1].replace(" ", "_")) cur.execute("SELECT * FROM LPLink WHERE LId=? AND PId=?", (lid, ret[0])) if cur.fetchall() is None: @@ -432,6 +439,7 @@ def get_profpath(prof: str, lid: int) -> Tuple[int, str]: def get_subcatpath(subcat: str, cat: int, pid: int, lid: int) -> Tuple[int, str]: + """Generates the subcat path from a subcat name.""" cur = db.cursor() cur.execute( "SELECT id,name FROM SubCats WHERE LId=? AND PId=? AND cat=? AND name=?", @@ -444,6 +452,7 @@ def get_subcatpath(subcat: str, cat: int, pid: int, lid: int) -> Tuple[int, str] def makenew(input: str, table: str, **kwargs) -> Tuple[int, str]: + """Generates new Entrys in the database for LVAs, Profs, SUBCATS""" cur = db.cursor() if table == "LVAs": lvaid = re.search(r"[a-zA-Z0-9]{3}\.[a-zA-Z0-9]{3}", input)