Compare commits
1 Commits
1.2.1
...
1e3245b2f4
Author | SHA1 | Date | |
---|---|---|---|
1e3245b2f4 |
@@ -1,17 +0,0 @@
|
|||||||
#### Beschreibung
|
|
||||||
|
|
||||||
Als Produktmanager muss ich nun dieses Ticket ausfüllen.
|
|
||||||
|
|
||||||
#### Aktuelles Verhalten
|
|
||||||
|
|
||||||
* Was macht die Software aktuell?
|
|
||||||
|
|
||||||
#### Gewünschtes Verhalten
|
|
||||||
|
|
||||||
* Was soll die Software anders machen?
|
|
||||||
|
|
||||||
#### Akzeptanzkriterien
|
|
||||||
|
|
||||||
* Was muss erfüllt sein, damit das Ticket als abgeschlossen angesehen werden kann?
|
|
||||||
|
|
||||||
#### Anmerkungen
|
|
@@ -1,7 +0,0 @@
|
|||||||
#### Ticket Referenz:
|
|
||||||
|
|
||||||
#1
|
|
||||||
|
|
||||||
#### Gibt es etwas beim Review zu beachten?
|
|
||||||
|
|
||||||
Nein
|
|
@@ -1,5 +1,5 @@
|
|||||||
name: Deploy prod on push
|
name: Deploy dev on push
|
||||||
run-name: Deploy prod on push
|
run-name: Deploy dev on push
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
@@ -8,55 +8,50 @@ 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: sh-edraft.de/act-runner:latest
|
container: catthehacker/ubuntu:act-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:
|
|
||||||
token: ${{ secrets.CI_ACCESS_TOKEN }}
|
- name: Shutdown stack
|
||||||
submodules: true
|
run: docker stack rm kdb_prod
|
||||||
|
|
||||||
- name: Prepare bot build
|
- name: Prepare bot build
|
||||||
run: |
|
run: |
|
||||||
cd bot
|
cd kdb-bot
|
||||||
python3.10 -m pip install --extra-index-url https://pip.sh-edraft.de cpl-cli
|
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 web
|
cd kdb-web
|
||||||
npm install -g ts-node
|
npm install -g ts-node
|
||||||
npm ci
|
npm i
|
||||||
|
|
||||||
- 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 web
|
cd kdb-web
|
||||||
docker image prune -f
|
docker image prune -f
|
||||||
npm run build
|
npm run docker-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
|
||||||
@@ -65,6 +60,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: sdb_prod
|
name: kdb_prod
|
||||||
file: bot/docker/docker-compose.yml
|
file: ./docker-compose.yml
|
||||||
variables: '{}'
|
variables: '{}'
|
||||||
|
@@ -1,71 +0,0 @@
|
|||||||
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: '{}'
|
|
@@ -3,61 +3,55 @@ run-name: Deploy dev on push
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- dev
|
- support
|
||||||
|
|
||||||
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: sh-edraft.de/act-runner:latest
|
container: catthehacker/ubuntu:act-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:
|
|
||||||
token: ${{ secrets.CI_ACCESS_TOKEN }}
|
- name: Shutdown stack
|
||||||
submodules: true
|
run: docker stack rm kdb_staging
|
||||||
|
|
||||||
- name: Prepare bot build
|
- name: Prepare bot build
|
||||||
run: |
|
run: |
|
||||||
cd bot
|
cd kdb-bot
|
||||||
python3.10 -m pip install --extra-index-url https://pip.sh-edraft.de cpl-cli
|
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 web
|
cd kdb-web
|
||||||
npm install -g ts-node
|
npm install -g ts-node
|
||||||
npm ci
|
npm i
|
||||||
|
|
||||||
- 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 web
|
cd kdb-web
|
||||||
docker image prune -f
|
docker image prune -f
|
||||||
cp src/favicon.dev.ico src/favicon.ico
|
npm run docker-build
|
||||||
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
|
||||||
@@ -66,6 +60,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: sdb_dev
|
name: kdb_staging
|
||||||
file: bot/docker/docker-compose.dev.yml
|
file: ./docker-compose.staging.yml
|
||||||
variables: '{}'
|
variables: '{}'
|
18
.gitmodules
vendored
18
.gitmodules
vendored
@@ -1,9 +1,9 @@
|
|||||||
[submodule "bot/src/bot/config"]
|
[submodule "kdb-bot/src/bot/config"]
|
||||||
path = bot/src/bot/config
|
path = kdb-bot/src/bot/config
|
||||||
url = https://git.sh-edraft.de/sh-edraft.de/sh_discord_bot.config.git
|
url = https://git.sh-edraft.de/sh-edraft.de/kd_discord_bot.config.git
|
||||||
[submodule "bot/src/bot_api/config"]
|
[submodule "kdb-bot/src/bot_api/config"]
|
||||||
path = bot/src/bot_api/config
|
path = kdb-bot/src/bot_api/config
|
||||||
url = https://git.sh-edraft.de/sh-edraft.de/sh_discord_bot.api.config.git
|
url = https://git.sh-edraft.de/sh-edraft.de/kd_discord_bot.api.config.git
|
||||||
[submodule "bot/docker"]
|
[submodule "kdb-bot/docker"]
|
||||||
path = bot/docker
|
path = kdb-bot/docker
|
||||||
url = https://git.sh-edraft.de/sh-edraft.de/sh_discord_bot.docker.git
|
url = https://git.sh-edraft.de/sh-edraft.de/kd_discord_bot.docker.git
|
||||||
|
Submodule bot/docker deleted from 9c0dc59534
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
Submodule bot/src/bot/config deleted from c11ca6f2e8
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot.extension"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.abc"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
Submodule bot/src/bot_api/config deleted from 521951b8ab
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.configuration"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.controller"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.event"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.exception"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.filter"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.filter.discord"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.logging"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.model"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.model.discord"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.route"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.service"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_api.transformer"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_core"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_core.abc"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,33 +0,0 @@
|
|||||||
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 {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()
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_core.configuration"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_core.core_extension"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,2 +0,0 @@
|
|||||||
MIGRATION_ONLY = "MIGRATION_ONLY"
|
|
||||||
MAINTENANCE = "MAINTENANCE"
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_core.events"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_core.exception"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_core.helper"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_core.logging"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,15 +0,0 @@
|
|||||||
from cpl_core.configuration import ConfigurationABC
|
|
||||||
from cpl_core.environment import ApplicationEnvironmentABC
|
|
||||||
from cpl_core.time import TimeFormatSettings
|
|
||||||
|
|
||||||
from bot_core.abc.custom_file_logger_abc import CustomFileLoggerABC
|
|
||||||
|
|
||||||
|
|
||||||
class TaskLogger(CustomFileLoggerABC):
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
config: ConfigurationABC,
|
|
||||||
time_format: TimeFormatSettings,
|
|
||||||
env: ApplicationEnvironmentABC,
|
|
||||||
):
|
|
||||||
CustomFileLoggerABC.__init__(self, "Task", config, time_format, env)
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_core.pipes"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_core.service"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_data"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_data.abc"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,32 +0,0 @@
|
|||||||
from abc import ABC, abstractmethod
|
|
||||||
from typing import Optional
|
|
||||||
|
|
||||||
from cpl_query.extension import List
|
|
||||||
|
|
||||||
from bot_data.model.steam_special_offer import SteamSpecialOffer
|
|
||||||
|
|
||||||
|
|
||||||
class SteamSpecialOfferRepositoryABC(ABC):
|
|
||||||
@abstractmethod
|
|
||||||
def __init__(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
@abstractmethod
|
|
||||||
def get_steam_special_offers(self) -> List[SteamSpecialOffer]:
|
|
||||||
pass
|
|
||||||
|
|
||||||
@abstractmethod
|
|
||||||
def get_steam_special_offer_by_name(self, name: str) -> SteamSpecialOffer:
|
|
||||||
pass
|
|
||||||
|
|
||||||
@abstractmethod
|
|
||||||
def add_steam_special_offer(self, steam_special_offer: SteamSpecialOffer):
|
|
||||||
pass
|
|
||||||
|
|
||||||
@abstractmethod
|
|
||||||
def update_steam_special_offer(self, steam_special_offer: SteamSpecialOffer):
|
|
||||||
pass
|
|
||||||
|
|
||||||
@abstractmethod
|
|
||||||
def delete_steam_special_offer(self, steam_special_offer: SteamSpecialOffer):
|
|
||||||
pass
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_data.migration"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,84 +0,0 @@
|
|||||||
from bot_core.logging.database_logger import DatabaseLogger
|
|
||||||
from bot_data.abc.migration_abc import MigrationABC
|
|
||||||
from bot_data.db_context import DBContext
|
|
||||||
|
|
||||||
|
|
||||||
class BirthdayMigration(MigrationABC):
|
|
||||||
name = "1.2.0_BirthdayMigration"
|
|
||||||
|
|
||||||
def __init__(self, logger: DatabaseLogger, db: DBContext):
|
|
||||||
MigrationABC.__init__(self)
|
|
||||||
self._logger = logger
|
|
||||||
self._db = db
|
|
||||||
self._cursor = db.cursor
|
|
||||||
|
|
||||||
def upgrade(self):
|
|
||||||
self._logger.debug(__name__, "Running upgrade")
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE Users
|
|
||||||
ADD Birthday DATE NULL AFTER MessageCount;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE UsersHistory
|
|
||||||
ADD Birthday DATE NULL AFTER MessageCount;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._exec(__file__, "users.sql")
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_Server
|
|
||||||
ADD XpForBirthday BIGINT(20) NOT NULL DEFAULT 0 AFTER XpPerAchievement;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_ServerHistory
|
|
||||||
ADD XpForBirthday BIGINT(20) NOT NULL DEFAULT 0 AFTER XpPerAchievement;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._exec(__file__, "config/server.sql")
|
|
||||||
|
|
||||||
def downgrade(self):
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE Users DROP COLUMN Birthday;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE UsersHistory DROP COLUMN Birthday;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_Server DROP COLUMN XpForBirthday;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_ServerHistory DROP COLUMN XpForBirthday;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
@@ -1,45 +0,0 @@
|
|||||||
ALTER TABLE `Users`
|
|
||||||
CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6);
|
|
||||||
|
|
||||||
ALTER TABLE `Users`
|
|
||||||
CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `UsersHistory`
|
|
||||||
(
|
|
||||||
`Id` BIGINT(20) NOT NULL,
|
|
||||||
`DiscordId` BIGINT(20) NOT NULL,
|
|
||||||
`XP` BIGINT(20) NOT NULL DEFAULT 0,
|
|
||||||
`ReactionCount` BIGINT(20) NOT NULL DEFAULT 0,
|
|
||||||
`MessageCount` BIGINT(20) NOT NULL DEFAULT 0,
|
|
||||||
`Birthday` DATE NULL,
|
|
||||||
`ServerId` BIGINT(20) DEFAULT NULL,
|
|
||||||
`Deleted` BOOL DEFAULT FALSE,
|
|
||||||
`DateFrom` DATETIME(6) NOT NULL,
|
|
||||||
`DateTo` DATETIME(6) NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
DROP TRIGGER IF EXISTS `TR_UsersUpdate`;
|
|
||||||
|
|
||||||
CREATE TRIGGER `TR_UsersUpdate`
|
|
||||||
AFTER UPDATE
|
|
||||||
ON `Users`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
INSERT INTO `UsersHistory` (`Id`, `DiscordId`, `XP`, `ReactionCount`, `MessageCount`, `Birthday`, `ServerId`,
|
|
||||||
`DateFrom`, `DateTo`)
|
|
||||||
VALUES (OLD.UserId, OLD.DiscordId, OLD.XP, OLD.ReactionCount, OLD.MessageCount, OLD.Birthday, OLD.ServerId,
|
|
||||||
OLD.LastModifiedAt, CURRENT_TIMESTAMP(6));
|
|
||||||
END;
|
|
||||||
|
|
||||||
DROP TRIGGER IF EXISTS `TR_UsersDelete`;
|
|
||||||
|
|
||||||
CREATE TRIGGER `TR_UsersDelete`
|
|
||||||
AFTER DELETE
|
|
||||||
ON `Users`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
INSERT INTO `UsersHistory` (`Id`, `DiscordId`, `XP`, `ReactionCount`, `MessageCount`, `Birthday`, `ServerId`,
|
|
||||||
`Deleted`, `DateFrom`, `DateTo`)
|
|
||||||
VALUES (OLD.UserId, OLD.DiscordId, OLD.XP, OLD.ReactionCount, OLD.MessageCount, OLD.Birthday, OLD.ServerId, TRUE,
|
|
||||||
OLD.LastModifiedAt, CURRENT_TIMESTAMP(6));
|
|
||||||
END;
|
|
@@ -1,41 +0,0 @@
|
|||||||
from bot_core.logging.database_logger import DatabaseLogger
|
|
||||||
from bot_data.abc.migration_abc import MigrationABC
|
|
||||||
from bot_data.db_context import DBContext
|
|
||||||
|
|
||||||
|
|
||||||
class FixUserHistoryMigration(MigrationABC):
|
|
||||||
name = "1.2.0_FixUserHistoryMigration"
|
|
||||||
|
|
||||||
def __init__(self, logger: DatabaseLogger, db: DBContext):
|
|
||||||
MigrationABC.__init__(self)
|
|
||||||
self._logger = logger
|
|
||||||
self._db = db
|
|
||||||
self._cursor = db.cursor
|
|
||||||
|
|
||||||
def upgrade(self):
|
|
||||||
self._logger.debug(__name__, "Running upgrade")
|
|
||||||
|
|
||||||
# fix 1.1.0_AchievementsMigration
|
|
||||||
self._cursor.execute(
|
|
||||||
str(f"""ALTER TABLE UsersHistory ADD COLUMN ReactionCount BIGINT NOT NULL DEFAULT 0 AFTER XP;""")
|
|
||||||
)
|
|
||||||
self._cursor.execute(
|
|
||||||
str(f"""ALTER TABLE UsersHistory ADD COLUMN MessageCount BIGINT NOT NULL DEFAULT 0 AFTER ReactionCount;""")
|
|
||||||
)
|
|
||||||
self._exec(__file__, "users.sql")
|
|
||||||
|
|
||||||
def downgrade(self):
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE UsersHistory DROP COLUMN MessageCount;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE UsersHistory DROP COLUMN ReactionCount;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
@@ -1,51 +0,0 @@
|
|||||||
from bot_core.logging.database_logger import DatabaseLogger
|
|
||||||
from bot_data.abc.migration_abc import MigrationABC
|
|
||||||
from bot_data.db_context import DBContext
|
|
||||||
|
|
||||||
|
|
||||||
class MaintenanceModeMigration(MigrationABC):
|
|
||||||
name = "1.2.0_MaintenanceModeMigration"
|
|
||||||
|
|
||||||
def __init__(self, logger: DatabaseLogger, db: DBContext):
|
|
||||||
MigrationABC.__init__(self)
|
|
||||||
self._logger = logger
|
|
||||||
self._db = db
|
|
||||||
self._cursor = db.cursor
|
|
||||||
|
|
||||||
def upgrade(self):
|
|
||||||
self._logger.debug(__name__, "Running upgrade")
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_Technician
|
|
||||||
ADD Maintenance BOOLEAN DEFAULT FALSE AFTER MaxSteamOfferCount;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_TechnicianHistory
|
|
||||||
ADD Maintenance BOOLEAN DEFAULT FALSE AFTER MaxSteamOfferCount;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._exec(__file__, "config/technician.sql")
|
|
||||||
|
|
||||||
def downgrade(self):
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_Technician DROP COLUMN Maintenance;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_TechnicianHistory DROP COLUMN Maintenance;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
@@ -1,51 +0,0 @@
|
|||||||
from bot_core.logging.database_logger import DatabaseLogger
|
|
||||||
from bot_data.abc.migration_abc import MigrationABC
|
|
||||||
from bot_data.db_context import DBContext
|
|
||||||
|
|
||||||
|
|
||||||
class MaxSteamOfferCountMigration(MigrationABC):
|
|
||||||
name = "1.2.0_MaxSteamOfferCountMigration"
|
|
||||||
|
|
||||||
def __init__(self, logger: DatabaseLogger, db: DBContext):
|
|
||||||
MigrationABC.__init__(self)
|
|
||||||
self._logger = logger
|
|
||||||
self._db = db
|
|
||||||
self._cursor = db.cursor
|
|
||||||
|
|
||||||
def upgrade(self):
|
|
||||||
self._logger.debug(__name__, "Running upgrade")
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_Technician
|
|
||||||
ADD MaxSteamOfferCount BIGINT NOT NULL DEFAULT 250 AFTER CacheMaxMessages;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_TechnicianHistory
|
|
||||||
ADD MaxSteamOfferCount BIGINT NOT NULL DEFAULT 250 AFTER CacheMaxMessages;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._exec(__file__, "config/technician.sql")
|
|
||||||
|
|
||||||
def downgrade(self):
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_Technician DROP COLUMN MaxSteamOfferCount;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_TechnicianHistory DROP COLUMN MaxSteamOfferCount;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
@@ -1,51 +0,0 @@
|
|||||||
from bot_core.logging.database_logger import DatabaseLogger
|
|
||||||
from bot_data.abc.migration_abc import MigrationABC
|
|
||||||
from bot_data.db_context import DBContext
|
|
||||||
|
|
||||||
|
|
||||||
class ShortRoleNameOnlyHighestMigration(MigrationABC):
|
|
||||||
name = "1.1.9_ShortRoleNameOnlyHighestMigration"
|
|
||||||
|
|
||||||
def __init__(self, logger: DatabaseLogger, db: DBContext):
|
|
||||||
MigrationABC.__init__(self)
|
|
||||||
self._logger = logger
|
|
||||||
self._db = db
|
|
||||||
self._cursor = db.cursor
|
|
||||||
|
|
||||||
def upgrade(self):
|
|
||||||
self._logger.debug(__name__, "Running upgrade")
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_Server
|
|
||||||
ADD ShortRoleNameSetOnlyHighest BOOLEAN NOT NULL DEFAULT FALSE AFTER DefaultRoleId;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_ServerHistory
|
|
||||||
ADD ShortRoleNameSetOnlyHighest BOOLEAN NOT NULL DEFAULT FALSE AFTER DefaultRoleId;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._exec(__file__, "config/server.sql")
|
|
||||||
|
|
||||||
def downgrade(self):
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_Server DROP COLUMN ShortRoleNameSetOnlyHighest;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_ServerHistory DROP COLUMN ShortRoleNameSetOnlyHighest;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
@@ -1,68 +0,0 @@
|
|||||||
from bot_core.logging.database_logger import DatabaseLogger
|
|
||||||
from bot_data.abc.migration_abc import MigrationABC
|
|
||||||
from bot_data.db_context import DBContext
|
|
||||||
|
|
||||||
|
|
||||||
class SteamSpecialOfferMigration(MigrationABC):
|
|
||||||
name = "1.2.0_SteamSpecialOfferMigration"
|
|
||||||
|
|
||||||
def __init__(self, logger: DatabaseLogger, db: DBContext):
|
|
||||||
MigrationABC.__init__(self)
|
|
||||||
self._logger = logger
|
|
||||||
self._db = db
|
|
||||||
self._cursor = db.cursor
|
|
||||||
|
|
||||||
def upgrade(self):
|
|
||||||
self._logger.debug(__name__, "Running upgrade")
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
CREATE TABLE IF NOT EXISTS `SteamSpecialOffers` (
|
|
||||||
`Id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
||||||
`Game` VARCHAR(255) NOT NULL,
|
|
||||||
`OriginalPrice` FLOAT NOT NULL,
|
|
||||||
`DiscountPrice` FLOAT NOT NULL,
|
|
||||||
`DiscountPct` BIGINT NOT NULL,
|
|
||||||
`CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
||||||
`LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
||||||
PRIMARY KEY(`Id`)
|
|
||||||
);
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_Server
|
|
||||||
ADD COLUMN GameOfferNotificationChatId BIGINT NULL AFTER ShortRoleNameSetOnlyHighest;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_ServerHistory
|
|
||||||
ADD COLUMN GameOfferNotificationChatId BIGINT NULL AFTER ShortRoleNameSetOnlyHighest;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
def downgrade(self):
|
|
||||||
self._cursor.execute("DROP TABLE `SteamSpecialOffers`;")
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_Server DROP COLUMN ShortRoleNameSetOnlyHighest;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
||||||
self._cursor.execute(
|
|
||||||
str(
|
|
||||||
f"""
|
|
||||||
ALTER TABLE CFG_ServerHistory DROP COLUMN ShortRoleNameSetOnlyHighest;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
)
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_data.model"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,115 +0,0 @@
|
|||||||
from datetime import datetime
|
|
||||||
|
|
||||||
from cpl_core.database import TableABC
|
|
||||||
|
|
||||||
|
|
||||||
class SteamSpecialOffer(TableABC):
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
name: str,
|
|
||||||
original_price: float,
|
|
||||||
discount_price: float,
|
|
||||||
discount_pct: int,
|
|
||||||
created_at: datetime = None,
|
|
||||||
modified_at: datetime = None,
|
|
||||||
id=0,
|
|
||||||
):
|
|
||||||
self._id = id
|
|
||||||
self._name = name
|
|
||||||
self._original_price = original_price
|
|
||||||
self._discount_price = discount_price
|
|
||||||
self._discount_pct = discount_pct
|
|
||||||
|
|
||||||
TableABC.__init__(self)
|
|
||||||
self._created_at = created_at if created_at is not None else self._created_at
|
|
||||||
self._modified_at = modified_at if modified_at is not None else self._modified_at
|
|
||||||
|
|
||||||
@property
|
|
||||||
def id(self) -> int:
|
|
||||||
return self._id
|
|
||||||
|
|
||||||
@property
|
|
||||||
def name(self) -> str:
|
|
||||||
return self._name
|
|
||||||
|
|
||||||
@name.setter
|
|
||||||
def name(self, value: str):
|
|
||||||
self._name = value
|
|
||||||
|
|
||||||
@property
|
|
||||||
def original_price(self) -> float:
|
|
||||||
return self._original_price
|
|
||||||
|
|
||||||
@original_price.setter
|
|
||||||
def original_price(self, value: float):
|
|
||||||
self._original_price = value
|
|
||||||
|
|
||||||
@property
|
|
||||||
def discount_price(self) -> float:
|
|
||||||
return self._discount_price
|
|
||||||
|
|
||||||
@discount_price.setter
|
|
||||||
def discount_price(self, value: float):
|
|
||||||
self._discount_price = value
|
|
||||||
|
|
||||||
@property
|
|
||||||
def discount_pct(self) -> int:
|
|
||||||
return self._discount_pct
|
|
||||||
|
|
||||||
@discount_pct.setter
|
|
||||||
def discount_pct(self, value: int):
|
|
||||||
self._discount_pct = value
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_select_all_string() -> str:
|
|
||||||
return str(
|
|
||||||
f"""
|
|
||||||
SELECT * FROM `SteamSpecialOffers`;
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_select_by_name_string(name: str) -> str:
|
|
||||||
return str(
|
|
||||||
f"""
|
|
||||||
SELECT * FROM `SteamSpecialOffers`
|
|
||||||
WHERE `Game` = '{name}';
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def insert_string(self) -> str:
|
|
||||||
return str(
|
|
||||||
f"""
|
|
||||||
INSERT INTO `SteamSpecialOffers` (
|
|
||||||
`Game`, `OriginalPrice`, `DiscountPrice`, `DiscountPct`
|
|
||||||
) VALUES (
|
|
||||||
'{self._name}',
|
|
||||||
{self._original_price},
|
|
||||||
{self._discount_price},
|
|
||||||
{self._discount_pct}
|
|
||||||
);
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def udpate_string(self) -> str:
|
|
||||||
return str(
|
|
||||||
f"""
|
|
||||||
UPDATE `SteamSpecialOffers`
|
|
||||||
SET `Game` = '{self._name}',
|
|
||||||
`OriginalPrice` = {self._original_price},
|
|
||||||
`DiscountPrice` = {self._discount_price},
|
|
||||||
`DiscountPct` = {self._discount_pct}
|
|
||||||
WHERE `Id` = {self._id};
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def delete_string(self) -> str:
|
|
||||||
return str(
|
|
||||||
f"""
|
|
||||||
DELETE FROM `SteamSpecialOffers`
|
|
||||||
WHERE `Id` = {self._id};
|
|
||||||
"""
|
|
||||||
)
|
|
@@ -1,43 +0,0 @@
|
|||||||
from typing import Optional
|
|
||||||
|
|
||||||
from bot_data.abc.history_table_abc import HistoryTableABC
|
|
||||||
|
|
||||||
|
|
||||||
# had to name it UserWarnings instead of UserWarning because UserWarning is a builtin class
|
|
||||||
class UserWarningsHistory(HistoryTableABC):
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
description: str,
|
|
||||||
user: int,
|
|
||||||
author: Optional[int],
|
|
||||||
deleted: bool,
|
|
||||||
date_from: str,
|
|
||||||
date_to: str,
|
|
||||||
id=0,
|
|
||||||
):
|
|
||||||
HistoryTableABC.__init__(self)
|
|
||||||
|
|
||||||
self._id = id
|
|
||||||
self._description = description
|
|
||||||
self._user = user
|
|
||||||
self._author = author
|
|
||||||
|
|
||||||
self._deleted = deleted
|
|
||||||
self._date_from = date_from
|
|
||||||
self._date_to = date_to
|
|
||||||
|
|
||||||
@property
|
|
||||||
def id(self) -> int:
|
|
||||||
return self._id
|
|
||||||
|
|
||||||
@property
|
|
||||||
def description(self) -> str:
|
|
||||||
return self._description
|
|
||||||
|
|
||||||
@property
|
|
||||||
def user(self) -> int:
|
|
||||||
return self._user
|
|
||||||
|
|
||||||
@property
|
|
||||||
def author(self) -> Optional[int]:
|
|
||||||
return self._author
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_data.service"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,73 +0,0 @@
|
|||||||
from typing import Optional
|
|
||||||
|
|
||||||
from cpl_core.database.context import DatabaseContextABC
|
|
||||||
from cpl_query.extension import List
|
|
||||||
|
|
||||||
from bot_core.logging.database_logger import DatabaseLogger
|
|
||||||
from bot_data.abc.server_repository_abc import ServerRepositoryABC
|
|
||||||
from bot_data.abc.steam_special_offer_repository_abc import (
|
|
||||||
SteamSpecialOfferRepositoryABC,
|
|
||||||
)
|
|
||||||
from bot_data.model.steam_special_offer import SteamSpecialOffer
|
|
||||||
|
|
||||||
|
|
||||||
class SteamSpecialOfferRepositoryService(SteamSpecialOfferRepositoryABC):
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
logger: DatabaseLogger,
|
|
||||||
db_context: DatabaseContextABC,
|
|
||||||
servers: ServerRepositoryABC,
|
|
||||||
):
|
|
||||||
self._logger = logger
|
|
||||||
self._context = db_context
|
|
||||||
|
|
||||||
self._servers = servers
|
|
||||||
|
|
||||||
SteamSpecialOfferRepositoryABC.__init__(self)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def _get_value_from_result(value: any) -> Optional[any]:
|
|
||||||
if isinstance(value, str) and "NULL" in value:
|
|
||||||
return None
|
|
||||||
|
|
||||||
return value
|
|
||||||
|
|
||||||
def _steam_special_offer_from_result(self, sql_result: tuple) -> SteamSpecialOffer:
|
|
||||||
return SteamSpecialOffer(
|
|
||||||
self._get_value_from_result(sql_result[1]), # name
|
|
||||||
float(self._get_value_from_result(sql_result[2])), # original_price
|
|
||||||
float(self._get_value_from_result(sql_result[3])), # discount_price
|
|
||||||
int(self._get_value_from_result(sql_result[4])), # discount_pct
|
|
||||||
id=self._get_value_from_result(sql_result[0]), # id
|
|
||||||
)
|
|
||||||
|
|
||||||
def get_steam_special_offers(self) -> List[SteamSpecialOffer]:
|
|
||||||
steam_special_offers = List(SteamSpecialOffer)
|
|
||||||
self._logger.trace(__name__, f"Send SQL command: {SteamSpecialOffer.get_select_all_string()}")
|
|
||||||
results = self._context.select(SteamSpecialOffer.get_select_all_string())
|
|
||||||
for result in results:
|
|
||||||
self._logger.trace(__name__, f"Get steam_special_offer with id {result[0]}")
|
|
||||||
steam_special_offers.append(self._steam_special_offer_from_result(result))
|
|
||||||
|
|
||||||
return steam_special_offers
|
|
||||||
|
|
||||||
def get_steam_special_offer_by_name(self, name: str) -> SteamSpecialOffer:
|
|
||||||
self._logger.trace(
|
|
||||||
__name__,
|
|
||||||
f"Send SQL command: {SteamSpecialOffer.get_select_by_name_string(name)}",
|
|
||||||
)
|
|
||||||
result = self._context.select(SteamSpecialOffer.get_select_by_name_string(name))[0]
|
|
||||||
|
|
||||||
return self._steam_special_offer_from_result(result)
|
|
||||||
|
|
||||||
def add_steam_special_offer(self, steam_special_offer: SteamSpecialOffer):
|
|
||||||
self._logger.trace(__name__, f"Send SQL command: {steam_special_offer.insert_string}")
|
|
||||||
self._context.cursor.execute(steam_special_offer.insert_string)
|
|
||||||
|
|
||||||
def update_steam_special_offer(self, steam_special_offer: SteamSpecialOffer):
|
|
||||||
self._logger.trace(__name__, f"Send SQL command: {steam_special_offer.udpate_string}")
|
|
||||||
self._context.cursor.execute(steam_special_offer.udpate_string)
|
|
||||||
|
|
||||||
def delete_steam_special_offer(self, steam_special_offer: SteamSpecialOffer):
|
|
||||||
self._logger.trace(__name__, f"Send SQL command: {steam_special_offer.delete_string}")
|
|
||||||
self._context.cursor.execute(steam_special_offer.delete_string)
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_graphql"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_graphql.abc"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_graphql.filter"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,56 +0,0 @@
|
|||||||
from cpl_core.dependency_injection import ServiceProviderABC
|
|
||||||
from cpl_query.extension import List
|
|
||||||
|
|
||||||
from bot_data.model.user_warnings import UserWarnings
|
|
||||||
from bot_graphql.abc.filter_abc import FilterABC
|
|
||||||
|
|
||||||
|
|
||||||
class UserWarningFilter(FilterABC):
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
services: ServiceProviderABC,
|
|
||||||
):
|
|
||||||
FilterABC.__init__(self)
|
|
||||||
|
|
||||||
self._services = services
|
|
||||||
|
|
||||||
self._id = None
|
|
||||||
self._user = None
|
|
||||||
self._description = None
|
|
||||||
self._author = None
|
|
||||||
|
|
||||||
def from_dict(self, values: dict):
|
|
||||||
if "id" in values:
|
|
||||||
self._id = int(values["id"])
|
|
||||||
|
|
||||||
if "user" in values:
|
|
||||||
from bot_graphql.filter.user_filter import UserFilter
|
|
||||||
|
|
||||||
self._user: UserFilter = self._services.get_service(UserFilter)
|
|
||||||
self._user.from_dict(values["user"])
|
|
||||||
|
|
||||||
if "description" in values:
|
|
||||||
self._description = values["description"]
|
|
||||||
|
|
||||||
if "author" in values:
|
|
||||||
from bot_graphql.filter.user_filter import UserFilter
|
|
||||||
|
|
||||||
self._author: UserFilter = self._services.get_service(UserFilter)
|
|
||||||
self._author.from_dict(values["author"])
|
|
||||||
|
|
||||||
def filter(self, query: List[UserWarnings]) -> List[UserWarnings]:
|
|
||||||
if self._id is not None:
|
|
||||||
query = query.where(lambda x: x.id == self._id)
|
|
||||||
|
|
||||||
if self._user is not None:
|
|
||||||
users = self._user.filter(query.select(lambda x: x.user)).select(lambda x: x.id)
|
|
||||||
query = query.where(lambda x: x.id in users)
|
|
||||||
|
|
||||||
if self._description is not None:
|
|
||||||
query = query.where(lambda x: x.description == self._description or self._description in x.description)
|
|
||||||
|
|
||||||
if self._author is not None:
|
|
||||||
users = self._author.filter(query.select(lambda x: x.author)).select(lambda x: x.id)
|
|
||||||
query = query.where(lambda x: x.id in users)
|
|
||||||
|
|
||||||
return query
|
|
@@ -1,17 +0,0 @@
|
|||||||
type ServerStatistic {
|
|
||||||
achievementsAchieved: Int
|
|
||||||
messageCount: Int
|
|
||||||
|
|
||||||
userCount: Int
|
|
||||||
activeUserCount: Int
|
|
||||||
|
|
||||||
userJoinedVoiceChannelCount: Int
|
|
||||||
userJoinedVoiceChannelOntime: Float
|
|
||||||
|
|
||||||
userJoinedGameServerCount: Int
|
|
||||||
userJoinedGameServerOntime: Float
|
|
||||||
|
|
||||||
userWarningCount: Int
|
|
||||||
|
|
||||||
activityScore: Int
|
|
||||||
}
|
|
@@ -1,34 +0,0 @@
|
|||||||
type UserWarning implements TableWithHistoryQuery {
|
|
||||||
id: ID
|
|
||||||
user: User
|
|
||||||
description: String
|
|
||||||
author: User
|
|
||||||
|
|
||||||
createdAt: String
|
|
||||||
modifiedAt: String
|
|
||||||
|
|
||||||
history: [UserWarningHistory]
|
|
||||||
}
|
|
||||||
|
|
||||||
type UserWarningHistory implements HistoryTableQuery {
|
|
||||||
id: ID
|
|
||||||
user: ID
|
|
||||||
description: String
|
|
||||||
author: ID
|
|
||||||
|
|
||||||
deleted: Boolean
|
|
||||||
dateFrom: String
|
|
||||||
dateTo: String
|
|
||||||
}
|
|
||||||
|
|
||||||
input UserWarningFilter {
|
|
||||||
id: ID
|
|
||||||
user: UserFilter
|
|
||||||
}
|
|
||||||
|
|
||||||
input UserWarningInput {
|
|
||||||
id: ID
|
|
||||||
user: ID
|
|
||||||
description: String
|
|
||||||
author: ID
|
|
||||||
}
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_graphql.model"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,7 +0,0 @@
|
|||||||
from bot_data.model.server import Server
|
|
||||||
|
|
||||||
|
|
||||||
class ServerStatistics:
|
|
||||||
def __init__(self, server: Server, kwargs: dict):
|
|
||||||
self.server = server
|
|
||||||
self.kwargs = kwargs
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_graphql.mutations"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,90 +0,0 @@
|
|||||||
from datetime import datetime
|
|
||||||
|
|
||||||
from cpl_core.database.context import DatabaseContextABC
|
|
||||||
from cpl_discord.service import DiscordBotServiceABC
|
|
||||||
|
|
||||||
from bot_api.route.route import Route
|
|
||||||
from bot_data.abc.level_repository_abc import LevelRepositoryABC
|
|
||||||
from bot_data.abc.server_repository_abc import ServerRepositoryABC
|
|
||||||
from bot_data.abc.user_repository_abc import UserRepositoryABC
|
|
||||||
from bot_data.abc.user_warnings_repository_abc import UserWarningsRepositoryABC
|
|
||||||
from bot_data.model.user import User
|
|
||||||
from bot_data.model.user_role_enum import UserRoleEnum
|
|
||||||
from bot_graphql.abc.query_abc import QueryABC
|
|
||||||
from modules.base.service.user_warnings_service import UserWarningsService
|
|
||||||
from modules.level.service.level_service import LevelService
|
|
||||||
from modules.permission.service.permission_service import PermissionService
|
|
||||||
|
|
||||||
|
|
||||||
class UserMutation(QueryABC):
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
servers: ServerRepositoryABC,
|
|
||||||
users: UserRepositoryABC,
|
|
||||||
bot: DiscordBotServiceABC,
|
|
||||||
db: DatabaseContextABC,
|
|
||||||
permissions: PermissionService,
|
|
||||||
levels: LevelRepositoryABC,
|
|
||||||
level_service: LevelService,
|
|
||||||
user_warnings: UserWarningsRepositoryABC,
|
|
||||||
user_warning_service: UserWarningsService,
|
|
||||||
):
|
|
||||||
QueryABC.__init__(self, "UserMutation")
|
|
||||||
|
|
||||||
self._servers = servers
|
|
||||||
self._users = users
|
|
||||||
self._bot = bot
|
|
||||||
self._db = db
|
|
||||||
self._permissions = permissions
|
|
||||||
self._levels = levels
|
|
||||||
self._level_service = level_service
|
|
||||||
self._user_warnings = user_warnings
|
|
||||||
self._user_warning_service = user_warning_service
|
|
||||||
|
|
||||||
self.set_field("updateUser", self.resolve_update_user)
|
|
||||||
|
|
||||||
def resolve_update_user(self, *_, input: dict):
|
|
||||||
user = self._users.get_user_by_id(input["id"])
|
|
||||||
|
|
||||||
auth_user = Route.get_user()
|
|
||||||
member = self._bot.get_guild(user.server.discord_id).get_member(
|
|
||||||
auth_user.users.where(lambda x: x.server.id == user.server.id).single().discord_id
|
|
||||||
)
|
|
||||||
if member.id != user.discord_id:
|
|
||||||
self._can_user_mutate_data(user.server, UserRoleEnum.moderator)
|
|
||||||
|
|
||||||
new_xp = None
|
|
||||||
if "levelId" in input:
|
|
||||||
level = self._levels.get_level_by_id(input["levelId"])
|
|
||||||
if user.level.id != level.id:
|
|
||||||
new_xp = level.min_xp
|
|
||||||
|
|
||||||
if "userWarnings" in input:
|
|
||||||
self._update_user_warning(user, input["userWarnings"])
|
|
||||||
|
|
||||||
user.xp = new_xp if new_xp is not None else input["xp"] if "xp" in input else user.xp
|
|
||||||
|
|
||||||
user.birthday = datetime.strptime(input["birthday"], "%d.%m.%Y") if "birthday" in input else user.birthday
|
|
||||||
|
|
||||||
self._users.update_user(user)
|
|
||||||
self._db.save_changes()
|
|
||||||
self._bot.loop.create_task(self._level_service.set_level(user))
|
|
||||||
|
|
||||||
user = self._users.get_user_by_id(input["id"])
|
|
||||||
return user
|
|
||||||
|
|
||||||
def _update_user_warning(self, user: User, new_warnings: dict):
|
|
||||||
old_warnings = self._user_warnings.get_user_warnings_by_user_id(user.id)
|
|
||||||
for warning in old_warnings:
|
|
||||||
if warning.id in [int(x["id"]) if "id" in x else None for x in new_warnings]:
|
|
||||||
continue
|
|
||||||
|
|
||||||
self._user_warning_service.remove_warnings(warning.id)
|
|
||||||
|
|
||||||
for warning in new_warnings:
|
|
||||||
if "id" in warning and int(warning["id"]) in old_warnings.select(lambda x: x.id):
|
|
||||||
continue
|
|
||||||
|
|
||||||
member = self._bot.get_guild(user.server.discord_id).get_member(user.discord_id)
|
|
||||||
author = self._users.get_user_by_id(int(warning["author"]))
|
|
||||||
self._user_warning_service.add_warnings(member, warning["description"], author.discord_id)
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_graphql.queries"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "bot_graphql.queries.discord"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,174 +0,0 @@
|
|||||||
import datetime
|
|
||||||
from typing import Optional
|
|
||||||
|
|
||||||
from cpl_core.configuration import ConfigurationABC
|
|
||||||
from cpl_core.database.context import DatabaseContextABC
|
|
||||||
from cpl_core.type import R, T
|
|
||||||
|
|
||||||
from bot_data.abc.achievement_repository_abc import AchievementRepositoryABC
|
|
||||||
from bot_data.abc.user_joined_game_server_repository_abc import UserJoinedGameServerRepositoryABC
|
|
||||||
from bot_data.abc.user_joined_voice_channel_repository_abc import UserJoinedVoiceChannelRepositoryABC
|
|
||||||
from bot_data.abc.user_message_count_per_hour_repository_abc import UserMessageCountPerHourRepositoryABC
|
|
||||||
from bot_data.abc.user_repository_abc import UserRepositoryABC
|
|
||||||
from bot_data.abc.user_warnings_repository_abc import UserWarningsRepositoryABC
|
|
||||||
from bot_graphql.abc.query_abc import QueryABC
|
|
||||||
|
|
||||||
|
|
||||||
class ServerStatisticQuery(QueryABC):
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
config: ConfigurationABC,
|
|
||||||
users: UserRepositoryABC,
|
|
||||||
user_joined_voice_channels: UserJoinedVoiceChannelRepositoryABC,
|
|
||||||
user_joined_game_servers: UserJoinedGameServerRepositoryABC,
|
|
||||||
user_messages: UserMessageCountPerHourRepositoryABC,
|
|
||||||
user_warnings: UserWarningsRepositoryABC,
|
|
||||||
achievements: AchievementRepositoryABC,
|
|
||||||
db: DatabaseContextABC,
|
|
||||||
):
|
|
||||||
QueryABC.__init__(self, "ServerStatistic")
|
|
||||||
|
|
||||||
self._config = config
|
|
||||||
self._db = db
|
|
||||||
|
|
||||||
self._users = users
|
|
||||||
self._user_joined_voice_channels = user_joined_voice_channels
|
|
||||||
self._user_joined_game_servers = user_joined_game_servers
|
|
||||||
self._user_messages = user_messages
|
|
||||||
self._user_warnings = user_warnings
|
|
||||||
self._achievements = achievements
|
|
||||||
|
|
||||||
self.set_field(
|
|
||||||
"achievementsAchieved",
|
|
||||||
self._resolve_achievements,
|
|
||||||
)
|
|
||||||
|
|
||||||
self.set_field(
|
|
||||||
"messageCount",
|
|
||||||
self._resolve_message_count,
|
|
||||||
)
|
|
||||||
|
|
||||||
self.set_field("userCount", lambda server, *_: self._users.get_users_by_server_id(server.server.id).count())
|
|
||||||
self.set_field("activeUserCount", self._resolve_active_user_count)
|
|
||||||
|
|
||||||
self.set_field("userJoinedVoiceChannelCount", self._resolve_voice_channel_count)
|
|
||||||
self.set_field("userJoinedVoiceChannelOntime", self._resolve_voice_channel_ontime)
|
|
||||||
|
|
||||||
self.set_field("userJoinedGameServerCount", self._resolve_game_server_count)
|
|
||||||
self.set_field("userJoinedGameServerOntime", self._resolve_game_server_ontime)
|
|
||||||
|
|
||||||
self.set_field("userWarningCount", self._resolve_user_warning_count)
|
|
||||||
|
|
||||||
self.set_field("activityScore", self._resolve_activity_score)
|
|
||||||
|
|
||||||
def _resolve_active_user_count(self, server, *_):
|
|
||||||
return self._users.get_users_by_server_id(server.server.id).where(lambda x: not x.left_server).count()
|
|
||||||
|
|
||||||
def _cast_query_result(self, query: str, r_type: T) -> Optional[R]:
|
|
||||||
results = self._db.select(query)
|
|
||||||
if len(results) == 0 or len(results[0]) == 0:
|
|
||||||
return None
|
|
||||||
result = results[0][0]
|
|
||||||
default = None
|
|
||||||
if r_type is int or r_type is float:
|
|
||||||
default = 0
|
|
||||||
elif r_type is str:
|
|
||||||
default = ""
|
|
||||||
|
|
||||||
return r_type(result) if result is not None else default
|
|
||||||
|
|
||||||
def _resolve_achievements(self, server, *_):
|
|
||||||
query = f"""
|
|
||||||
SELECT Count(UserGotAchievements.CreatedAt) FROM UserGotAchievements
|
|
||||||
INNER JOIN Achievements ON UserGotAchievements.AchievementId = Achievements.Id
|
|
||||||
INNER JOIN Users ON UserGotAchievements.UserId = Users.UserId
|
|
||||||
WHERE Users.ServerId = {server.server.id}
|
|
||||||
AND UserGotAchievements.CreatedAt >= "{self._get_date(**server.kwargs)}";
|
|
||||||
"""
|
|
||||||
return self._cast_query_result(query, int)
|
|
||||||
|
|
||||||
def _resolve_message_count(self, server, *_):
|
|
||||||
query = f"""
|
|
||||||
SELECT SUM(
|
|
||||||
UserMessageCountPerHour.XPCount / (
|
|
||||||
SELECT XpPerMessage
|
|
||||||
FROM CFG_Server
|
|
||||||
WHERE ServerId = {server.server.id}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
FROM UserMessageCountPerHour
|
|
||||||
INNER JOIN Users ON UserMessageCountPerHour.UserId = Users.UserId
|
|
||||||
WHERE Users.ServerId = {server.server.id}
|
|
||||||
AND UserMessageCountPerHour.CreatedAt >= "{self._get_date(**server.kwargs)}";
|
|
||||||
"""
|
|
||||||
return self._cast_query_result(query, int)
|
|
||||||
|
|
||||||
def _resolve_voice_channel_count(self, server, *_):
|
|
||||||
query = f"""
|
|
||||||
SELECT Count(UserJoinedVoiceChannel.CreatedAt) FROM UserJoinedVoiceChannel
|
|
||||||
INNER JOIN Users ON UserJoinedVoiceChannel.UserId = Users.UserId
|
|
||||||
WHERE Users.ServerId = {server.server.id}
|
|
||||||
AND UserJoinedVoiceChannel.CreatedAt >= "{self._get_date(**server.kwargs)}";
|
|
||||||
"""
|
|
||||||
return self._cast_query_result(query, int)
|
|
||||||
|
|
||||||
def _resolve_voice_channel_ontime(self, server, *_):
|
|
||||||
query = f"""
|
|
||||||
SELECT ROUND(SUM(TIME_TO_SEC(TIMEDIFF(UserJoinedVoiceChannel.LeavedOn, UserJoinedVoiceChannel.JoinedOn)) / 3600),{server.server.id}) FROM UserJoinedVoiceChannel
|
|
||||||
INNER JOIN Users ON UserJoinedVoiceChannel.UserId = Users.UserId
|
|
||||||
WHERE Users.ServerId = {server.server.id}
|
|
||||||
AND UserJoinedVoiceChannel.CreatedAt >= "{self._get_date(**server.kwargs)}";
|
|
||||||
"""
|
|
||||||
return self._cast_query_result(query, float)
|
|
||||||
|
|
||||||
def _resolve_game_server_count(self, server, *_):
|
|
||||||
query = f"""
|
|
||||||
SELECT Count(UserJoinedGameServer.CreatedAt) FROM UserJoinedGameServer
|
|
||||||
INNER JOIN Users ON UserJoinedGameServer.UserId = Users.UserId
|
|
||||||
WHERE Users.ServerId = {server.server.id}
|
|
||||||
AND UserJoinedGameServer.CreatedAt >= "{self._get_date(**server.kwargs)}";
|
|
||||||
"""
|
|
||||||
return self._cast_query_result(query, int)
|
|
||||||
|
|
||||||
def _resolve_game_server_ontime(self, server, *_):
|
|
||||||
query = f"""
|
|
||||||
SELECT ROUND(SUM(TIME_TO_SEC(TIMEDIFF(UserJoinedGameServer.LeavedOn, UserJoinedGameServer.JoinedOn)) / 3600),{server.server.id}) FROM UserJoinedGameServer
|
|
||||||
INNER JOIN Users ON UserJoinedGameServer.UserId = Users.UserId
|
|
||||||
WHERE Users.ServerId = {server.server.id}
|
|
||||||
AND UserJoinedGameServer.CreatedAt >= "{self._get_date(**server.kwargs)}";
|
|
||||||
"""
|
|
||||||
return self._cast_query_result(query, float)
|
|
||||||
|
|
||||||
def _resolve_user_warning_count(self, server, *_):
|
|
||||||
query = f"""
|
|
||||||
SELECT COUNT(UserWarnings.CreatedAt) FROM UserWarnings
|
|
||||||
INNER JOIN Users ON UserWarnings.UserId = Users.UserId
|
|
||||||
WHERE Users.ServerId = {server.server.id}
|
|
||||||
AND UserWarnings.CreatedAt >= "{self._get_date(**server.kwargs)}";
|
|
||||||
"""
|
|
||||||
return self._cast_query_result(query, int)
|
|
||||||
|
|
||||||
def _resolve_activity_score(self, server, *_):
|
|
||||||
days = (datetime.date.today() - self._get_date(**server.kwargs)).days
|
|
||||||
return int(
|
|
||||||
(
|
|
||||||
(
|
|
||||||
self._resolve_achievements(server, *_)
|
|
||||||
+ self._resolve_message_count(server, *_)
|
|
||||||
+ self._resolve_voice_channel_count(server, *_)
|
|
||||||
+ self._resolve_voice_channel_ontime(server, *_)
|
|
||||||
+ self._resolve_game_server_count(server, *_)
|
|
||||||
+ self._resolve_game_server_ontime(server, *_)
|
|
||||||
- self._resolve_user_warning_count(server, *_)
|
|
||||||
)
|
|
||||||
/ self._resolve_active_user_count(server, *_)
|
|
||||||
)
|
|
||||||
/ days
|
|
||||||
* 1000
|
|
||||||
)
|
|
||||||
|
|
||||||
def _get_date(self, **kwargs) -> datetime.date:
|
|
||||||
if "date" not in kwargs:
|
|
||||||
return datetime.date.today() - datetime.timedelta(days=7)
|
|
||||||
|
|
||||||
return datetime.datetime.strptime(kwargs["date"], "%d.%m.%Y").date()
|
|
@@ -1,11 +0,0 @@
|
|||||||
from bot_graphql.abc.history_query_abc import HistoryQueryABC
|
|
||||||
|
|
||||||
|
|
||||||
class UserWarningHistoryQuery(HistoryQueryABC):
|
|
||||||
def __init__(self):
|
|
||||||
HistoryQueryABC.__init__(self, "UserWarning")
|
|
||||||
|
|
||||||
self.set_field("id", lambda x, *_: x.id)
|
|
||||||
self.set_field("user", lambda x, *_: x.user)
|
|
||||||
self.set_field("description", lambda x, *_: x.description)
|
|
||||||
self.set_field("author", lambda x, *_: x.author)
|
|
@@ -1,17 +0,0 @@
|
|||||||
from cpl_core.database.context import DatabaseContextABC
|
|
||||||
|
|
||||||
from bot_data.model.user_warnings_history import UserWarningsHistory
|
|
||||||
from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
|
|
||||||
|
|
||||||
|
|
||||||
class UserWarningQuery(DataQueryWithHistoryABC):
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
db: DatabaseContextABC,
|
|
||||||
):
|
|
||||||
DataQueryWithHistoryABC.__init__(self, "UserWarning", "UserWarningsHistory", UserWarningsHistory, db)
|
|
||||||
|
|
||||||
self.set_field("id", lambda x, *_: x.id)
|
|
||||||
self.set_field("user", lambda x, *_: x.user)
|
|
||||||
self.set_field("description", lambda x, *_: x.description)
|
|
||||||
self.set_field("author", lambda x, *_: x.author)
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.achievements"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.achievements.commands"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.achievements.events"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.achievements.model"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.auto_role"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.auto_role.command"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.auto_role.events"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.auto_role.helper"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.base"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,68 +0,0 @@
|
|||||||
import datetime
|
|
||||||
|
|
||||||
from cpl_core.configuration import ConfigurationABC
|
|
||||||
from cpl_core.database.context import DatabaseContextABC
|
|
||||||
from cpl_discord.service import DiscordBotServiceABC
|
|
||||||
from cpl_translation import TranslatePipe
|
|
||||||
from discord.ext import tasks
|
|
||||||
|
|
||||||
from bot_core.abc.task_abc import TaskABC
|
|
||||||
from bot_core.logging.task_logger import TaskLogger
|
|
||||||
from bot_core.service.message_service import MessageService
|
|
||||||
from bot_data.abc.user_repository_abc import UserRepositoryABC
|
|
||||||
from bot_data.model.server_config import ServerConfig
|
|
||||||
|
|
||||||
|
|
||||||
class BirthdayWatcher(TaskABC):
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
config: ConfigurationABC,
|
|
||||||
logger: TaskLogger,
|
|
||||||
bot: DiscordBotServiceABC,
|
|
||||||
db: DatabaseContextABC,
|
|
||||||
users: UserRepositoryABC,
|
|
||||||
message_service: MessageService,
|
|
||||||
t: TranslatePipe,
|
|
||||||
):
|
|
||||||
TaskABC.__init__(self)
|
|
||||||
|
|
||||||
self._config = config
|
|
||||||
self._logger = logger
|
|
||||||
self._bot = bot
|
|
||||||
self._db = db
|
|
||||||
self._users = users
|
|
||||||
self._message_service = message_service
|
|
||||||
self._t = t
|
|
||||||
|
|
||||||
if not self._is_maintenance():
|
|
||||||
self.watch.start()
|
|
||||||
|
|
||||||
@tasks.loop(time=datetime.time(hour=8, minute=0))
|
|
||||||
async def watch(self):
|
|
||||||
self._logger.info(__name__, "Watching birthdays")
|
|
||||||
try:
|
|
||||||
today = datetime.date.today()
|
|
||||||
users = self._users.get_users().where(lambda x: x.birthday is not None)
|
|
||||||
for user in users:
|
|
||||||
if user.birthday.day != today.day or user.birthday.month != today.month:
|
|
||||||
continue
|
|
||||||
|
|
||||||
settings: ServerConfig = self._config.get_configuration(f"ServerConfig_{user.server.discord_id}")
|
|
||||||
|
|
||||||
user.xp += settings.xp_for_birthday
|
|
||||||
self._users.update_user(user)
|
|
||||||
self._db.save_changes()
|
|
||||||
|
|
||||||
guild = self._bot.get_guild(user.server.discord_id)
|
|
||||||
member = guild.get_member(user.discord_id)
|
|
||||||
await self._message_service.send_channel_message(
|
|
||||||
self._bot.get_channel(settings.notification_chat_id),
|
|
||||||
self._t.transform("modules.base.user.birthday.has_birthday").format(member.mention),
|
|
||||||
is_persistent=True,
|
|
||||||
)
|
|
||||||
except Exception as e:
|
|
||||||
self._logger.error(__name__, f"Watching birthdays failed", e)
|
|
||||||
|
|
||||||
@watch.before_loop
|
|
||||||
async def wait(self):
|
|
||||||
await self._wait_until_ready()
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.base.command"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.base.events"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.base.forms"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.base.helper"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.base.model"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.base.service"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.base.thread"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.boot_log"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.config"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.config.events"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.config.service"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.database"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.level"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.level.command"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
"DefaultLevel": {
|
|
||||||
"LevelHeader": "~~~ dev-Level ~~~",
|
|
||||||
"Levels": [
|
|
||||||
{
|
|
||||||
"Name": "dev-Newbie",
|
|
||||||
"Color": "0x1abc9c",
|
|
||||||
"MinXp": 0,
|
|
||||||
"Permissions": 968552209984
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "dev-Keks",
|
|
||||||
"Color": "0x2ecc71",
|
|
||||||
"MinXp": 100,
|
|
||||||
"Permissions": 1002928856640
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "dev-Doppelkeks",
|
|
||||||
"Color": "0x3498db",
|
|
||||||
"MinXp": 200,
|
|
||||||
"Permissions": 1071849660224
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "dev-Auror",
|
|
||||||
"Color": "0xf1c40f",
|
|
||||||
"MinXp": 300,
|
|
||||||
"Permissions": 1089042120513
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
"DefaultLevel": {
|
|
||||||
"LevelHeader": "~~~ ed-Level ~~~",
|
|
||||||
"Levels": [
|
|
||||||
{
|
|
||||||
"Name": "ed-Newbie",
|
|
||||||
"Color": "0x1abc9c",
|
|
||||||
"MinXp": 0,
|
|
||||||
"Permissions": 968552209984
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "ed-Keks",
|
|
||||||
"Color": "0x2ecc71",
|
|
||||||
"MinXp": 100,
|
|
||||||
"Permissions": 1002928856640
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "ed-Doppelkeks",
|
|
||||||
"Color": "0x3498db",
|
|
||||||
"MinXp": 200,
|
|
||||||
"Permissions": 1071849660224
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "ed-Auror",
|
|
||||||
"Color": "0xf1c40f",
|
|
||||||
"MinXp": 300,
|
|
||||||
"Permissions": 1089042120513
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
"DefaultLevel": {
|
|
||||||
"LevelHeader": "~~~ ed-Level ~~~",
|
|
||||||
"Levels": [
|
|
||||||
{
|
|
||||||
"Name": "ed-Newbie",
|
|
||||||
"Color": "0x1abc9c",
|
|
||||||
"MinXp": 0,
|
|
||||||
"Permissions": 968552209984
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "ed-Keks",
|
|
||||||
"Color": "0x2ecc71",
|
|
||||||
"MinXp": 100,
|
|
||||||
"Permissions": 1002928856640
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "ed-Doppelkeks",
|
|
||||||
"Color": "0x3498db",
|
|
||||||
"MinXp": 200,
|
|
||||||
"Permissions": 1071849660224
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "ed-Auror",
|
|
||||||
"Color": "0xf1c40f",
|
|
||||||
"MinXp": 300,
|
|
||||||
"Permissions": 1089042120513
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
"DefaultLevel": {
|
|
||||||
"LevelHeader": "~~~ test-Level ~~~",
|
|
||||||
"Levels": [
|
|
||||||
{
|
|
||||||
"Name": "test-Newbie",
|
|
||||||
"Color": "0x1abc9c",
|
|
||||||
"MinXp": 0,
|
|
||||||
"Permissions": 968552209984
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "test-Keks",
|
|
||||||
"Color": "0x2ecc71",
|
|
||||||
"MinXp": 100,
|
|
||||||
"Permissions": 1002928856640
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "test-Doppelkeks",
|
|
||||||
"Color": "0x3498db",
|
|
||||||
"MinXp": 200,
|
|
||||||
"Permissions": 1071849660224
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "test-Auror",
|
|
||||||
"Color": "0xf1c40f",
|
|
||||||
"MinXp": 300,
|
|
||||||
"Permissions": 1089042120513
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.level.configuration"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.level.events"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
@@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
bot sh-edraft.de Discord bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for customers of sh-edraft.de
|
|
||||||
|
|
||||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = "modules.level.service"
|
|
||||||
__author__ = "Sven Heidemann"
|
|
||||||
__license__ = "MIT"
|
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
|
||||||
__version__ = "1.2.1"
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports
|
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
|
||||||
version_info = VersionInfo(major="1", minor="2", micro="1")
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user