From ddcf113b0583666a584a93208a402d2f1ad584b4 Mon Sep 17 00:00:00 2001 From: KanonKC Date: Mon, 1 May 2023 12:24:19 +0700 Subject: [PATCH 1/5] P/D for all problems --- ModelGrader.sqlite3 | Bin 589824 -> 589824 bytes api/views/account.py | 2 -- api/views/problem.py | 16 +++++++++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ModelGrader.sqlite3 b/ModelGrader.sqlite3 index 04be82ee387f77998096d8848600086143bc232c..c4f333ccd9322609f69a0f2ccf0539b8b530a121 100644 GIT binary patch delta 207 zcmZo@P-$pTnIO&BF;T{uwSz$~US?xTmL6kS^Lf4Y^LmUx%(VTy9{LomTp_XEUB-OXlayYXl!n2 zVQOY#VquhOVPW|3@aW?+<@Y+-Dg62QB7yX|>qc}qsl?Xesz%gupCzGLA3&i`&Z nj|0mies1 Date: Thu, 4 May 2023 17:48:01 +0700 Subject: [PATCH 2/5] Increase queue size from 3 to 10 --- ModelGrader.sqlite3 | Bin 589824 -> 593920 bytes api/sandbox/section10/testcases/.gitkeep | 0 api/sandbox/section4/testcases/.gitkeep | 0 api/sandbox/section5/testcases/.gitkeep | 0 api/sandbox/section6/testcases/.gitkeep | 0 api/sandbox/section7/testcases/.gitkeep | 0 api/sandbox/section8/testcases/.gitkeep | 0 api/sandbox/section9/testcases/.gitkeep | 0 api/views/submission.py | 2 +- start.sh | 1 + 10 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 api/sandbox/section10/testcases/.gitkeep create mode 100644 api/sandbox/section4/testcases/.gitkeep create mode 100644 api/sandbox/section5/testcases/.gitkeep create mode 100644 api/sandbox/section6/testcases/.gitkeep create mode 100644 api/sandbox/section7/testcases/.gitkeep create mode 100644 api/sandbox/section8/testcases/.gitkeep create mode 100644 api/sandbox/section9/testcases/.gitkeep create mode 100644 start.sh diff --git a/ModelGrader.sqlite3 b/ModelGrader.sqlite3 index c4f333ccd9322609f69a0f2ccf0539b8b530a121..d33f5bd42c2e09d325ace99c365b9f18563d5f05 100644 GIT binary patch delta 1719 zcmah}TWl0n7@nCkXXfl~x2>Q+DP>l>FkN7$=Q7vbUbfw?8UoTLkQk%J?QS>LYH272 zO$fAr(;$hoUNVLUyal7Y2*Efc#)t_~69a@d6B8wx;FF2^q7TM+c1B1M3@17H_CNpa z`!BO|bJ@AKvx}YZq#y`OOPN9O|q>(m-KP~#!!lC0*c<4Adh&vOZkXDw2w(D&>T92eJrE@JWrG89xB_C6k!gUwG z^GagAlu8Nr9ZGKxE=)>CbF4}k@yu$&Ygnesf4X&2w+O3M>&&TQuReNhaqqj zD=;O=JmY)er<2ktIcwuajW~^ZjbUt#o8#36b?X+bx>e6M8Nu9jAviKEy^+P^HD+Q= z2sRt0!^W$1iW?2j9IxATkJcu*WpSbZ3gB1f7xJrw{a4hBGimsuxB~nnq~A<0rC$zO zvGnd5`MUgr{H=Tyw!U;)EH~O)+4wBPQlON`QS2^7G?MZJR3YYgieQB zhS4c$odQHj238Da3@ip3{4#>N55|JsgjQ)Rmb@6;7@SzQJ(h|w6ynFNO@N>;mL6_G z3Jf+u1_QCKKh}-FO9Hu9DmSII(lD0>?~#U-;CKaTYh)0;r@(ORGZaH9{IY@u)+YO! z9r-@}e)_GT^@8|kd*Wi^v&1Kfj}jjw-btKDycQ}|G$n@fl&ZdgWTYQPS^nM9rOP;{7LeQ_pkvs!!>FUno=<}>&VcS!%K~C% z5SLmu)8%m6@95)nHqAeqR@f=DJle7u9Y!PSWwlrNO*yAbDI4I=@IzRGo#zPtLslz( z842Z%W=X3_vO6>S^zP}2ozYoV7r_PW6ijSjMu}r)6a=I-KwH ziwR-=xsD+biNS%tq#k{;k$HAvx~I8D`*!cC=Q92M8B$1Q_?g)=IlZ@s^x|AH8C-is zy5Gp>NAs1+vXSsrvz+Ft*_LfHK9X6#z!P-cOrS@Oxu#=2{~t%YV0i|0sAqc`UqTNF zB%0-_jg{#9$J{C~zG93r7i;oD)_22$$E0Im>y2tT7lsR_V=(MGF4g2szJr8xM1?26 fEkEVNnL(N3S!NW_jstcq3rKlV%diM1>1gslSR!{# delta 579 zcmXAm&1(};6vf}WlQ;7y&Lq<$MaOOvIWwy3BeQd|pe1UF(4{{r7Ii^Jh}&b^Dvb=D$|6KU@!D+rfjh&dA;!YC?38Oi#KC&%wuu*UZG)sL-eT4_Be1D@GdtUDEQghrcZ7*TEH7EX*r>a z300Xz{$KvGc9&@jFu;#&ON%n=>`L$X>?g?r&TDX$M5@{3((uS=)=XzoDKmM^%%n#% zrj^bll9pwTq!%mdvu1ur67mTVA(`iQln=J*`-YM96RA(sRrNmC5>Ur%Yn(PXO~M1r zA5G9a?j-@#tHUK(!VrRa(vLJ9<~+K{{uJoYvd9zzX537J3nYiaI#gWhhB9d)MTcpx zn<8bT8BlV`fb(8>j$C%v&w6x*+(zLZIPFpoObSv$Q1rS2`HH4OFyWE`rv#1ZFfOxJ zkq+!N;J66FK{zH8q;*5ioeDyhe=O1yMpw$c^M|^wKIPgrPGLS%rQ#(w-{B!~s6~GR zE^}vz1|_rWAi5XDuiX78e(Bi@*XHn+=xR~C>4h7fJ@;&#f2q-|?8_v seQesMCwa%F9r>Xhm}gh&3gI_y(Z_X3gA!Bz(!MvTADLr=EC2ui diff --git a/api/sandbox/section10/testcases/.gitkeep b/api/sandbox/section10/testcases/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/api/sandbox/section4/testcases/.gitkeep b/api/sandbox/section4/testcases/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/api/sandbox/section5/testcases/.gitkeep b/api/sandbox/section5/testcases/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/api/sandbox/section6/testcases/.gitkeep b/api/sandbox/section6/testcases/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/api/sandbox/section7/testcases/.gitkeep b/api/sandbox/section7/testcases/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/api/sandbox/section8/testcases/.gitkeep b/api/sandbox/section8/testcases/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/api/sandbox/section9/testcases/.gitkeep b/api/sandbox/section9/testcases/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/api/views/submission.py b/api/views/submission.py index 6b6ea78..209a3c4 100644 --- a/api/views/submission.py +++ b/api/views/submission.py @@ -8,7 +8,7 @@ from ..sandbox import grader from time import sleep -QUEUE = [0,0,0] +QUEUE = [0,0,0,0,0,0,0,0,0,0] def avaliableQueue(): global QUEUE diff --git a/start.sh b/start.sh new file mode 100644 index 0000000..19721a2 --- /dev/null +++ b/start.sh @@ -0,0 +1 @@ +python manage.py runserver 0.0.0.0:8000 \ No newline at end of file From 4fe0e3c2542e5517985c094a835148e07207ad4d Mon Sep 17 00:00:00 2001 From: KanonKC Date: Sat, 6 May 2023 03:23:57 +0700 Subject: [PATCH 3/5] Db updated --- ModelGrader.sqlite3 | Bin 593920 -> 593920 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ModelGrader.sqlite3 b/ModelGrader.sqlite3 index d33f5bd42c2e09d325ace99c365b9f18563d5f05..1e8e743f9abd6a21db745c91f4db31a6f5c4e2e6 100644 GIT binary patch delta 140 zcmZozpwh5FWr8&0nu#*bjB6Sbwk9wxde6Fm!IW>tboLL7u}u7Z+tWTU>hQ7f_c5?d zpZ1UO2OBFhBO^;h`;`BT+o$|zYCW%FWNDgYk(OefoMK^WVs2?^VQH3RnrfVyY@B3n pm}Y5_5^{h3cH8sJ@|KJo?XeszK+FonY(UHo#2njWIXD-y0{}x7EfW9$ delta 140 zcmZozpwh5FWr8&0yooZ-jPn{3wk9wxde7R&V9GaXI{OF4SSG$n+tWTU>hQ6!GBYwx zpZ1UO2OIwa1~wMG_9_1vw@>-c)OudUASv0{#K6GN(7+_k#N0S3F~!IrEzQy-Da9 Date: Sun, 7 May 2023 01:16:52 +0700 Subject: [PATCH 4/5] Auth lifetime chage from hour to second --- ModelGrader.sqlite3 | Bin 593920 -> 602112 bytes api/views/auth.py | 3 +-- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/ModelGrader.sqlite3 b/ModelGrader.sqlite3 index 1e8e743f9abd6a21db745c91f4db31a6f5c4e2e6..d5223d116c2da434cb727210a9d4d491332f235a 100644 GIT binary patch delta 4590 zcmb_f3vg7`89w*5_wL=t*$@In61gCegf#nph7e6e2o6YiiBdxn$VN7VO(t1i^|374 zVX=+|A)cYAMbH4XDGJEFP&?uXE#RZJV;|E&y;`T1)+)}>j-#kOk4>@(WS}$MOzwa0 zf4=Yk|MQ>!yf*BdzQLT{dzHoM1psW_qSf$D?@P_g-Q4M|huy#68n?zh4{^zd&U*B- z9&Yk6E{vpeT)S`p9@o3iaXwfyPOQMpapFw;w2S4Ez;R-uZhXfrxL$F=omdOD>h|k- z1cm#uC8&Q9zmS`)pI^i~j)~S1Fc(QK!Hed*goMJq#{TqvmvFa|cDxE+0h77Hh}Z24 zMb${1L&d6nSXC5`xV^EU8o8l@>iP&Q7H|imJ~dKHRU1JOSLpM42fw?)B(5kFbqD-v zWDa9B5mpcz4~EppT*_KNj7K8wXf&p}BXtZHCAhH9?Tz3dZlJhQY^^ZlbB8f=4%HOu zrzZ)~u%#DFgbNg;GzcYyE8$YO0QSSD-~jA{55T+NT?boSt-Su!5@Dac81@3$241rW z9B%`^X5s`B$5Bg@;F$;C1d@$uPBU@xO^{RkhAB=Fp@O6M!QKur@e0m+4tY%fQKv*B|t^`2xOBtSuPz`&Y-K;m{gyur1gYY4f)F2?;%%!UdFNU9 zp!0pW9HtKXy#3CpN@l(UIF7T0BqcMCyXm6=1#Fvgr5Kv9qklDysc6HqEmEjP?ZGW zr9PnaNyv9hX+3zo_gYEs`?vTmPjd8qwEj!6%=*~ch#eG6-X74qzZ4UELDZ{#wD~#h z9{R*nOGD?r5=$mULOFG{h7nq|C)HY0jsNS=maoO}vm%46Y7HavniaJ0%@qjaxLrewFNjk% zB`=8hU(%BoEKe>KZWKi%H^_Y||9ifP`v-RqXF>f9aL>m)v{q1%+EQzJ^HvnDjavlKLb~91x?n&9-`*O?_3pORcniWPQ?l zlk%g|&46!;MIgLSx=@_&}kgtzdzobY>nYU8rb zR7;1pK9Nq|nTnV7lvim?)770=6W0dvEI8=_VMVQe)$u9?{4`pKSikrQ$Qi^$fXP}>qN7b%BRpO zoKTVp2_RfEA^rZn@;spq#y}nEhc9>q{qRNe`vEYw3KXK5d*z^h-OuH(=xkkrX7878 zM*1GPXVbU)W&PXz3g4_caNapN2ILs7CXbxnGN+MD=BI0aR4Q{;rR&}$@nkBIyu&>5 zkZEi;jf`m=Fpb^jkqxHthu>M)o_^D|arqO2_KQWB~(|F!If+;Uh&LCVAH^%;;z1E8at@x zZIrjeJVLsJrXCb0!Lq!RY}b6m-h{HiNF&%{uAljQ&971K*OU(ih4V%HW@yrJmN(O| zNixs}U+@!9r64Q9AkAkQ8%^UdMQt~aUDGGh4)gO$_>FqAqTJ%^j=K#ILT-} zV;VZ`@BrdwisMVKuu$Hz%s`H_(p1+TS}q5MMhNvD6315#SAteXdw-BrH7O8W3wUba z3g1jAgpL;XNI?e)2G0yUCkDzj)bO#i5`F$3(Tchj%4Mkcj4%$lj#>(kHbJtXfqoI9 zj4Bru;$p+5b0tr!ZUA{^iN#2J+fu3y*1K^4z4QZVB049_MH(JuoPIojyN0Ji-u%?i z2N%Q%=$|RcfzH^)5K8`8nCKr|R)^NNra;Wwq>ftTg0bO+1=YSRR-`ZH`C_4qc=?N? zTJ7oTj@PL8w?2{7W^0LLsw|Q0x-(Ta?ILT_%F9)CZRefc7)Q_^j~4b4UI$a8wNj!` z6K$lqL#x3PwMy0SkCG~8Yd%$7)7g{4aH5$>&h`XNn`>s{S<{kiWna}=uu8iIYbtRW z*JCiXlOvZ=Ia7<3dwgCs-jOqr*07CWzKsyEF*ZLsl27O%7Vs!X5eiiCwuaNwmdni0 zCU+k}SGoPSv^~Ifx@qO=bzibgQzVOciQ)l{Ui%w%&Q_z|tyZg?^_2B->vHR4#Z;bG z+7%Bx0Uv>j;CRS6KX;ySo^-zK+~s`2nRc#o-ijChf63`+_LkhnMBRAMcb}^$~iBs?J405QE zYy)Lp@<5QATSFPfrJHv;31t@%YTSPXPV;%u?9D7ivCv>g$LQw*e3%-Y-i4Hlmxjx5 zF*Sd!aH#sDJLTm(s@g9fN9Hd1WZIQYO5}!|cTF$It|zJy*K}95gTnH!>DhH8ib67# z$+g{;ZI?z}(_PsFW#wJd3$kme@!T~%O|R*$>>U)BcTI=cHexOBn(oTRDJU9n`(iQb zGMZh<5^>3a8&#sgQ3ul72sNF+6Xxub delta 1564 zcmZ9MZEO@p7{_OKXJ7BGbEVWm;mQTB6ezv!-re5r6@>QMSRpnPsv+8X$F+9{w3SwQ zu|kd1(;Ozew1G0wpcYVQO#_he1?B<5yH_eFRH==gkM!PPo`Bj6OsCFqR zv%%_?r)&N&C2K4T>v?ivDrbg;??3@c@K~znJh?~EAUc5dp|4Oc+KXOAn?@4uG)wla z;D($yc3GH?6LGG*mggA8(PqbXJFd0k8auAGV_M)CRspAJ7|)K64`*$)l|F7>A(!J^ zsW)_z8i;XdC%TUAp>3!K{f>S`>(N=X8C^iOC%%tRy{3TkSy{#q8lv5xKc1tNO0nNAulNmCCQk%$=yH|wcjswLQLXz7TV zeER42$>ZO0=X(o#Ktaw!30*}$po^#rbfNGf`xSTU*_P4>)?}7sf`B= zeH%J2wU1|EL0UVWg*a)=cxJHTYAcf+K{0J5lEXwdfJA4U_^l3D2BlUW;L{yYXO(Bk z?GEVPs?bHUd_SPwur?|sM=I6XJn8=ne$T>PlMN?+;V#`laX0T_$kl(~TqeJ%(Nw)n z?I~{;jT^l5TlO|RkEh&+o*7MzhCV@}byQkdz9G42Aw8pe$KYg&8xwH~Son(+r&4$# zPU|e`-TSb}k|t8L&XO*SQ~E@T)>+cul%jt0i4?7)(jz}Lm>Gk4w6#S%S`Q^Ge%TnD zk?kCV^yEqBn6RgTTgnMotQY(HstWK(z1VCD}Qc84{PW*%Dl5kF)XH_E?O6 z84{PUSszwE5^J5=Sv)9aHb$%i*A0p~SA~1t#2fKKtOPNFE%O*j4`lEs&Ff diff --git a/api/views/auth.py b/api/views/auth.py index 110c8dd..11df9d1 100644 --- a/api/views/auth.py +++ b/api/views/auth.py @@ -11,8 +11,7 @@ from time import time from decouple import config -TOKEN_LIFETIME_HOURS = int(config('TOKEN_LIFETIME_HOURS')) -TOKEN_LIFETIME = TOKEN_LIFETIME_HOURS * 60 * 60 # (Second) +TOKEN_LIFETIME = int(config('TOKEN_LIFETIME_SECOND')) # (Second) @api_view([POST]) def login(request): From 13f6c1200cfe54446c627fa66dd17b0b5ff163be Mon Sep 17 00:00:00 2001 From: KanonKC Date: Mon, 8 May 2023 02:10:52 +0700 Subject: [PATCH 5/5] db change pass --- ModelGrader.sqlite3 | Bin 602112 -> 667648 bytes api/urls.py | 1 + api/views/account.py | 8 ++++++++ api/views/problem.py | 2 +- 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ModelGrader.sqlite3 b/ModelGrader.sqlite3 index d5223d116c2da434cb727210a9d4d491332f235a..6ff7887f43c8cad19ecbbe37139e46480fec1037 100644 GIT binary patch delta 57985 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%0AP#GHybA0{?41_uvFYJK{w_YZ2e zun~<>T8Nrl!o(v+Lk&VBb+!%!jL6Uxpr$>&8mQUKLfQK4+ZFY(;F9+mN6PZUz2oR8 z;0OXg6_^qAXJgkCM-a)d{|n-D3~(eaD*wtA`d!)AOV2GS3w%bb@LeeUg*@VEbo~mV z@-vnFN2a?WCaBDoy>Ua=g_}C4K|4Ad7m>zBY`GESPa`$W^oH7|Gui$03 z27SD~`@&u-12df`dz0BNsjd5hO_2qdF{5$LpR(y}3zSGCpKjXHvzwpT(+$U_)7A^K z0yB*alPSt;;N^e?O~&Scus{ntT+Bzr`c!bsxtaK*E$1rDTh6V~@I<8- zv|(G$)!4I48xi0FQI>K(cEw|q=rbOrM6Y<9620P)O6(0DtHdsuV-fQ&JRB-^%Ay%2Zfw2=-_%mp2!S( zz}!MgH(4%>%Yt@cZpR#@VTTu^MS$nxJkU+U`+{yjZu?6$k&S0ka@sr9(1;o4&>n$Z zMMs1PVlRwX#g3`zbAesDW9J9Sp>|?%hgyb>Wq=cJ2Ws93xy$(WpK@cOxN#23GjyiDH6>;G51n$6HXLI1L8>a&o z`J7RXV>@t>-4?i*MMZ%F*JezEPB(&tFd-`NC&d+piuE5{RB&lY!7d;MP_ZVx4yZ`H z_o?Ef%m68%ieSCNPHZ<6VmWfia;nOY3YN5bK_l{|pA4M}tyVxpVy7ozjWrm9Sq~s&6&_$&$ zmwe{W#Sd zf%iDb5GNNw>i4D3$2{50A}&4vQa=~qnV7e)Qh!zzu}gML_UGb=b1K1cuy9i=CagFn oq&Q!?Cxd0t{Q$qv=+oV!5b>1rIkpRtyp5u~^0b14OQM@c;k- delta 4306 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",account.get_account), path("accounts//daily-submissions",account.get_daily_submission), + path("accounts//password",account.change_password), path('accounts//problems',problem.create_problem), path('problems',problem.all_problem), diff --git a/api/views/account.py b/api/views/account.py index 9549c83..b69df3b 100644 --- a/api/views/account.py +++ b/api/views/account.py @@ -25,6 +25,14 @@ def get_account(request,account_id): except: return Response({'message':'Account not found!'},status=status.HTTP_404_NOT_FOUND) +@api_view([PUT]) +def change_password(request,account_id): + account = Account.objects.get(account_id=account_id) + account.password = passwordEncryption(request.data['password']) + account.save() + + return Response({'message':"Your password has been changed"}) + @api_view([GET]) def get_daily_submission(request,account_id:int): submissions = Submission.objects.filter(account_id=account_id) diff --git a/api/views/problem.py b/api/views/problem.py index 428cbc6..8690787 100644 --- a/api/views/problem.py +++ b/api/views/problem.py @@ -18,7 +18,7 @@ def create_problem(request,account_id): checked = checker(1,request.data['solution'],request.data['testcases'],request.data.get('time_limit',1.5)) if checked['has_error'] or checked['has_timeout']: - return Response({'detail': 'Error during creating. Your code may has an error/timeout!'},status=status.HTTP_406_NOT_ACCEPTABLE) + return Response({'detail': 'Error during creating. Your code may has an error/timeout!','result': checked},status=status.HTTP_406_NOT_ACCEPTABLE) problem = Problem( language = request.data['language'],