From d421e00b210e64e51e49f620e7c9b42090f6a6fc Mon Sep 17 00:00:00 2001 From: zeroGRMh Date: Sun, 20 Jul 2025 19:54:10 +0300 Subject: [PATCH] my commit --- .DS_Store | Bin 0 -> 6148 bytes src/.DS_Store | Bin 0 -> 6148 bytes src/Backend/ISwork.py | 34 ++++++++++++++++ src/Backend/dbwork.py | 67 ++++++++++++++++++++++++++++++++ src/Backend/docker-compose1.yml | 43 ++++++++++++++++++++ src/Backend/docker-compose2.yml | 22 +++++++++++ src/Frontend/.DS_Store | Bin 0 -> 6148 bytes 7 files changed, 166 insertions(+) create mode 100644 .DS_Store create mode 100644 src/.DS_Store create mode 100644 src/Backend/ISwork.py create mode 100644 src/Backend/dbwork.py create mode 100644 src/Backend/docker-compose1.yml create mode 100644 src/Backend/docker-compose2.yml create mode 100644 src/Frontend/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..deb2edc8b7d0cbf7a5b0b8ebeecf836d31a8b23a GIT binary patch literal 6148 zcmeHK%}(1u5S~p!v4tw-&`NMyiEET%kbtTeCxinBF1VtHfDOw!=BLg&dKAhpawV(qp=FeQmnTfHLmPQM;IkSQmKotrY!1YPC5H-V= zTNgDWo1@}!anF4{$M;!U40m>Zt4g)D_F>&y_cpxC=$9Es!`^UIw0nb}RQqmB7SHWo ze4h5l-TJ2^lMj1o-XGY6H0fi=#g8;k%(!hvc~aQi$TfJr=XdK{lS#1qwV{LHaN5w5 zAUN1-=!3)k>D2c=Z-4oA*1gT{a`Q-|!c~mR*vd!7IXt1k!+D4Xd1mq(^vt8@QG&vN zFdz)92m`!*c^fP8zw(>HfH3fO4AB0dQ3*rF(xKftu&_@6M7l;=L7Og&l%p9##?m3S zpeUD$=u#CwF_cS3zvj4*v2^ItLGj~5@s}09P?Y^T_OER?sL-L5!hkTa$UxOq>vaAf z|NH&Fm?Sk}Kp1#e45(Ts>a=l4e6}tPj?P+*dWA|taizn*DQMWE7-Q)u-bA&6eoY2q U$XGf=4~kp_EDcf!18>T}AB^B)IRF3v literal 0 HcmV?d00001 diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..66da6787f928c287ada71db4d560a7548123c642 GIT binary patch literal 6148 zcmeHK%}T>S5T32oZV{me1-&hJE!rq(#Y?PJ@M=U4Dz!01gE1>@Y7eE5yS|Vw;_K+l z?pBoQQBj$J*>5sGN%q^Yn*jjP=tmwv1pp)}VWEt}Cqi-32`MTA;###*g;)+F@n}7`Qe~<=klMzyCm*qwc4{NOckeR zO0pzp<#}+e2SL`(`n^WGdrDVFS|{PyZimNlXV9w5@9H#b$7!c)3gW1PDQ72f8tFkp z_tU6nY6BaPWm#@jmWD%bZL6w0uRf}(q33O`SJh^HV>Bwuh2_=l!`4l5o9YMi>LBn# zH8SUL43B6`5OE)L(?q9N7#r7(^BI`|W`G&^!wk4BP0s$|Iq<791I)npFhKi*LM8Ma z<`&J?frDuQ5R2$Gf;Rm!QjK!xJIpO&1Vz|VL|ZCciy>?|`jyM`9p)BoISAK$2=`>+ zIuv1^j`vq49fWU@M`nN-_{aeDekc_>|M$M`|4kAP%m6d+KN%3kX3%Wl+}znZF-tmY u73u{l3FYM$-%8LhM=|EoQM`z11pSH(MBia<5j`mUBVcIYff@Kw23`SDnOV#L literal 0 HcmV?d00001 diff --git a/src/Backend/ISwork.py b/src/Backend/ISwork.py new file mode 100644 index 0000000..affd2f3 --- /dev/null +++ b/src/Backend/ISwork.py @@ -0,0 +1,34 @@ +from minio import Minio +from random import randint +import dbwork + +def _setClient(): + minio_client = Minio( + "localhost:9000", + access_key="minioadmin", + secret_key="minioadmin", + secure=False + ) + return minio_client + +def getImageName(currentDay): + maxFiles = 2 + fileNumber = randint(1, maxFiles) + desiredFile = currentDay + '/' + str(fileNumber) + '.jpeg' + return desiredFile + +def downloadImage(currentDay, username): + bucket_name = "cat-images" + client = _setClient() + client.fget_object(bucket_name, getImageName(currentDay), username + '.jpeg') + +def downloadForAll(currentDay): + counter = 1 + user = dbwork.get_user(counter) + while(user != 'Error'): + downloadImage(currentDay, user) + counter += 1 + user = dbwork.get_user(counter) + +Day = 'Tuesday' +downloadForAll(Day) \ No newline at end of file diff --git a/src/Backend/dbwork.py b/src/Backend/dbwork.py new file mode 100644 index 0000000..81e20c4 --- /dev/null +++ b/src/Backend/dbwork.py @@ -0,0 +1,67 @@ +import psycopg2 + +def _get_last_id(cursor): + cursor.execute("SELECT MAX(id) FROM usernames") + id = cursor.fetchall()[0][0] + return id + +def add_user(username): + connection = psycopg2.connect( + dbname="postgres_db", + user="postgres_user", + password="postgres_password", + host="localhost", + port="5430" + ) + cursor = connection.cursor() + cursor.execute("INSERT INTO usernames VALUES (%s, %s);", (_get_last_id(cursor) + 1, username)) + connection.commit() + cursor.close() + connection.close() + +def delete_user(username): + connection = psycopg2.connect( + dbname="postgres_db", + user="postgres_user", + password="postgres_password", + host="localhost", + port="5430" + ) + cursor = connection.cursor() + cursor.execute("DELETE FROM usernames WHERE username = %s;", (username,)) + connection.commit() + cursor.close() + connection.close() + +def change_name(old_username, new_username): + connection = psycopg2.connect( + dbname="postgres_db", + user="postgres_user", + password="postgres_password", + host="localhost", + port="5430" + ) + cursor = connection.cursor() + cursor.execute("UPDATE usernames SET username = %s WHERE username = %s;", (new_username, old_username)) + connection.commit() + cursor.close() + connection.close() + +def get_user(id): + connection = psycopg2.connect( + dbname="postgres_db", + user="postgres_user", + password="postgres_password", + host="localhost", + port="5430" + ) + cursor = connection.cursor() + max_id = _get_last_id(cursor) + if id <= max_id: + cursor.execute("SELECT username FROM usernames WHERE id = %s", (id,)) + username = cursor.fetchall()[0][0] + else: + username = 'Error' + cursor.close() + connection.close() + return username diff --git a/src/Backend/docker-compose1.yml b/src/Backend/docker-compose1.yml new file mode 100644 index 0000000..2512e14 --- /dev/null +++ b/src/Backend/docker-compose1.yml @@ -0,0 +1,43 @@ +version: '3.9' + +services: + postgres: + image: postgres:latest + container_name: postgres_container + environment: + POSTGRES_USER: postgres_user + POSTGRES_PASSWORD: postgres_password + POSTGRES_DB: postgres_db + PGDATA: /var/lib/postgresql/data/pgdata + ports: + - "5430:5432" + volumes: + - ./pgdata:/var/lib/postgresql/data/pgdata + deploy: + resources: + limits: + cpus: '0.50' + memory: 512M + reservations: + cpus: '0.25' + memory: 256M + command: > + postgres -c max_connections=1000 + -c shared_buffers=256MB + -c effective_cache_size=768MB + -c maintenance_work_mem=64MB + -c checkpoint_completion_target=0.7 + -c wal_buffers=16MB + -c default_statistics_target=100 + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U postgres_user -d postgres_db" ] + interval: 30s + timeout: 10s + retries: 5 + restart: unless-stopped + tty: true + stdin_open: true + +volumes: + pgdata: + driver: local \ No newline at end of file diff --git a/src/Backend/docker-compose2.yml b/src/Backend/docker-compose2.yml new file mode 100644 index 0000000..29825d7 --- /dev/null +++ b/src/Backend/docker-compose2.yml @@ -0,0 +1,22 @@ +version: "3.9" +services: + minio: + image: minio/minio:latest + ports: + - "9000:9000" + - "9001:9001" + environment: + MINIO_ACCESS_KEY: minioadmin + MINIO_SECRET_KEY: minioadmin + MINIO_ROOT_USER: minioadmin + MINIO_ROOT_PASSWORD: minioadmin + MINIO_BROWSER: "on" + volumes: + - ./data:/data + command: server /data --console-address ":9001" + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] + interval: 30s + timeout: 20s + retries: 3 + restart: unless-stopped diff --git a/src/Frontend/.DS_Store b/src/Frontend/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0