Compare commits
	
		
			144 Commits
		
	
	
		
			1.1.10
			...
			29ea96a5e5
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 29ea96a5e5 | |||
| 026331b397 | |||
| bfe74ad1c5 | |||
| 7c8c2bef70 | |||
| 4ccb57e6a3 | |||
| c8d3bf780d | |||
| 8788b727c5 | |||
| 5e9280d972 | |||
| bd856d0143 | |||
| da57063b68 | |||
| 171aa63df9 | |||
| 74dba4b981 | |||
| a3ebd07093 | |||
| 2de5afd648 | |||
| e8cc42e155 | |||
| 20e20969e4 | |||
| 802d5478d1 | |||
| 05f718f3ae | |||
| 7682b966a8 | |||
| 7cb4f03554 | |||
| b1b74b2551 | |||
| bbad4100dc | |||
| 25df0e4876 | |||
| 4ba40b826a | |||
| 06a0eba5c5 | |||
| fe5b0207c0 | |||
| e01c738cf0 | |||
| d2d59bdad7 | |||
| dd3bfa68c6 | |||
| 4e12ba5ffe | |||
| 35a8b8f592 | |||
| 5c8feed8aa | |||
| e018fdcbdf | |||
| 39b9def76c | |||
| 2801c617f6 | |||
| 5461a6d8dc | |||
| d93c3ad6c7 | |||
| aec7dac4c7 | |||
| 407ec08463 | |||
| 4628f31993 | |||
| 1f2fbc362f | |||
| 666b20d3a9 | |||
| 38093ab817 | |||
| 804aa0b9b8 | |||
| 692cf8de31 | |||
| b15c3b7fa3 | |||
| 49121fd179 | |||
| 9bad75e7c2 | |||
| 7358b67072 | |||
| 1b0ba01258 | |||
| 6fc5ee3ed3 | |||
| 099707446d | |||
| d6b7fd73df | |||
| 6bfb0ddbf9 | |||
| e1b76fa628 | |||
| e6f98def6a | |||
| 590479eee2 | |||
| d25305be4a | |||
| 2889a97f17 | |||
| b540821a32 | |||
| 5b43b72838 | |||
| 46cd33d194 | |||
| 1287829bdf | |||
| c91c8b2bcd | |||
| a5b4c4cd66 | |||
| 1688347367 | |||
| 6e79811bc9 | |||
| e1258151de | |||
| a7c833b9db | |||
| 2f161d2f43 | |||
| 0a5f23f1af | |||
| 23a3dbbc5e | |||
| 8975665407 | |||
| 90de90684c | |||
| d1ecfe9603 | |||
| f7f25e9428 | |||
| 6ae7ab5c5a | |||
| 315c90cacc | |||
| 2caa910613 | |||
| 8e55ebc4b7 | |||
| 665e524aa9 | |||
| ae021ac7ea | |||
| dcbb481b10 | |||
| e6165caed9 | |||
| 58fdc9f48f | |||
| 1c02608410 | |||
| 5e0b322273 | |||
| 4f336bed05 | |||
| 99d476df86 | |||
| 81062e74d7 | |||
| acae8ac891 | |||
| e3dc0f725e | |||
| 40a7919a3f | |||
| 14d0e38c5d | |||
| 62649226ba | |||
| 0a04ad74d8 | |||
| 467050d87e | |||
| e8f2a01851 | |||
| f972055ebf | |||
| 9bbfe498cc | |||
| b21c9f894f | |||
| 7a0f29f557 | |||
| ed72620d33 | |||
| b8356917b3 | |||
| 84fedfaa0b | |||
| 2d358188af | |||
| 79278d8f4b | |||
| b943b9a7ed | |||
| 1c20bbed66 | |||
| 33006e3d01 | |||
| 90ae55c0d4 | |||
| 626d0891f9 | |||
| 09cccd1b89 | |||
| 940a2ed065 | |||
| c2fa1a1c00 | |||
| 1f1b1f7b65 | |||
| 4b52995143 | |||
| 6a6d19686c | |||
| 798162fb62 | |||
| 74c71abea5 | |||
| 0e679eda32 | |||
| 403c169b71 | |||
| a113e21e19 | |||
| 71c091c226 | |||
| b8d27cc682 | |||
| c9b967b9d0 | |||
| 410049be6e | |||
| be6361f619 | |||
| 3a7daf8b42 | |||
| f435d3dd48 | |||
| eb32bec43c | |||
| 232429a77d | |||
| 0946734633 | |||
| ea1472a9eb | |||
| f710f6ad6c | |||
| 030fedfcfb | |||
| bd1d230f67 | |||
| dcafa63d74 | |||
| 3a42b42dbf | |||
| 4747f23202 | |||
| 5057cbed16 | |||
| 7aff767a4b | |||
| 61bdc8a52a | |||
| 5afd0fafa8 | 
| @@ -8,50 +8,56 @@ on: | |||||||
| jobs: | jobs: | ||||||
|   on-push-deploy_sh-edraft: |   on-push-deploy_sh-edraft: | ||||||
|     runs-on: [ dobby.sh-edraft.de, ubuntu-latest ] |     runs-on: [ dobby.sh-edraft.de, ubuntu-latest ] | ||||||
|     container: catthehacker/ubuntu:act-latest |     container: sh-edraft.de/act-runner:latest | ||||||
|     steps: |     steps: | ||||||
|       - name: Setup Python 3.10 |  | ||||||
|         uses: actions/setup-python@v3 |  | ||||||
|         with: |  | ||||||
|           python-version: "3.10.12" |  | ||||||
|       - run: python -v |  | ||||||
|  |  | ||||||
|       - name: Setup docker |       - name: Setup docker | ||||||
|         uses: https://github.com/papodaca/install-docker-action@main |         uses: https://github.com/papodaca/install-docker-action@main | ||||||
|       - run: docker -v |       - run: docker -v | ||||||
|  |  | ||||||
|       - name: Clone Repository |       - name: Clone Repository | ||||||
|         uses: https://github.com/actions/checkout@v3 |         uses: https://github.com/actions/checkout@v3 | ||||||
|  |         with: | ||||||
|       - name: Shutdown stack |           token: ${{ secrets.CI_ACCESS_TOKEN }} | ||||||
|         run: docker stack rm kdb_staging |           submodules: true | ||||||
|  |  | ||||||
|       - name: Prepare bot build |       - name: Prepare bot build | ||||||
|         run: | |         run: | | ||||||
|           cd kdb-bot |           cd bot | ||||||
|           pip install --extra-index-url https://pip.sh-edraft.de cpl-cli |           python3.10 -m pip install --extra-index-url https://pip.sh-edraft.de cpl-cli | ||||||
|           cpl i |           cpl i | ||||||
|  |  | ||||||
|       - name: Build docker bot |  | ||||||
|         run: | |  | ||||||
|           cd kdb-bot |  | ||||||
|           docker image prune -f |  | ||||||
|           cpl docker-build |  | ||||||
|  |  | ||||||
|       - name: Setup node |       - name: Setup node | ||||||
|         uses: https://github.com/actions/setup-node@v3 |         uses: https://github.com/actions/setup-node@v3 | ||||||
|  |  | ||||||
|       - name: Prepare web build |       - name: Prepare web build | ||||||
|         run: | |         run: | | ||||||
|           cd kdb-web |           cd web | ||||||
|           npm install -g ts-node |           npm install -g ts-node | ||||||
|           npm i |           npm ci | ||||||
|  |  | ||||||
|  |       - name: Shutdown stack | ||||||
|  |         run: docker stack rm sdb_dev | ||||||
|  |  | ||||||
|  |       - name: Build docker bot | ||||||
|  |         run: | | ||||||
|  |           cd bot | ||||||
|  |           docker image prune -f | ||||||
|  |           cpl build | ||||||
|  |           docker build -t sh-edraft.de/sdb-bot:$(cpl gv)-dev . | ||||||
|  |  | ||||||
|       - name: Build docker web |       - name: Build docker web | ||||||
|         run: | |         run: | | ||||||
|           cd kdb-web |           cd web | ||||||
|           docker image prune -f |           docker image prune -f | ||||||
|           npm run docker-build |           cp src/favicon.dev.ico src/favicon.ico | ||||||
|  |           npm run build | ||||||
|  |           docker build -t sh-edraft.de/sdb-web:$(npm run -s gv)-dev . | ||||||
|  |  | ||||||
|  |       - name: Set version | ||||||
|  |         run: | | ||||||
|  |           cd bot/docker | ||||||
|  |           chmod +x ./set-docker-compose-image-version.sh | ||||||
|  |           ./set-docker-compose-image-version.sh sh-edraft.de/sdb-bot:$(cd ../; cpl gv)-dev sh-edraft.de/sdb-web:$(cd ../../web; npm run -s gv;)-dev | ||||||
|  |  | ||||||
|       - name: Deploy Stack to sh-edraft.de |       - name: Deploy Stack to sh-edraft.de | ||||||
|         uses: https://github.com/kgierke/portainer-stack-deployment@v1 |         uses: https://github.com/kgierke/portainer-stack-deployment@v1 | ||||||
| @@ -60,6 +66,6 @@ jobs: | |||||||
|           portainer-username: "gitea_job" |           portainer-username: "gitea_job" | ||||||
|           portainer-password: "${{ secrets.docker_job }}" |           portainer-password: "${{ secrets.docker_job }}" | ||||||
|           portainer-endpoint: 2 |           portainer-endpoint: 2 | ||||||
|           name: kdb_staging |           name: sdb_dev | ||||||
|           file: ./docker-compose.staging.yml |           file: bot/docker/docker-compose.dev.yml | ||||||
|           variables: '{}' |           variables: '{}' | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| name: Deploy dev on push | name: Deploy prod on push | ||||||
| run-name: Deploy dev on push | run-name: Deploy prod on push | ||||||
| on: | on: | ||||||
|   push: |   push: | ||||||
|     branches: |     branches: | ||||||
| @@ -8,50 +8,55 @@ on: | |||||||
| jobs: | jobs: | ||||||
|   on-push-deploy_sh-edraft: |   on-push-deploy_sh-edraft: | ||||||
|     runs-on: [ dobby.sh-edraft.de, ubuntu-latest ] |     runs-on: [ dobby.sh-edraft.de, ubuntu-latest ] | ||||||
|     container: catthehacker/ubuntu:act-latest |     container: sh-edraft.de/act-runner:latest | ||||||
|     steps: |     steps: | ||||||
|       - name: Setup Python 3.10 |  | ||||||
|         uses: actions/setup-python@v3 |  | ||||||
|         with: |  | ||||||
|           python-version: "3.10.12" |  | ||||||
|       - run: python -v |  | ||||||
|  |  | ||||||
|       - name: Setup docker |       - name: Setup docker | ||||||
|         uses: https://github.com/papodaca/install-docker-action@main |         uses: https://github.com/papodaca/install-docker-action@main | ||||||
|       - run: docker -v |       - run: docker -v | ||||||
|  |  | ||||||
|       - name: Clone Repository |       - name: Clone Repository | ||||||
|         uses: https://github.com/actions/checkout@v3 |         uses: https://github.com/actions/checkout@v3 | ||||||
|  |         with: | ||||||
|       - name: Shutdown stack |           token: ${{ secrets.CI_ACCESS_TOKEN }} | ||||||
|         run: docker stack rm kdb_prod |           submodules: true | ||||||
|  |  | ||||||
|       - name: Prepare bot build |       - name: Prepare bot build | ||||||
|         run: | |         run: | | ||||||
|           cd kdb-bot |           cd bot | ||||||
|           pip install --extra-index-url https://pip.sh-edraft.de cpl-cli |           python3.10 -m pip install --extra-index-url https://pip.sh-edraft.de cpl-cli | ||||||
|           cpl i |           cpl i | ||||||
|  |  | ||||||
|       - name: Build docker bot |  | ||||||
|         run: | |  | ||||||
|           cd kdb-bot |  | ||||||
|           docker image prune -f |  | ||||||
|           cpl docker-build |  | ||||||
|  |  | ||||||
|       - name: Setup node |       - name: Setup node | ||||||
|         uses: https://github.com/actions/setup-node@v3 |         uses: https://github.com/actions/setup-node@v3 | ||||||
|  |  | ||||||
|       - name: Prepare web build |       - name: Prepare web build | ||||||
|         run: | |         run: | | ||||||
|           cd kdb-web |           cd web | ||||||
|           npm install -g ts-node |           npm install -g ts-node | ||||||
|           npm i |           npm ci | ||||||
|  |  | ||||||
|  |       - name: Shutdown stack | ||||||
|  |         run: docker stack rm sdb_prod | ||||||
|  |  | ||||||
|  |       - name: Build docker bot | ||||||
|  |         run: | | ||||||
|  |           cd bot | ||||||
|  |           docker image prune -f | ||||||
|  |           cpl build | ||||||
|  |           docker build -t sh-edraft.de/sdb-bot:$(cpl gv) . | ||||||
|  |  | ||||||
|       - name: Build docker web |       - name: Build docker web | ||||||
|         run: | |         run: | | ||||||
|           cd kdb-web |           cd web | ||||||
|           docker image prune -f |           docker image prune -f | ||||||
|           npm run docker-build |           npm run build | ||||||
|  |           docker build -t sh-edraft.de/sdb-web:$(npm run -s gv) . | ||||||
|  |  | ||||||
|  |       - name: Set version | ||||||
|  |         run: | | ||||||
|  |           cd bot/docker | ||||||
|  |           chmod +x ./set-docker-compose-image-version.sh | ||||||
|  |           ./set-docker-compose-image-version.sh sh-edraft.de/sdb-bot:$(cd ../; cpl gv) sh-edraft.de/sdb-web:$(cd ../../web; npm run -s gv;) | ||||||
|  |  | ||||||
|       - name: Deploy Stack to sh-edraft.de |       - name: Deploy Stack to sh-edraft.de | ||||||
|         uses: https://github.com/kgierke/portainer-stack-deployment@v1 |         uses: https://github.com/kgierke/portainer-stack-deployment@v1 | ||||||
| @@ -60,6 +65,6 @@ jobs: | |||||||
|           portainer-username: "gitea_job" |           portainer-username: "gitea_job" | ||||||
|           portainer-password: "${{ secrets.docker_job }}" |           portainer-password: "${{ secrets.docker_job }}" | ||||||
|           portainer-endpoint: 2 |           portainer-endpoint: 2 | ||||||
|           name: kdb_prod |           name: sdb_prod | ||||||
|           file: ./docker-compose.yml |           file: bot/docker/docker-compose.yml | ||||||
|           variables: '{}' |           variables: '{}' | ||||||
|   | |||||||
							
								
								
									
										71
									
								
								.gitea/workflows/deploy_staging.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								.gitea/workflows/deploy_staging.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | |||||||
|  | name: Deploy staging on push | ||||||
|  | run-name: Deploy staging on push | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: | ||||||
|  |       - staging | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   on-push-deploy_sh-edraft: | ||||||
|  |     runs-on: [ dobby.sh-edraft.de, ubuntu-latest ] | ||||||
|  |     container: sh-edraft.de/act-runner:latest | ||||||
|  |     steps: | ||||||
|  |       - name: Setup docker | ||||||
|  |         uses: https://github.com/papodaca/install-docker-action@main | ||||||
|  |       - run: docker -v | ||||||
|  |  | ||||||
|  |       - name: Clone Repository | ||||||
|  |         uses: https://github.com/actions/checkout@v3 | ||||||
|  |         with: | ||||||
|  |           token: ${{ secrets.CI_ACCESS_TOKEN }} | ||||||
|  |           submodules: true | ||||||
|  |  | ||||||
|  |       - name: Prepare bot build | ||||||
|  |         run: | | ||||||
|  |           cd bot | ||||||
|  |           python3.10 -m pip install --extra-index-url https://pip.sh-edraft.de cpl-cli | ||||||
|  |           cpl i | ||||||
|  |  | ||||||
|  |       - name: Setup node | ||||||
|  |         uses: https://github.com/actions/setup-node@v3 | ||||||
|  |  | ||||||
|  |       - name: Prepare web build | ||||||
|  |         run: | | ||||||
|  |           cd web | ||||||
|  |           npm install -g ts-node | ||||||
|  |           npm ci | ||||||
|  |  | ||||||
|  |       - name: Shutdown stack | ||||||
|  |         run: docker stack rm sdb_staging | ||||||
|  |  | ||||||
|  |       - name: Build docker bot | ||||||
|  |         run: | | ||||||
|  |           cd bot | ||||||
|  |           docker image prune -f | ||||||
|  |           cpl build | ||||||
|  |           docker build -t sh-edraft.de/sdb-bot:$(cpl gv)-staging . | ||||||
|  |  | ||||||
|  |       - name: Build docker web | ||||||
|  |         run: | | ||||||
|  |           cd web | ||||||
|  |           docker image prune -f | ||||||
|  |           cp src/favicon.staging.ico src/favicon.ico | ||||||
|  |           npm run build | ||||||
|  |           docker build -t sh-edraft.de/sdb-web:$(npm run -s gv)-staging . | ||||||
|  |  | ||||||
|  |       - name: Set version | ||||||
|  |         run: | | ||||||
|  |           cd bot/docker | ||||||
|  |           chmod +x ./set-docker-compose-image-version.sh | ||||||
|  |           ./set-docker-compose-image-version.sh sh-edraft.de/sdb-bot:$(cd ../; cpl gv)-staging sh-edraft.de/sdb-web:$(cd ../../web; npm run -s gv;)-staging | ||||||
|  |  | ||||||
|  |       - name: Deploy Stack to sh-edraft.de | ||||||
|  |         uses: https://github.com/kgierke/portainer-stack-deployment@v1 | ||||||
|  |         with: | ||||||
|  |           portainer-url: "https://docker.sh-edraft.de" | ||||||
|  |           portainer-username: "gitea_job" | ||||||
|  |           portainer-password: "${{ secrets.docker_job }}" | ||||||
|  |           portainer-endpoint: 2 | ||||||
|  |           name: sdb_staging | ||||||
|  |           file: bot/docker/docker-compose.staging.yml | ||||||
|  |           variables: '{}' | ||||||
							
								
								
									
										18
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							| @@ -1,9 +1,9 @@ | |||||||
| [submodule "kdb-bot/src/bot/config"] | [submodule "bot/src/bot/config"] | ||||||
| 	path = kdb-bot/src/bot/config | 	path = bot/src/bot/config | ||||||
| 	url = https://git.sh-edraft.de/sh-edraft.de/kd_discord_bot.config.git | 	url = https://git.sh-edraft.de/sh-edraft.de/sh_discord_bot.config.git | ||||||
| [submodule "kdb-bot/src/bot_api/config"] | [submodule "bot/src/bot_api/config"] | ||||||
| 	path = kdb-bot/src/bot_api/config | 	path = bot/src/bot_api/config | ||||||
| 	url = https://git.sh-edraft.de/sh-edraft.de/kd_discord_bot.api.config.git | 	url = https://git.sh-edraft.de/sh-edraft.de/sh_discord_bot.api.config.git | ||||||
| [submodule "kdb-bot/docker"] | [submodule "bot/docker"] | ||||||
| 	path = kdb-bot/docker | 	path = bot/docker | ||||||
| 	url = https://git.sh-edraft.de/sh-edraft.de/kd_discord_bot.docker.git | 	url = https://git.sh-edraft.de/sh-edraft.de/sh_discord_bot.docker.git | ||||||
|   | |||||||
| @@ -17,10 +17,12 @@ | |||||||
|       "permission": "src/modules/permission/permission.json", |       "permission": "src/modules/permission/permission.json", | ||||||
|       "technician": "src/modules/technician/technician.json", |       "technician": "src/modules/technician/technician.json", | ||||||
|       "short-role-name": "src/modules/short_role_name/short-role-name.json", |       "short-role-name": "src/modules/short_role_name/short-role-name.json", | ||||||
|  |       "special-offers": "src/modules/special_offers/special-offers.json", | ||||||
|       "checks": "tools/checks/checks.json", |       "checks": "tools/checks/checks.json", | ||||||
|       "get-version": "tools/get_version/get-version.json", |       "get-version": "tools/get_version/get-version.json", | ||||||
|       "post-build": "tools/post_build/post-build.json", |       "post-build": "tools/post_build/post-build.json", | ||||||
|       "set-version": "tools/set_version/set-version.json" |       "set-version": "tools/set_version/set-version.json", | ||||||
|  |       "migration-to-sql": "tools/migration_to_sql/migration-to-sql.json" | ||||||
|     }, |     }, | ||||||
|     "Scripts": { |     "Scripts": { | ||||||
|       "format": "black ./", |       "format": "black ./", | ||||||
| @@ -31,12 +33,12 @@ | |||||||
|       "pre-build": "cpl set-version $ARGS; black ./;", |       "pre-build": "cpl set-version $ARGS; black ./;", | ||||||
|       "post-build": "cpl run post-build --dev; black ./;", |       "post-build": "cpl run post-build --dev; black ./;", | ||||||
|       "pre-prod": "cpl build", |       "pre-prod": "cpl build", | ||||||
|       "prod": "export KDB_ENVIRONMENT=production; export KDB_NAME=KDB-Prod; cpl start;", |       "prod": "export SDB_ENVIRONMENT=production; export SDB_NAME=SDB-Prod; cpl start;", | ||||||
|       "pre-stage": "cpl build", |       "pre-stage": "cpl build", | ||||||
|       "stage": "export KDB_ENVIRONMENT=staging; export KDB_NAME=KDB-Stage; cpl start;", |       "stage": "export SDB_ENVIRONMENT=staging; export SDB_NAME=SDB-Stage; cpl start;", | ||||||
|       "pre-dev": "cpl build", |       "pre-dev": "cpl build", | ||||||
|       "dev": "export KDB_ENVIRONMENT=development; export KDB_NAME=KDB-Dev; cpl start;", |       "dev": "export SDB_ENVIRONMENT=development; export SDB_NAME=SDB-Dev; cpl start;", | ||||||
|       "docker-build": "cpl build $ARGS; docker build -t sh-edraft.de/kdb-bot:$(cpl gv) .;", |       "docker-build": "cpl build $ARGS; docker build -t sh-edraft.de/sdb-bot:$(cpl gv) .;", | ||||||
|       "dc-up": "docker-compose up -d", |       "dc-up": "docker-compose up -d", | ||||||
|       "dc-down": "docker-compose down", |       "dc-down": "docker-compose down", | ||||||
|       "docker": "cpl dc-down; cpl docker-build; cpl dc-up;" |       "docker": "cpl dc-down; cpl docker-build; cpl dc-up;" | ||||||
							
								
								
									
										1
									
								
								bot/docker
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								bot/docker
									
									
									
									
									
										Submodule
									
								
							 Submodule bot/docker added at b0bacce9f6
									
								
							| @@ -2,7 +2,7 @@ | |||||||
| FROM python:3.10.4-alpine | FROM python:3.10.4-alpine | ||||||
| 
 | 
 | ||||||
| WORKDIR /app | WORKDIR /app | ||||||
| COPY ./dist/bot/build/kdb-bot/ . | COPY ./dist/bot/build/bot/ . | ||||||
| COPY ./dist/bot/build/requirements.txt . | COPY ./dist/bot/build/requirements.txt . | ||||||
| 
 | 
 | ||||||
| RUN python -m pip install --upgrade pip | RUN python -m pip install --upgrade pip | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -8,8 +8,10 @@ from cpl_discord.service import DiscordBotServiceABC, DiscordBotService | |||||||
| from cpl_translation import TranslatePipe, TranslationServiceABC, TranslationSettings | from cpl_translation import TranslatePipe, TranslationServiceABC, TranslationSettings | ||||||
| 
 | 
 | ||||||
| from bot_api.api_thread import ApiThread | from bot_api.api_thread import ApiThread | ||||||
|  | from bot_core.abc.task_abc import TaskABC | ||||||
| from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum | from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum | ||||||
| from bot_core.configuration.feature_flags_settings import FeatureFlagsSettings | from bot_core.configuration.feature_flags_settings import FeatureFlagsSettings | ||||||
|  | from bot_core.environment_variables import MAINTENANCE | ||||||
| from bot_core.service.data_integrity_service import DataIntegrityService | from bot_core.service.data_integrity_service import DataIntegrityService | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @@ -29,6 +31,8 @@ class Application(DiscordBotApplicationABC): | |||||||
|         # cpl-translation |         # cpl-translation | ||||||
|         self._translation: TranslationServiceABC = services.get_service(TranslationServiceABC) |         self._translation: TranslationServiceABC = services.get_service(TranslationServiceABC) | ||||||
|         self._t: TranslatePipe = services.get_service(TranslatePipe) |         self._t: TranslatePipe = services.get_service(TranslatePipe) | ||||||
|  |         # internal stuff | ||||||
|  |         self._tasks = services.get_services(TaskABC) | ||||||
| 
 | 
 | ||||||
|         self._feature_flags: FeatureFlagsSettings = config.get_configuration(FeatureFlagsSettings) |         self._feature_flags: FeatureFlagsSettings = config.get_configuration(FeatureFlagsSettings) | ||||||
| 
 | 
 | ||||||
| @@ -55,6 +59,10 @@ class Application(DiscordBotApplicationABC): | |||||||
|                 return |                 return | ||||||
| 
 | 
 | ||||||
|             self._logger.info(__name__, f"Try to start {DiscordBotService.__name__}") |             self._logger.info(__name__, f"Try to start {DiscordBotService.__name__}") | ||||||
|  |             if not self._config.get_configuration(MAINTENANCE): | ||||||
|  |                 for task in self._tasks: | ||||||
|  |                     await self._bot.add_cog(task) | ||||||
|  | 
 | ||||||
|             await self._bot.start_async() |             await self._bot.start_async() | ||||||
|             await self._bot.stop_async() |             await self._bot.stop_async() | ||||||
|         except Exception as e: |         except Exception as e: | ||||||
							
								
								
									
										0
									
								
								kdb-bot/src/bot/bot → bot/src/bot/bot
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								kdb-bot/src/bot/bot → bot/src/bot/bot
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -3,8 +3,8 @@ | |||||||
|     "Name": "bot", |     "Name": "bot", | ||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "1", |       "Major": "1", | ||||||
|       "Minor": "1", |       "Minor": "2", | ||||||
|       "Micro": "10" |       "Micro": "2" | ||||||
|     }, |     }, | ||||||
|     "Author": "Sven Heidemann", |     "Author": "Sven Heidemann", | ||||||
|     "AuthorEmail": "sven.heidemann@sh-edraft.de", |     "AuthorEmail": "sven.heidemann@sh-edraft.de", | ||||||
| @@ -16,26 +16,29 @@ | |||||||
|     "LicenseName": "MIT", |     "LicenseName": "MIT", | ||||||
|     "LicenseDescription": "MIT, see LICENSE for more details.", |     "LicenseDescription": "MIT, see LICENSE for more details.", | ||||||
|     "Dependencies": [ |     "Dependencies": [ | ||||||
|       "cpl-core==2023.4.0.post5", |       "cpl-core==2023.10.0", | ||||||
|       "cpl-translation==2023.4.0.post1", |       "cpl-translation==2023.4.0.post1", | ||||||
|       "cpl-query==2023.4.0.post1", |       "cpl-query==2023.10.0", | ||||||
|       "cpl-discord==2023.4.0.post3", |       "cpl-discord==2023.10.0.post1", | ||||||
|       "Flask==2.3.2", |       "Flask==3.0.0", | ||||||
|       "Flask-Classful==0.14.2", |       "Flask-Classful==0.16.0", | ||||||
|       "Flask-Cors==4.0.0", |       "Flask-Cors==4.0.0", | ||||||
|       "PyJWT==2.8.0", |       "PyJWT==2.8.0", | ||||||
|       "waitress==2.1.2", |       "waitress==2.1.2", | ||||||
|       "Flask-SocketIO==5.3.4", |       "Flask-SocketIO==5.3.6", | ||||||
|       "eventlet==0.33.3", |       "eventlet==0.33.3", | ||||||
|       "requests-oauthlib==1.3.1", |       "requests-oauthlib==1.3.1", | ||||||
|       "icmplib==3.0.3", |       "icmplib==3.0.4", | ||||||
|       "ariadne==0.20.1", |       "ariadne==0.20.1", | ||||||
|       "cryptography==41.0.2", |       "cryptography==41.0.4", | ||||||
|       "discord>=2.3.2" |       "discord==2.3.2", | ||||||
|  |       "bs4==0.0.1", | ||||||
|  |       "lxml==4.9.3" | ||||||
|     ], |     ], | ||||||
|     "DevDependencies": [ |     "DevDependencies": [ | ||||||
|       "cpl-cli==2023.4.0.post3", |       "cpl-cli==2023.4.0.post3", | ||||||
|       "pygount==1.6.1" |       "pygount==1.6.1", | ||||||
|  |       "black==23.10.1" | ||||||
|     ], |     ], | ||||||
|     "PythonVersion": ">=3.10.4", |     "PythonVersion": ">=3.10.4", | ||||||
|     "PythonPath": {}, |     "PythonPath": {}, | ||||||
| @@ -69,6 +72,7 @@ | |||||||
|       "../modules/level/level.json", |       "../modules/level/level.json", | ||||||
|       "../modules/permission/permission.json", |       "../modules/permission/permission.json", | ||||||
|       "../modules/short_role_name/short-role-name.json", |       "../modules/short_role_name/short-role-name.json", | ||||||
|  |       "../modules/special_offers/special-offers.json", | ||||||
|       "../modules/technician/technician.json" |       "../modules/technician/technician.json" | ||||||
|     ] |     ] | ||||||
|   } |   } | ||||||
							
								
								
									
										1
									
								
								bot/src/bot/config
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								bot/src/bot/config
									
									
									
									
									
										Submodule
									
								
							 Submodule bot/src/bot/config added at c11ca6f2e8
									
								
							| @@ -15,7 +15,7 @@ __title__ = "bot.extension" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -9,7 +9,7 @@ from bot.application import Application | |||||||
| from bot.extension.init_bot_extension import InitBotExtension | from bot.extension.init_bot_extension import InitBotExtension | ||||||
| from bot.startup import Startup | from bot.startup import Startup | ||||||
| from bot.startup_discord_extension import StartupDiscordExtension | from bot.startup_discord_extension import StartupDiscordExtension | ||||||
| from bot.startup_migration_extension import StartupMigrationExtension | from bot_data.startup_migration_extension import StartupMigrationExtension | ||||||
| from bot.startup_module_extension import StartupModuleExtension | from bot.startup_module_extension import StartupModuleExtension | ||||||
| from bot.startup_settings_extension import StartupSettingsExtension | from bot.startup_settings_extension import StartupSettingsExtension | ||||||
| from bot_api.app_api_extension import AppApiExtension | from bot_api.app_api_extension import AppApiExtension | ||||||
| @@ -14,6 +14,7 @@ from modules.database.database_module import DatabaseModule | |||||||
| from modules.level.level_module import LevelModule | from modules.level.level_module import LevelModule | ||||||
| from modules.permission.permission_module import PermissionModule | from modules.permission.permission_module import PermissionModule | ||||||
| from modules.short_role_name.short_role_name_module import ShortRoleNameModule | from modules.short_role_name.short_role_name_module import ShortRoleNameModule | ||||||
|  | from modules.special_offers.special_offers_module import SteamSpecialOffersModule | ||||||
| from modules.technician.technician_module import TechnicianModule | from modules.technician.technician_module import TechnicianModule | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @@ -37,6 +38,7 @@ class ModuleList: | |||||||
|                 TechnicianModule, |                 TechnicianModule, | ||||||
|                 AchievementsModule, |                 AchievementsModule, | ||||||
|                 ShortRoleNameModule, |                 ShortRoleNameModule, | ||||||
|  |                 SteamSpecialOffersModule, | ||||||
|                 # has to be last! |                 # has to be last! | ||||||
|                 BootLogModule, |                 BootLogModule, | ||||||
|                 CoreExtensionModule, |                 CoreExtensionModule, | ||||||
| @@ -16,6 +16,7 @@ from bot_core.configuration.feature_flags_settings import FeatureFlagsSettings | |||||||
| from bot_core.logging.command_logger import CommandLogger | from bot_core.logging.command_logger import CommandLogger | ||||||
| from bot_core.logging.database_logger import DatabaseLogger | from bot_core.logging.database_logger import DatabaseLogger | ||||||
| from bot_core.logging.message_logger import MessageLogger | from bot_core.logging.message_logger import MessageLogger | ||||||
|  | from bot_core.logging.task_logger import TaskLogger | ||||||
| from bot_data.db_context import DBContext | from bot_data.db_context import DBContext | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @@ -43,6 +44,7 @@ class Startup(StartupABC): | |||||||
|             services.add_singleton(CustomFileLoggerABC, CommandLogger) |             services.add_singleton(CustomFileLoggerABC, CommandLogger) | ||||||
|             services.add_singleton(CustomFileLoggerABC, DatabaseLogger) |             services.add_singleton(CustomFileLoggerABC, DatabaseLogger) | ||||||
|             services.add_singleton(CustomFileLoggerABC, MessageLogger) |             services.add_singleton(CustomFileLoggerABC, MessageLogger) | ||||||
|  |             services.add_singleton(CustomFileLoggerABC, TaskLogger) | ||||||
| 
 | 
 | ||||||
|         if self._feature_flags.get_flag(FeatureFlagsEnum.api_module): |         if self._feature_flags.get_flag(FeatureFlagsEnum.api_module): | ||||||
|             services.add_singleton(CustomFileLoggerABC, ApiLogger) |             services.add_singleton(CustomFileLoggerABC, ApiLogger) | ||||||
| @@ -8,6 +8,7 @@ from cpl_core.dependency_injection import ServiceCollectionABC | |||||||
| from cpl_core.environment import ApplicationEnvironmentABC | from cpl_core.environment import ApplicationEnvironmentABC | ||||||
| 
 | 
 | ||||||
| from bot_core.configuration.bot_logging_settings import BotLoggingSettings | from bot_core.configuration.bot_logging_settings import BotLoggingSettings | ||||||
|  | from bot_core.environment_variables import MAINTENANCE, MIGRATION_ONLY | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class StartupSettingsExtension(StartupExtensionABC): | class StartupSettingsExtension(StartupExtensionABC): | ||||||
| @@ -17,8 +18,14 @@ class StartupSettingsExtension(StartupExtensionABC): | |||||||
|     def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironmentABC): |     def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironmentABC): | ||||||
|         # this shit has to be done here because we need settings in subsequent startup extensions |         # this shit has to be done here because we need settings in subsequent startup extensions | ||||||
|         environment.set_working_directory(os.path.dirname(os.path.realpath(__file__))) |         environment.set_working_directory(os.path.dirname(os.path.realpath(__file__))) | ||||||
|         configuration.add_environment_variables("KDB_") |         configuration.add_environment_variables("SDB_") | ||||||
|         configuration.add_environment_variables("DISCORD_") |         configuration.add_environment_variables("DISCORD_") | ||||||
|  |         configuration.add_configuration( | ||||||
|  |             MAINTENANCE, configuration.get_configuration(MAINTENANCE) in [True, "true", "True"] | ||||||
|  |         ) | ||||||
|  |         configuration.add_configuration( | ||||||
|  |             MIGRATION_ONLY, configuration.get_configuration(MIGRATION_ONLY) in [True, "true", "True"] | ||||||
|  |         ) | ||||||
| 
 | 
 | ||||||
|         configuration.add_json_file(f"config/appsettings.json", optional=False) |         configuration.add_json_file(f"config/appsettings.json", optional=False) | ||||||
|         configuration.add_json_file(f"config/appsettings.{environment.environment_name}.json", optional=True) |         configuration.add_json_file(f"config/appsettings.{environment.environment_name}.json", optional=True) | ||||||
| @@ -90,10 +90,16 @@ | |||||||
|       "booting": "Ich fahre gerade hoch...", |       "booting": "Ich fahre gerade hoch...", | ||||||
|       "restart": "Muss neue Kekse holen...", |       "restart": "Muss neue Kekse holen...", | ||||||
|       "running": "Ich esse Kekse :D", |       "running": "Ich esse Kekse :D", | ||||||
|       "shutdown": "Ich werde bestimmt wieder kommen..." |       "shutdown": "Ich werde bestimmt wieder kommen...", | ||||||
|  |       "maintenance": "In Wartung!" | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   "modules": { |   "modules": { | ||||||
|  |     "special_offers": { | ||||||
|  |       "price": "Preis", | ||||||
|  |       "discount": "Rabatt", | ||||||
|  |       "discount_price": "Neuer Preis" | ||||||
|  |     }, | ||||||
|     "achievements": { |     "achievements": { | ||||||
|       "commands": { |       "commands": { | ||||||
|         "check": "Alles klar, ich schaue eben nach... nom nom" |         "check": "Alles klar, ich schaue eben nach... nom nom" | ||||||
| @@ -229,6 +235,11 @@ | |||||||
|         "success": "Verlinkung wurde entfernt :D" |         "success": "Verlinkung wurde entfernt :D" | ||||||
|       }, |       }, | ||||||
|       "user": { |       "user": { | ||||||
|  |         "birthday": { | ||||||
|  |           "has_birthday": "Alles Gute zum Geburtag {} :D", | ||||||
|  |           "success": "Dein Geburtstag wurde eingetragen.", | ||||||
|  |           "success_team": "{} hat seinen Geburtstag eingetragen: {}" | ||||||
|  |         }, | ||||||
|         "add": { |         "add": { | ||||||
|           "xp": "Die {} von {} wurden um {} erhöht" |           "xp": "Die {} von {} wurden um {} erhöht" | ||||||
|         }, |         }, | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.abc" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -149,7 +149,10 @@ class Api(Flask): | |||||||
|         return response |         return response | ||||||
| 
 | 
 | ||||||
|     def start(self): |     def start(self): | ||||||
|         self._logger.info(__name__, f"Starting API {self._api_settings.host}:{self._api_settings.port}") |         self._logger.info( | ||||||
|  |             __name__, | ||||||
|  |             f"Starting API {self._api_settings.host}:{self._api_settings.port}", | ||||||
|  |         ) | ||||||
|         self._register_routes() |         self._register_routes() | ||||||
|         self.secret_key = CredentialManager.decrypt(self._auth_settings.secret_key) |         self.secret_key = CredentialManager.decrypt(self._auth_settings.secret_key) | ||||||
|         # from waitress import serve |         # from waitress import serve | ||||||
| @@ -48,4 +48,4 @@ class ApiModule(ModuleABC): | |||||||
|         services.add_transient(GraphQLController) |         services.add_transient(GraphQLController) | ||||||
| 
 | 
 | ||||||
|         # cpl-discord |         # cpl-discord | ||||||
|         self._dc.add_event(DiscordEventTypesEnum.on_ready.value, BotApiOnReadyEvent) |         services.add_transient(DiscordEventTypesEnum.on_ready.value, BotApiOnReadyEvent) | ||||||
| @@ -3,8 +3,8 @@ | |||||||
|     "Name": "bot-api", |     "Name": "bot-api", | ||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "1", |       "Major": "1", | ||||||
|       "Minor": "1", |       "Minor": "2", | ||||||
|       "Micro": "10" |       "Micro": "2" | ||||||
|     }, |     }, | ||||||
|     "Author": "", |     "Author": "", | ||||||
|     "AuthorEmail": "", |     "AuthorEmail": "", | ||||||
							
								
								
									
										1
									
								
								bot/src/bot_api/config
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								bot/src/bot_api/config
									
									
									
									
									
										Submodule
									
								
							 Submodule bot/src/bot_api/config added at 521951b8ab
									
								
							| @@ -15,7 +15,7 @@ __title__ = "bot_api.configuration" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.controller" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -14,7 +14,10 @@ from bot_api.model.reset_password_dto import ResetPasswordDTO | |||||||
| from bot_api.model.token_dto import TokenDTO | from bot_api.model.token_dto import TokenDTO | ||||||
| from bot_api.model.update_auth_user_dto import UpdateAuthUserDTO | from bot_api.model.update_auth_user_dto import UpdateAuthUserDTO | ||||||
| from bot_api.route.route import Route | from bot_api.route.route import Route | ||||||
|  | from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum | ||||||
|  | from bot_core.configuration.feature_flags_settings import FeatureFlagsSettings | ||||||
| from bot_data.model.auth_role_enum import AuthRoleEnum | from bot_data.model.auth_role_enum import AuthRoleEnum | ||||||
|  | from bot_data.model.technician_config import TechnicianConfig | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class AuthController: | class AuthController: | ||||||
| @@ -30,6 +33,7 @@ class AuthController: | |||||||
|         mail_settings: EMailClientSettings, |         mail_settings: EMailClientSettings, | ||||||
|         mailer: EMailClientABC, |         mailer: EMailClientABC, | ||||||
|         auth_service: AuthServiceABC, |         auth_service: AuthServiceABC, | ||||||
|  |         technician_config: TechnicianConfig, | ||||||
|     ): |     ): | ||||||
|         self._config = config |         self._config = config | ||||||
|         self._env = env |         self._env = env | ||||||
| @@ -39,6 +43,7 @@ class AuthController: | |||||||
|         self._mail_settings = mail_settings |         self._mail_settings = mail_settings | ||||||
|         self._mailer = mailer |         self._mailer = mailer | ||||||
|         self._auth_service = auth_service |         self._auth_service = auth_service | ||||||
|  |         self._technician_config = technician_config | ||||||
| 
 | 
 | ||||||
|     @Route.get(f"{BasePath}/users") |     @Route.get(f"{BasePath}/users") | ||||||
|     @Route.authorize(role=AuthRoleEnum.admin) |     @Route.authorize(role=AuthRoleEnum.admin) | ||||||
| @@ -70,17 +75,32 @@ class AuthController: | |||||||
| 
 | 
 | ||||||
|     @Route.post(f"{BasePath}/register") |     @Route.post(f"{BasePath}/register") | ||||||
|     async def register(self): |     async def register(self): | ||||||
|  |         if not FeatureFlagsSettings.get_flag_from_dict( | ||||||
|  |             self._technician_config.feature_flags, FeatureFlagsEnum.basic_registration | ||||||
|  |         ): | ||||||
|  |             return | ||||||
|  | 
 | ||||||
|         dto: AuthUserDTO = JSONProcessor.process(AuthUserDTO, request.get_json(force=True, silent=True)) |         dto: AuthUserDTO = JSONProcessor.process(AuthUserDTO, request.get_json(force=True, silent=True)) | ||||||
|         self._auth_service.add_auth_user(dto) |         self._auth_service.add_auth_user(dto) | ||||||
|         return "", 200 |         return "", 200 | ||||||
| 
 | 
 | ||||||
|     @Route.post(f"{BasePath}/register-by-id/<id>") |     @Route.post(f"{BasePath}/register-by-id/<id>") | ||||||
|     async def register_id(self, id: str): |     async def register_id(self, id: str): | ||||||
|  |         if not FeatureFlagsSettings.get_flag_from_dict( | ||||||
|  |             self._technician_config.feature_flags, FeatureFlagsEnum.basic_registration | ||||||
|  |         ): | ||||||
|  |             return | ||||||
|  | 
 | ||||||
|         result = await self._auth_service.confirm_email_async(id) |         result = await self._auth_service.confirm_email_async(id) | ||||||
|         return jsonify(result) |         return jsonify(result) | ||||||
| 
 | 
 | ||||||
|     @Route.post(f"{BasePath}/login") |     @Route.post(f"{BasePath}/login") | ||||||
|     async def login(self) -> Response: |     async def login(self) -> Response: | ||||||
|  |         if not FeatureFlagsSettings.get_flag_from_dict( | ||||||
|  |             self._technician_config.feature_flags, FeatureFlagsEnum.basic_login | ||||||
|  |         ): | ||||||
|  |             return jsonify({}) | ||||||
|  | 
 | ||||||
|         dto: AuthUserDTO = JSONProcessor.process(AuthUserDTO, request.get_json(force=True, silent=True)) |         dto: AuthUserDTO = JSONProcessor.process(AuthUserDTO, request.get_json(force=True, silent=True)) | ||||||
|         result = await self._auth_service.login_async(dto) |         result = await self._auth_service.login_async(dto) | ||||||
|         return jsonify(result.to_dict()) |         return jsonify(result.to_dict()) | ||||||
| @@ -100,6 +120,11 @@ class AuthController: | |||||||
| 
 | 
 | ||||||
|     @Route.post(f"{BasePath}/forgot-password/<email>") |     @Route.post(f"{BasePath}/forgot-password/<email>") | ||||||
|     async def forgot_password(self, email: str): |     async def forgot_password(self, email: str): | ||||||
|  |         if not FeatureFlagsSettings.get_flag_from_dict( | ||||||
|  |             self._technician_config.feature_flags, FeatureFlagsEnum.basic_login | ||||||
|  |         ): | ||||||
|  |             return "", 409 | ||||||
|  | 
 | ||||||
|         await self._auth_service.forgot_password_async(email) |         await self._auth_service.forgot_password_async(email) | ||||||
|         return "", 200 |         return "", 200 | ||||||
| 
 | 
 | ||||||
| @@ -110,6 +135,11 @@ class AuthController: | |||||||
| 
 | 
 | ||||||
|     @Route.post(f"{BasePath}/reset-password") |     @Route.post(f"{BasePath}/reset-password") | ||||||
|     async def reset_password(self): |     async def reset_password(self): | ||||||
|  |         if not FeatureFlagsSettings.get_flag_from_dict( | ||||||
|  |             self._technician_config.feature_flags, FeatureFlagsEnum.basic_login | ||||||
|  |         ): | ||||||
|  |             return "", 409 | ||||||
|  | 
 | ||||||
|         dto: ResetPasswordDTO = JSONProcessor.process(ResetPasswordDTO, request.get_json(force=True, silent=True)) |         dto: ResetPasswordDTO = JSONProcessor.process(ResetPasswordDTO, request.get_json(force=True, silent=True)) | ||||||
|         await self._auth_service.reset_password_async(dto) |         await self._auth_service.reset_password_async(dto) | ||||||
|         return "", 200 |         return "", 200 | ||||||
| @@ -12,6 +12,9 @@ from bot_api.logging.api_logger import ApiLogger | |||||||
| from bot_api.model.settings_dto import SettingsDTO | from bot_api.model.settings_dto import SettingsDTO | ||||||
| from bot_api.model.version_dto import VersionDTO | from bot_api.model.version_dto import VersionDTO | ||||||
| from bot_api.route.route import Route | from bot_api.route.route import Route | ||||||
|  | from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum | ||||||
|  | from bot_core.configuration.feature_flags_settings import FeatureFlagsSettings | ||||||
|  | from bot_data.model.technician_config import TechnicianConfig | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class GuiController: | class GuiController: | ||||||
| @@ -82,3 +85,11 @@ class GuiController: | |||||||
|         ) |         ) | ||||||
|         self._mailer.send_mail(mail) |         self._mailer.send_mail(mail) | ||||||
|         return "", 200 |         return "", 200 | ||||||
|  | 
 | ||||||
|  |     @Route.get(f"{BasePath}/has-feature-flag/<flag>") | ||||||
|  |     async def has_feature_flag(self, flag: str): | ||||||
|  |         settings: TechnicianConfig = self._config.get_configuration(TechnicianConfig) | ||||||
|  |         return { | ||||||
|  |             "key": flag, | ||||||
|  |             "value": FeatureFlagsSettings.get_flag_from_dict(settings.feature_flags, FeatureFlagsEnum(flag)), | ||||||
|  |         } | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.event" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.exception" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.filter" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.filter.discord" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.logging" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.model" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.model.discord" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -27,4 +27,8 @@ class TokenDTO(DtoABC): | |||||||
|         self._first_login = values["firstLogin"] |         self._first_login = values["firstLogin"] | ||||||
| 
 | 
 | ||||||
|     def to_dict(self) -> dict: |     def to_dict(self) -> dict: | ||||||
|         return {"token": self._token, "refreshToken": self._refresh_token, "firstLogin": self._first_login} |         return { | ||||||
|  |             "token": self._token, | ||||||
|  |             "refreshToken": self._refresh_token, | ||||||
|  |             "firstLogin": self._first_login, | ||||||
|  |         } | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.route" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -25,7 +25,12 @@ class Route: | |||||||
| 
 | 
 | ||||||
|     @classmethod |     @classmethod | ||||||
|     @ServiceProviderABC.inject |     @ServiceProviderABC.inject | ||||||
|     def init_authorize(cls, env: ApplicationEnvironmentABC, auth_users: AuthUserRepositoryABC, auth: AuthServiceABC): |     def init_authorize( | ||||||
|  |         cls, | ||||||
|  |         env: ApplicationEnvironmentABC, | ||||||
|  |         auth_users: AuthUserRepositoryABC, | ||||||
|  |         auth: AuthServiceABC, | ||||||
|  |     ): | ||||||
|         cls._auth_users = auth_users |         cls._auth_users = auth_users | ||||||
|         cls._auth = auth |         cls._auth = auth | ||||||
|         cls._env = env.environment_name |         cls._env = env.environment_name | ||||||
| @@ -52,7 +57,13 @@ class Route: | |||||||
|         return user |         return user | ||||||
| 
 | 
 | ||||||
|     @classmethod |     @classmethod | ||||||
|     def authorize(cls, f: Callable = None, role: AuthRoleEnum = None, skip_in_dev=False, by_api_key=False): |     def authorize( | ||||||
|  |         cls, | ||||||
|  |         f: Callable = None, | ||||||
|  |         role: AuthRoleEnum = None, | ||||||
|  |         skip_in_dev=False, | ||||||
|  |         by_api_key=False, | ||||||
|  |     ): | ||||||
|         if f is None: |         if f is None: | ||||||
|             return functools.partial(cls.authorize, role=role, skip_in_dev=skip_in_dev, by_api_key=by_api_key) |             return functools.partial(cls.authorize, role=role, skip_in_dev=skip_in_dev, by_api_key=by_api_key) | ||||||
| 
 | 
 | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.service" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.transformer" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core.abc" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -64,10 +64,18 @@ class ClientUtilsABC(ABC): | |||||||
| 
 | 
 | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     async def react_to_message_by_auto_role_rule( |     async def react_to_message_by_auto_role_rule( | ||||||
|         self, discord_channel_id: int, discord_message_id: int, rule: AutoRoleRule, guild: discord.Guild |         self, | ||||||
|  |         discord_channel_id: int, | ||||||
|  |         discord_message_id: int, | ||||||
|  |         rule: AutoRoleRule, | ||||||
|  |         guild: discord.Guild, | ||||||
|     ): |     ): | ||||||
|         pass |         pass | ||||||
| 
 | 
 | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     async def check_default_role(self, member: Union[discord.User, discord.Member]): |     async def check_default_role(self, member: Union[discord.User, discord.Member]): | ||||||
|         pass |         pass | ||||||
|  | 
 | ||||||
|  |     @abstractmethod | ||||||
|  |     async def set_maintenance_mode(self, state: bool): | ||||||
|  |         pass | ||||||
							
								
								
									
										33
									
								
								bot/src/bot_core/abc/task_abc.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								bot/src/bot_core/abc/task_abc.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | |||||||
|  | import asyncio | ||||||
|  | from abc import abstractmethod | ||||||
|  |  | ||||||
|  | from cpl_core.configuration import ConfigurationABC | ||||||
|  | from cpl_core.dependency_injection import ServiceProviderABC | ||||||
|  | from cpl_discord.service import DiscordBotServiceABC | ||||||
|  | from discord.ext import commands | ||||||
|  |  | ||||||
|  | from bot_core.environment_variables import MAINTENANCE | ||||||
|  | from bot_core.logging.task_logger import TaskLogger | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class TaskABC(commands.Cog): | ||||||
|  |     @abstractmethod | ||||||
|  |     def __init__(self): | ||||||
|  |         commands.Cog.__init__(self) | ||||||
|  |  | ||||||
|  |     @ServiceProviderABC.inject | ||||||
|  |     def _is_maintenance(self, config: ConfigurationABC) -> bool: | ||||||
|  |         return config.get_configuration(MAINTENANCE) is True | ||||||
|  |  | ||||||
|  |     @ServiceProviderABC.inject | ||||||
|  |     async def _wait_until_ready(self, config: ConfigurationABC, logger: TaskLogger, bot: DiscordBotServiceABC): | ||||||
|  |         logger.debug(__name__, f"Waiting before ready {type(self).__name__}") | ||||||
|  |         await bot.wait_until_ready() | ||||||
|  |  | ||||||
|  |         async def wait(): | ||||||
|  |             is_ready = config.get_configuration("IS_READY") is True | ||||||
|  |             if not is_ready: | ||||||
|  |                 await asyncio.sleep(1) | ||||||
|  |                 await wait() | ||||||
|  |  | ||||||
|  |         await wait() | ||||||
| @@ -3,8 +3,8 @@ | |||||||
|     "Name": "bot-core", |     "Name": "bot-core", | ||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "1", |       "Major": "1", | ||||||
|       "Minor": "1", |       "Minor": "2", | ||||||
|       "Micro": "10" |       "Micro": "2" | ||||||
|     }, |     }, | ||||||
|     "Author": "Sven Heidemann", |     "Author": "Sven Heidemann", | ||||||
|     "AuthorEmail": "sven.heidemann@sh-edraft.de", |     "AuthorEmail": "sven.heidemann@sh-edraft.de", | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core.configuration" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -17,6 +17,7 @@ class FeatureFlagsEnum(Enum): | |||||||
|     moderator_module = "ModeratorModule" |     moderator_module = "ModeratorModule" | ||||||
|     permission_module = "PermissionModule" |     permission_module = "PermissionModule" | ||||||
|     short_role_name_module = "ShortRoleNameModule" |     short_role_name_module = "ShortRoleNameModule" | ||||||
|  |     steam_special_offers_module = "SteamSpecialOffersModule" | ||||||
|     # features |     # features | ||||||
|     api_only = "ApiOnly" |     api_only = "ApiOnly" | ||||||
|     presence = "Presence" |     presence = "Presence" | ||||||
| @@ -25,3 +26,7 @@ class FeatureFlagsEnum(Enum): | |||||||
|     sync_xp = "SyncXp" |     sync_xp = "SyncXp" | ||||||
|     short_role_name = "ShortRoleName" |     short_role_name = "ShortRoleName" | ||||||
|     technician_full_access = "TechnicianFullAccess" |     technician_full_access = "TechnicianFullAccess" | ||||||
|  |     steam_special_offers = "SteamSpecialOffers" | ||||||
|  |     scheduled_events = "ScheduledEvents" | ||||||
|  |     basic_registration = "BasicRegistration" | ||||||
|  |     basic_login = "BasicLogin" | ||||||
| @@ -19,6 +19,7 @@ class FeatureFlagsSettings(ConfigurationModelABC): | |||||||
|         FeatureFlagsEnum.permission_module.value: True,  # 02.10.2022 #48 |         FeatureFlagsEnum.permission_module.value: True,  # 02.10.2022 #48 | ||||||
|         FeatureFlagsEnum.config_module.value: True,  # 19.07.2023 #127 |         FeatureFlagsEnum.config_module.value: True,  # 19.07.2023 #127 | ||||||
|         FeatureFlagsEnum.short_role_name_module.value: True,  # 28.09.2023 #378 |         FeatureFlagsEnum.short_role_name_module.value: True,  # 28.09.2023 #378 | ||||||
|  |         FeatureFlagsEnum.steam_special_offers_module.value: True,  # 11.10.2023 #188 | ||||||
|         # features |         # features | ||||||
|         FeatureFlagsEnum.api_only.value: False,  # 13.10.2022 #70 |         FeatureFlagsEnum.api_only.value: False,  # 13.10.2022 #70 | ||||||
|         FeatureFlagsEnum.presence.value: True,  # 03.10.2022 #56 |         FeatureFlagsEnum.presence.value: True,  # 03.10.2022 #56 | ||||||
| @@ -27,6 +28,10 @@ class FeatureFlagsSettings(ConfigurationModelABC): | |||||||
|         FeatureFlagsEnum.sync_xp.value: False,  # 25.09.2023 #366 |         FeatureFlagsEnum.sync_xp.value: False,  # 25.09.2023 #366 | ||||||
|         FeatureFlagsEnum.short_role_name.value: False,  # 28.09.2023 #378 |         FeatureFlagsEnum.short_role_name.value: False,  # 28.09.2023 #378 | ||||||
|         FeatureFlagsEnum.technician_full_access.value: False,  # 03.10.2023 #393 |         FeatureFlagsEnum.technician_full_access.value: False,  # 03.10.2023 #393 | ||||||
|  |         FeatureFlagsEnum.steam_special_offers.value: False,  # 11.10.2023 #188 | ||||||
|  |         FeatureFlagsEnum.scheduled_events.value: False,  # 14.11.2023 #410 | ||||||
|  |         FeatureFlagsEnum.basic_registration.value: False,  # 19.11.2023 #440 | ||||||
|  |         FeatureFlagsEnum.basic_login.value: False,  # 19.11.2023 #440 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     def __init__(self, **kwargs: dict): |     def __init__(self, **kwargs: dict): | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core.core_extension" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.10" | __version__ = "1.2.2" | ||||||
| 
 | 
 | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| 
 | 
 | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
| 
 | 
 | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="10") | version_info = VersionInfo(major="1", minor="2", micro="2") | ||||||
| @@ -19,4 +19,4 @@ class CoreExtensionModule(ModuleABC): | |||||||
|         pass |         pass | ||||||
| 
 | 
 | ||||||
|     def configure_services(self, services: ServiceCollectionABC, env: ApplicationEnvironmentABC): |     def configure_services(self, services: ServiceCollectionABC, env: ApplicationEnvironmentABC): | ||||||
|         self._dc.add_event(DiscordEventTypesEnum.on_ready.value, CoreExtensionOnReadyEvent) |         services.add_transient(DiscordEventTypesEnum.on_ready.value, CoreExtensionOnReadyEvent) | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user