Compare commits

...

151 Commits

Author SHA1 Message Date
Michel Roux fa629143e7 Merge pull request 'Update dependency black to v23' (#99) from renovate/black-23.x into master
continuous-integration/drone/push Build is passing Details
4 days ago
Michel Roux b8bc180c6f Update dependency black to v23
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 days ago
Michel Roux 914ed744a0 Small fixes and add py.typed
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
3 weeks ago
Michel Roux 4027fd0063 Merge pull request 'Update dependency sentry-sdk to v1.13.0' (#98) from renovate/sentry-sdk-1.x into master
continuous-integration/drone/push Build is passing Details
3 weeks ago
Michel Roux 9a1aa6fc20 Update dependency sentry-sdk to v1.13.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 weeks ago
Michel Roux b23c972ffc Merge pull request 'Update dependency djlint to v1.19.11' (#97) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
1 month ago
Michel Roux 385d40b726 Update dependency djlint to v1.19.11
continuous-integration/drone/push Build is passing Details
1 month ago
Michel Roux 0e961faaa0 Merge pull request 'Update dependency djlint to v1.19.10' (#96) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
1 month ago
Michel Roux e176a51f7a Update dependency djlint to v1.19.10
continuous-integration/drone/push Build is passing Details
1 month ago
Michel Roux cef34a852f Update lock
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux f6a01c96a4 Merge pull request 'Update dependency flake8-black to v0.3.6' (#95) from renovate/flake8-black-0.x into master
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux da02181758 Update dependency flake8-black to v0.3.6
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux 795c32fb46 Merge pull request 'Update dependency sentry-sdk to v1.12.1' (#94) from renovate/sentry-sdk-1.x into master
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux 2ebc39857b Update dependency sentry-sdk to v1.12.1
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux 3b05b2ef95 Merge pull request 'Update dependency djlint to v1.19.9' (#93) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux 005c4bdb65 Update dependency djlint to v1.19.9
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux 85b6440e96 Merge pull request 'Update dependency sentry-sdk to v1.12.0' (#92) from renovate/sentry-sdk-1.x into master
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux bf1aa03e8e Update dependency sentry-sdk to v1.12.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2 months ago
Michel Roux fc83203b70 Merge pull request 'Update dependency djlint to v1.19.8' (#91) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux 00461f0e63 Update dependency djlint to v1.19.8
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux 9b85d636b0 Merge pull request 'Update dependency black to v22.12.0' (#90) from renovate/black-22.x into master
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux 1f310b9e32 Update dependency black to v22.12.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2 months ago
Michel Roux 33ed6d2b9b Merge pull request 'Update python Docker tag to v3.11.1' (#89) from renovate/python-3.x into master
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux c9bcfc8c91 Update python Docker tag to v3.11.1
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux b274e499c4 Update lock
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2 months ago
Michel Roux 7770e4e828 Merge pull request 'Update dependency flake8 to v6' (#86) from renovate/flake8-6.x into master
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux bdab7b5c9a Update dependency flake8 to v6
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux 55903c12f6 Merge pull request 'Update dependency types-oauthlib to v3.2.0.1' (#88) from renovate/types-oauthlib-3.x into master
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux ba46852b05 Update dependency types-oauthlib to v3.2.0.1
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux 6658109f0f Merge pull request 'Update dependency flake8-alphabetize to v0.0.19' (#87) from renovate/flake8-alphabetize-0.x into master
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux 484c865d26 Update dependency flake8-alphabetize to v0.0.19
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux bad8cbd3a5 Fix TokenExpiredError #DIVENT-3
continuous-integration/drone/push Build is passing Details
2 months ago
Michel Roux 5fe486b03d Merge pull request 'Update dependency sentry-sdk to v1.11.1' (#85) from renovate/sentry-sdk-1.x into master
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 4a013b7ad2 Update dependency sentry-sdk to v1.11.1
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 2e085abed7 Merge pull request 'Update dependency flake8-black to v0.3.5' (#84) from renovate/flake8-black-0.x into master
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 94cc28225b Update dependency flake8-black to v0.3.5
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 052c3468c8 Merge pull request 'Update dependency uvicorn to v0.20.0' (#83) from renovate/uvicorn-0.x into master
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux c9c5e3917b Update dependency uvicorn to v0.20.0
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 6f122a1f03 Merge pull request 'Update dependency flake8-black to v0.3.4' (#82) from renovate/flake8-black-0.x into master
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux d68e48e002 Update dependency flake8-black to v0.3.4
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux cb2cc1b042 Merge pull request 'Update dependency mypy to v0.991' (#80) from renovate/mypy-0.x into master
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 8b2281c153 Update dependency mypy to v0.991
continuous-integration/drone/push Build is failing Details
3 months ago
Michel Roux 187c364fa5 Merge pull request 'Update dependency sentry-sdk to v1.11.0' (#81) from renovate/sentry-sdk-1.x into master
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux e21df47492 Update dependency sentry-sdk to v1.11.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
3 months ago
Michel Roux 051a2a4920 Merge pull request 'Update dependency djlint to v1.19.7' (#78) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux e3a60c1ad6 Update dependency djlint to v1.19.7
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 8a21afc11f Merge pull request 'Update dependency mypy to v0.990' (#79) from renovate/mypy-0.x into master
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 91732ec3d7 Update dependency mypy to v0.990
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 261c1b2b7f Fix Google and Outlook link
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 8f32dd9bb6 Merge pull request 'Update dependency djlint to v1.19.4' (#77) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 8780341bcb Update dependency djlint to v1.19.4
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux e63062cadf Merge pull request 'Update dependency disnake to v2.7.0' (#76) from renovate/disnake-2.x into master
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 1408a00ac9 Update dependency disnake to v2.7.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
3 months ago
Michel Roux bd29a2bd96 Merge pull request 'Update dependency flake8-alphabetize to v0.0.18' (#75) from renovate/flake8-alphabetize-0.x into master
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 29a168ffdc Update dependency flake8-alphabetize to v0.0.18
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 8fd4e8f243 Do not use slim image anymore
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux 459dbd5243 Update lock
continuous-integration/drone/push Build is failing Details
3 months ago
Michel Roux c81546b834 Merge pull request 'Update dependency djlint to v1.19.3' (#74) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is failing Details
3 months ago
Michel Roux ae00ebf0ae Update dependency djlint to v1.19.3
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux a5795bbda2 Merge pull request 'Update python Docker tag to v3.11.0' (#73) from renovate/python-3-x into master
continuous-integration/drone/push Build is failing Details
3 months ago
Michel Roux 64a8042dd5 Update python Docker tag to v3.11.0
continuous-integration/drone/push Build is passing Details
3 months ago
Michel Roux fc505d82ab Merge pull request 'Update dependency sentry-sdk to v1.10.1' (#72) from renovate/sentry-sdk-1.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 988dc05b3d Update dependency sentry-sdk to v1.10.1
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux e2beda32e5 Merge pull request 'Update dependency djlint to v1.19.2' (#71) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 211580afbf Update dependency djlint to v1.19.2
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux f1073205a1 FIx sentry error
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 3f2bf09bf6 Merge pull request 'Update dependency disnake to v2.6.1' (#70) from renovate/disnake-2.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 2629afceda Update dependency disnake to v2.6.1
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux a35aeb629a Readd Sentry
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 4533920245 Revert "Remove Sentry"
4 months ago
Michel Roux 58f5e772b7 Merge pull request 'Update dependency uvicorn to v0.19.0' (#69) from renovate/uvicorn-0.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 94ecdce208 Update dependency uvicorn to v0.19.0
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux eccd531d45 Update version
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux b087e33f99 Remove Sentry
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
4 months ago
Michel Roux cbd678515f Merge pull request 'Update dependency djlint to v1.19.1' (#67) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 3e10bbb3e3 Merge pull request 'Update python Docker tag to v3.10.8' (#68) from renovate/python-3.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 5b0255276b Update python Docker tag to v3.10.8
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux ea4e2348b8 Update dependency djlint to v1.19.1
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux 004f7357c3 Merge pull request 'Update dependency djlint to v1.19.0' (#66) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 09fd509305 Update dependency djlint to v1.19.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux 9103502eb1 Merge pull request 'Update dependency quart to v0.18.3' (#65) from renovate/quart-0.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux e01a3a73c1 Update dependency quart to v0.18.3
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux 77a4d5e3ab Merge pull request 'Update dependency black to v22.10.0' (#64) from renovate/black-22.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux ce4444109f Update dependency black to v22.10.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux fd6c1fe10b Merge pull request 'Update dependency quart to v0.18.2' (#63) from renovate/quart-0.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 545668d7e1 Update dependency quart to v0.18.2
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux 3ad3ee5132 Merge pull request 'Update dependency mypy to v0.982' (#62) from renovate/mypy-0.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux de3f6ad550 Update dependency mypy to v0.982
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux ba1c50bce7 Merge pull request 'Update dependency sentry-sdk to v1.9.10' (#61) from renovate/sentry-sdk-1.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux cd385217ec Update dependency sentry-sdk to v1.9.10
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux d3474f28b4 Merge pull request 'Update dependency quart to v0.18.1' (#60) from renovate/quart-0.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux b6a78381bf Update dependency quart to v0.18.1
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux ef7ea3a23c Update lock
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 96b3f8be03 Merge pull request 'Update dependency disnake to v2.6.0' (#59) from renovate/disnake-2.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 3df8812b2d Update dependency disnake to v2.6.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux bef880f60b Merge pull request 'Update dependency mypy to v0.981' (#58) from renovate/mypy-0.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux 134ae73bc3 Update dependency mypy to v0.981
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux 97af947ed3 Merge pull request 'Update dependency sentry-sdk to v1.9.9' (#56) from renovate/sentry-sdk-1.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux f76f3615c0 Update dependency sentry-sdk to v1.9.9
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux 38a7a3177a Merge pull request 'Update dependency djlint to v1.18.0' (#57) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
4 months ago
Michel Roux ce8c814e02 Update dependency djlint to v1.18.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
4 months ago
Michel Roux 0a47607d05 Merge pull request 'Update dependency djlint to v1.17.2' (#55) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 2f0f323427 Update dependency djlint to v1.17.2
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux 4e7c58bfb1 Merge pull request 'Update dependency djlint to v1.17.0' (#54) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 9d7d7a7a28 Update dependency djlint to v1.17.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux 9ce7d0566e Merge pull request 'Update dependency djlint to v1.16.0' (#53) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 2ce0702067 Update dependency djlint to v1.16.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux 40232464b7 Update version
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 1498587437 Add redirection if not logged
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
5 months ago
Michel Roux bb842f7fd0 Fix crash if not loged
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 0d555f8f9c Fix djlint
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 80c0160825 Merge pull request 'Update dependency djlint to v1.15.0' (#52) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is failing Details
5 months ago
Michel Roux e154ec9903 Update dependency djlint to v1.15.0
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
5 months ago
Michel Roux 17795b0d85 Merge pull request 'Update dependency djlint to v1.14.2' (#51) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 2c132cb15d Update dependency djlint to v1.14.2
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux 2671c2e92b Merge pull request 'Update dependency djlint to v1.14.1' (#50) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 8ef7520efb Update dependency djlint to v1.14.1
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux b2fe4fa95a Merge pull request 'Update dependency djlint to v1.14.0' (#49) from renovate/djlint-1.x into master
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 84b53700be Update dependency djlint to v1.14.0
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux 051111b58d Fix README and update version
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 8f507b0fcd Merge pull request 'Oauth Anthentication' (#48) from v2 into master
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
5 months ago
Michel Roux 47781b35dd Fix typing
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux 4117a189e6 Remove useless param on make_session
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux 6775e09c7a More typing
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 6ddd615942 Fix README
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux 7ef4400e84 FInal touches on README
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux 037b9704b2 Try to have a pretty readme
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux 1bb1827647 Update README
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux 1b8cff752a Fix mypy and djlint
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5 months ago
Michel Roux 966510c467 Fix test user guild on subscribe
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
5 months ago
Michel Roux 2e08de2e57 Update version
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
5 months ago
Michel Roux 407a105971 Merge branch 'master' into v2
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
5 months ago
Michel Roux 2318b2d22b Update version
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
5 months ago
Michel Roux cdd83f27eb Fix bot lint
5 months ago
Michel Roux 3bdcf2c4cd Add oauth
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
5 months ago
Michel Roux c371e9dae7 First part of the oauth authentication
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
5 months ago
Michel Roux d140fe964a Fix refresh rate
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
5 months ago
Michel Roux dea25289c0 Revert "Use a new image for poetry on drone"
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 358069b66e Update version
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux d89ef58515 Use a new image for poetry on drone
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux d0a80c2604 Update version
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
5 months ago
Michel Roux 8f8bd69d4c Fix alarm
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux f5a7a44c1f Fix css on mobile (right this time)
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
5 months ago
Michel Roux f1c76d2c76 The other way around
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 419461803f Fix css on mobile
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 506ff65fc5 Optimize css
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux ca0dd4f5be Fix css
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 6ea04168fc Fix djlint
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux b4a836cb89 Remove image and fix url
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 139bdc38e6 Update version
continuous-integration/drone/push Build is passing Details
5 months ago
Michel Roux 96fe158a86 Remove logo and fix #47
continuous-integration/drone/push Build is passing Details
5 months ago

@ -4,7 +4,7 @@ type: docker
steps:
- name: lint
image: python:3.8-slim
image: python:3.8
commands:
- pip install poetry
- poetry install
@ -23,7 +23,7 @@ steps:
from_secret: docker_password
- name: publish
image: python:3.8-slim
image: python:3.8
commands:
- pip install poetry
- poetry publish --build

@ -1 +1,3 @@
DISCORD_TOKEN=
OAUTH2_CLIENT_ID=
OAUTH2_CLIENT_SECRET=

@ -1,2 +1,2 @@
[flake8]
max-line-length = 100
max-line-length = 88

@ -1,10 +1,10 @@
FROM python:3.10.7-slim as build
FROM python:3.11.1 as build
WORKDIR /app
COPY . .
RUN pip install poetry && poetry build
FROM python:3.10.7-slim
FROM python:3.11.1
COPY --from=build /app/dist /tmp/dist
RUN pip install /tmp/dist/*.whl && rm -rf /tmp/dist

@ -13,21 +13,37 @@ Simple website that guides you to invite a bot to read and format scheduled even
- Go to the [Discord Developer Portal](https://discord.com/developers/applications) and create a new application.
- Enable the `Build-A-Bot` option in the `Bot` panel.
- Click on `Reset Token` and keep it in a safe place, you will need it.
- Click on `Reset Secret` in the `OAuth2` panel, copy both `Client ID` and `Client Secret` and keep it in a safe place, you will need it.
- Configure the rest of your app and bot as you like (name, icon, username, etc.)
### 2) With Docker
- Install [Docker](https://docs.docker.com/get-docker/)
- Run `docker run -p 5000 -e DISCORD_TOKEN=your_bot_token xefir/divent`
- The app is accessible at http://localhost:5000
- Run
```bash
docker run -p 5000 \
-e DISCORD_TOKEN=your_bot_token \
-e OAUTH2_CLIENT_ID=your_client_id \
-e OAUTH2_CLIENT_SECRET=your_client_secret \
xefir/divent
```
### 2) Without Docker
- Install [Python 3](https://www.python.org/downloads/)
- Install [Pip](https://pip.pypa.io/en/stable/installing/)
- Install [Pip](https://pip.pypa.io/en/stable/installation/)
- Run `pip install divent`
- Run `DISCORD_TOKEN=your_bot_token divent`
- The app is accessible at http://localhost:5000
- Run
```bash
DISCORD_TOKEN=your_bot_token \
OAUTH2_CLIENT_ID=your_client_id \
OAUTH2_CLIENT_SECRET=your_client_secret \
divent
```
### 3) Open your browser
The app is accessible at http://localhost:5000
## Links

@ -1,32 +1,46 @@
import json
import logging
from datetime import datetime, timedelta
from os import environ, path
from typing import Optional
from functools import wraps
from os import getenv, path
from typing import Dict, Optional
from disnake import Client, Guild
from dotenv import load_dotenv
from ics import Calendar, ContentLine, Event
from ics.alarm import DisplayAlarm
from quart import Quart, redirect, render_template, request, url_for
from oauthlib.oauth2 import TokenExpiredError
from quart import Quart, redirect, render_template, request, session, url_for
from requests_oauthlib import OAuth2Session # type: ignore
import sentry_sdk
from sentry_sdk.integrations.quart import QuartIntegration
from uvicorn.middleware.proxy_headers import ProxyHeadersMiddleware # type: ignore
load_dotenv()
QUART_DEBUG = environ.get("QUART_DEBUG", False)
DISCORD_TOKEN = environ.get("DISCORD_TOKEN")
DISCORD_TOKEN = getenv("DISCORD_TOKEN")
OAUTH2_CLIENT_ID = getenv("OAUTH2_CLIENT_ID")
OAUTH2_CLIENT_SECRET = getenv("OAUTH2_CLIENT_SECRET")
if not DISCORD_TOKEN:
raise Exception("Missing DISCORD_TOKEN")
if not OAUTH2_CLIENT_ID:
raise Exception("Missing OAUTH2_CLIENT_ID")
if not OAUTH2_CLIENT_SECRET:
raise Exception("Missing OAUTH2_CLIENT_SECRET")
QUART_DEBUG = getenv("QUART_DEBUG", False)
if QUART_DEBUG:
logging.basicConfig(level=logging.DEBUG)
SENTRY_DSN = environ.get("SENTRY_DSN")
SENTRY_DSN = getenv("SENTRY_DSN")
if SENTRY_DSN:
sentry_sdk.init(SENTRY_DSN, integrations=[QuartIntegration()])
API_BASE_URL = getenv("API_BASE_URL", "https://discordapp.com/api")
AUTHORIZATION_BASE_URL = f"{API_BASE_URL}/oauth2/authorize"
TOKEN_URL = f"{API_BASE_URL}/oauth2/token"
class Discord(Client):
async def on_ready(self):
@ -35,6 +49,7 @@ class Discord(Client):
client = Discord()
app = Quart(__name__)
app.config["SECRET_KEY"] = OAUTH2_CLIENT_SECRET
app.asgi_app = ProxyHeadersMiddleware(app.asgi_app, "*") # type: ignore
@ -60,6 +75,28 @@ async def not_found(error: Exception):
return await render_template("error.html.j2", error=str(error)), 404
def token_updater(token: str):
session["oauth2_token"] = token
def make_session(
token: Optional[Dict[str, str]] = None, state: Optional[str] = None
) -> OAuth2Session:
return OAuth2Session(
client_id=OAUTH2_CLIENT_ID,
token=token,
state=state,
scope=["identify", "guilds"],
redirect_uri=f"{request.host_url}callback",
auto_refresh_kwargs={
"client_id": OAUTH2_CLIENT_ID,
"client_secret": OAUTH2_CLIENT_SECRET,
},
auto_refresh_url=TOKEN_URL,
token_updater=token_updater,
)
def i18n(str: str) -> str:
lang = request.accept_languages.best_match(["en", "fr"])
@ -84,27 +121,105 @@ def days_before_failure() -> int:
return nextDelta.days
def cdn_avatar_url(user_id: int, hash: str) -> str:
ext = "gif" if hash.startswith("a_") else "png"
return f"https://cdn.discordapp.com/avatars/{user_id}/{hash}.{ext}"
@app.context_processor
def context_processor():
return dict(_=i18n, client=client, days_before_failure=days_before_failure())
return dict(
_=i18n,
client=client,
cdn_avatar_url=cdn_avatar_url,
days_before_failure=days_before_failure(),
)
def login_required(fn):
@wraps(fn)
async def wrapper(*args, **kwargs):
if session.get("oauth2_token"):
return await fn(*args, **kwargs)
session["redirect_url"] = request.path
return redirect(url_for(".login"))
return wrapper
@app.route("/")
async def index():
guild_id = request.args.get("guild")
guild = get_guild_by_id(guild_id)
return await render_template("index.html.j2")
@app.route("/login")
async def login():
discord = make_session()
authorization_url, state = discord.authorization_url(AUTHORIZATION_BASE_URL)
session["oauth2_state"] = state
return redirect(authorization_url)
@app.route("/callback")
async def callback():
request_values = await request.values
if request_values.get("error"):
return errorhandler(request_values.get("error"))
discord = make_session(state=session.get("oauth2_state"))
token = discord.fetch_token(
TOKEN_URL,
client_secret=OAUTH2_CLIENT_SECRET,
authorization_response=request.url,
)
token_updater(token)
return redirect(session.pop("redirect_url", url_for(".guilds")))
@app.route("/guilds")
@login_required
async def guilds():
guild = get_guild_by_id(request.args.get("guild"))
if guild:
return redirect(url_for(".subscribe", guild_id=guild_id))
return redirect(
url_for(".subscribe", guild_id=guild.vanity_url_code or guild.id)
)
return await render_template("index.html.j2")
try:
discord = make_session(token=session.get("oauth2_token"))
user = discord.get(f"{API_BASE_URL}/users/@me").json()
user_guilds = discord.get(f"{API_BASE_URL}/users/@me/guilds").json()
except TokenExpiredError:
return redirect(url_for(".login"))
common_guilds = []
for bot_guild in client.guilds:
for user_guild in user_guilds:
if str(bot_guild.id) == user_guild["id"]:
common_guilds.append(bot_guild)
return await render_template(
"guilds.html.j2", user=user, common_guilds=common_guilds
)
@app.route("/subscribe/<guild_id>")
@login_required
async def subscribe(guild_id: str):
guild = get_guild_by_id(guild_id)
if guild is None:
return redirect(url_for(".index"))
return redirect(url_for(".login"))
try:
discord = make_session(token=session.get("oauth2_token"))
user_guilds = discord.get(f"{API_BASE_URL}/users/@me/guilds").json()
except TokenExpiredError:
return redirect(url_for(".login"))
if not any(str(guild.id) == user_guild["id"] for user_guild in user_guilds):
return redirect(url_for(".login"))
return await render_template("subscribe.html.j2", guild=guild)
@ -113,10 +228,13 @@ async def subscribe(guild_id: str):
async def ical(guild_id: str):
guild = get_guild_by_id(guild_id)
if guild is None:
return redirect(url_for(".index"))
return redirect(url_for(".login"))
calendar = Calendar()
calendar.extra.append(ContentLine(name="REFRESH-INTERVAL", value="PT1H"))
calendar.extra.append(ContentLine(name="X-PUBLISHED-TTL", value="PT1H"))
calendar.extra.append(ContentLine(name="NAME", value=guild.name))
calendar.extra.append(ContentLine(name="X-WR-CALNAME", value=guild.name))
@ -140,7 +258,7 @@ async def ical(guild_id: str):
)
alarm = DisplayAlarm()
alarm.trigger = timedelta(hours=1)
alarm.trigger = timedelta(hours=-1)
event.alarms.append(alarm)
calendar.events.append(event)
@ -148,6 +266,7 @@ async def ical(guild_id: str):
return calendar.serialize()
quart_task = client.loop.create_task(app.run_task("0.0.0.0"))
quart_task.add_done_callback(lambda f: client.loop.stop())
client.run(DISCORD_TOKEN)
def __main__():
quart_task = client.loop.create_task(app.run_task("0.0.0.0"))
quart_task.add_done_callback(lambda f: client.loop.stop())
client.run(DISCORD_TOKEN)

@ -15,24 +15,18 @@ body {
a {
text-decoration: none;
color: white;
}
body {
background-color: #2f3136;
background-color: #202225;
margin: 0;
font-family: Whitney, "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #b9bbbe;
display: flex;
flex-direction: column;
justify-content: space-between;
}
#logo {
position: relative;
left: 24px;
top: 24px;
height: 36px;
width: 130px;
justify-content: space-around;
align-items: center;
}
footer,
@ -44,6 +38,7 @@ h2 {
#avatars {
display: flex;
justify-content: center;
align-items: center;
}
#avatars img {
@ -56,7 +51,6 @@ h2 {
background-color: #18191c;
border-radius: 5px;
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.24);
align-self: center;
}
#box {
@ -66,14 +60,13 @@ h2 {
#dots {
font-size: xx-large;
opacity: 0.2;
align-self: center;
margin: 0 24px;
}
.hr-sect {
display: flex;
align-items: center;
color: rgba(79, 84, 92);
color: #4f545c;
margin: 8px 0;
}
@ -81,7 +74,7 @@ h2 {
.hr-sect:after {
content: "";
flex-grow: 1;
background: rgba(79, 84, 92);
background-color: #4f545c;
height: 1px;
margin: 0 8px;
}
@ -97,16 +90,11 @@ h2 {
border: 0;
border-radius: 3px;
color: white;
font-size: 15px;
font-size: 16px;
padding: 10px;
box-sizing: border-box;
}
#permissions {
font-size: 12px;
margin-top: 8px;
}
#providers li {
margin: 12px;
}
@ -114,14 +102,16 @@ h2 {
ul {
list-style-type: none;
padding: 0;
font-size: 12px;
margin-top: 8px;
}
ul li a {
color: #a3a6aa;
}
footer ul {
font-size: 12px;
ul li i {
margin: 4px;
}
footer ul li {
@ -132,11 +122,6 @@ footer ul li:last-child {
display: block;
}
footer ul li i,
#providers li a i {
margin: 4px;
}
.fa-custom-circle {
border-radius: 20px;
width: 24px;
@ -159,7 +144,6 @@ footer ul li i,
h1 {
font-size: 20px;
color: white;
}
h2 {
@ -179,7 +163,6 @@ hr {
#buttons {
background-color: #2f3136;
padding: 16px;
text-align: right;
border-radius: 0 0 5px 5px;
display: flex;
justify-content: flex-end;
@ -197,14 +180,12 @@ hr {
text-align: center;
}
@media only screen and (max-width : 320px) {
#logo {
align-self: center;
top: inherit;
left: inherit;
@media only screen and (max-width: 400px) {
body {
justify-content: flex-start;
}
footer ul li {
display: block;
}
}
}

@ -1,23 +0,0 @@
<svg width="292" height="80" viewBox="0 0 292 80" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)">
<g clip-path="url(#clip1)">
<path d="M61.7958 16.494C57.0736 14.2846 52.0244 12.6789 46.7456 11.7646C46.0973 12.9367 45.3399 14.5132 44.8177 15.7673C39.2062 14.9234 33.6463 14.9234 28.138 15.7673C27.6159 14.5132 26.8413 12.9367 26.1872 11.7646C20.9027 12.6789 15.8477 14.2905 11.1255 16.5057C1.60078 30.8988 -0.981215 44.9344 0.309785 58.7707C6.62708 63.4883 12.7493 66.3541 18.7682 68.2294C20.2543 66.1841 21.5797 64.0099 22.7215 61.7185C20.5469 60.8922 18.4641 59.8725 16.4961 58.6887C17.0182 58.3019 17.5289 57.8975 18.0223 57.4814C30.0257 63.0957 43.0677 63.0957 54.9277 57.4814C55.4269 57.8975 55.9375 58.3019 56.4539 58.6887C54.4801 59.8783 52.3916 60.898 50.217 61.7244C51.3588 64.0099 52.6785 66.19 54.1703 68.2352C60.195 66.3599 66.3229 63.4942 72.6402 58.7707C74.155 42.7309 70.0525 28.8242 61.7958 16.494ZM24.3568 50.2615C20.7535 50.2615 17.7985 46.8976 17.7985 42.8012C17.7985 38.7048 20.6904 35.3351 24.3568 35.3351C28.0233 35.3351 30.9782 38.6989 30.9151 42.8012C30.9208 46.8976 28.0233 50.2615 24.3568 50.2615ZM48.5932 50.2615C44.9899 50.2615 42.0349 46.8976 42.0349 42.8012C42.0349 38.7048 44.9267 35.3351 48.5932 35.3351C52.2596 35.3351 55.2146 38.6989 55.1515 42.8012C55.1515 46.8976 52.2596 50.2615 48.5932 50.2615Z" fill="white"/>
<path d="M98.0293 26.1707H113.693C117.469 26.1707 120.659 26.7743 123.276 27.9757C125.886 29.177 127.843 30.8531 129.14 32.998C130.436 35.1429 131.09 37.5984 131.09 40.3645C131.09 43.072 130.413 45.5275 129.059 47.7251C127.705 49.9286 125.645 51.6692 122.874 52.9526C120.103 54.236 116.671 54.8806 112.569 54.8806H98.0293V26.1707ZM112.408 47.5845C114.95 47.5845 116.907 46.934 118.272 45.6388C119.638 44.3378 120.321 42.568 120.321 40.3235C120.321 38.243 119.712 36.5845 118.496 35.3421C117.28 34.0997 115.438 33.4727 112.976 33.4727H108.076V47.5845H112.408Z" fill="white"/>
<path d="M154.541 54.8456C152.372 54.2713 150.415 53.4391 148.677 52.3432V45.5335C149.991 46.5707 151.752 47.4264 153.961 48.1003C156.17 48.7684 158.305 49.1024 160.37 49.1024C161.334 49.1024 162.063 48.9735 162.556 48.7156C163.05 48.4578 163.297 48.1472 163.297 47.7897C163.297 47.3795 163.165 47.0396 162.895 46.7641C162.625 46.4887 162.103 46.2601 161.329 46.0667L156.509 44.9591C153.749 44.3028 151.792 43.3944 150.628 42.2282C149.463 41.0678 148.883 39.5441 148.883 37.6571C148.883 36.0689 149.388 34.6918 150.41 33.5138C151.425 32.3359 152.871 31.4275 154.747 30.7887C156.624 30.1441 158.815 29.8218 161.334 29.8218C163.583 29.8218 165.643 30.0679 167.52 30.5602C169.396 31.0525 170.945 31.6795 172.179 32.4472V38.8878C170.916 38.1201 169.47 37.5165 167.818 37.0593C166.171 36.6081 164.479 36.3854 162.734 36.3854C160.215 36.3854 158.959 36.8249 158.959 37.6981C158.959 38.1084 159.154 38.4131 159.544 38.6182C159.934 38.8233 160.651 39.0343 161.69 39.257L165.706 39.9954C168.329 40.4584 170.285 41.273 171.57 42.4333C172.856 43.5937 173.498 45.3108 173.498 47.5846C173.498 50.0752 172.437 52.0502 170.308 53.5153C168.179 54.9804 165.161 55.7129 161.248 55.7129C158.947 55.7071 156.71 55.4199 154.541 54.8456Z" fill="white"/>
<path d="M182.978 53.9839C180.678 52.8352 178.939 51.2764 177.78 49.3073C176.621 47.3382 176.036 45.123 176.036 42.6616C176.036 40.2003 176.638 37.9968 177.843 36.057C179.048 34.1172 180.815 32.5935 183.145 31.4859C185.474 30.3783 188.257 29.8274 191.499 29.8274C195.515 29.8274 198.849 30.6889 201.5 32.4118V39.919C200.565 39.2626 199.474 38.7293 198.229 38.3191C196.984 37.9089 195.653 37.7037 194.23 37.7037C191.74 37.7037 189.795 38.1667 188.389 39.0985C186.983 40.0303 186.278 41.2434 186.278 42.7495C186.278 44.2263 186.96 45.4336 188.326 46.383C189.692 47.3265 191.671 47.8012 194.27 47.8012C195.607 47.8012 196.927 47.6019 198.229 47.2093C199.526 46.8108 200.645 46.3244 201.58 45.75V53.011C198.637 54.816 195.223 55.7185 191.338 55.7185C188.068 55.7068 185.279 55.1325 182.978 53.9839Z" fill="white"/>
<path d="M211.518 53.9841C209.2 52.8355 207.433 51.2649 206.216 49.2665C205 47.2681 204.386 45.0412 204.386 42.5798C204.386 40.1185 204.994 37.9208 206.216 35.9928C207.438 34.0647 209.194 32.5527 211.501 31.4568C213.801 30.3609 216.55 29.8159 219.734 29.8159C222.919 29.8159 225.667 30.3609 227.968 31.4568C230.269 32.5527 232.025 34.053 233.23 35.9693C234.435 37.8857 235.037 40.0833 235.037 42.574C235.037 45.0353 234.435 47.2623 233.23 49.2606C232.025 51.259 230.263 52.8296 227.945 53.9782C225.627 55.1269 222.89 55.7012 219.729 55.7012C216.567 55.7012 213.83 55.1327 211.518 53.9841ZM223.722 46.7055C224.698 45.7093 225.191 44.3907 225.191 42.7498C225.191 41.1089 224.703 39.802 223.722 38.835C222.747 37.8622 221.415 37.3758 219.729 37.3758C218.013 37.3758 216.67 37.8622 215.689 38.835C214.714 39.8079 214.226 41.1089 214.226 42.7498C214.226 44.3907 214.714 45.7093 215.689 46.7055C216.665 47.7018 218.013 48.2058 219.729 48.2058C221.415 48.1999 222.747 47.7018 223.722 46.7055Z" fill="white"/>
<path d="M259.17 31.3395V40.2004C258.149 39.5147 256.829 39.1748 255.194 39.1748C253.053 39.1748 251.401 39.8371 250.253 41.1615C249.1 42.486 248.526 44.5488 248.526 47.3383V54.8865H238.686V30.8883H248.326V38.5185C248.859 35.7289 249.726 33.672 250.919 32.3416C252.107 31.0172 253.644 30.355 255.515 30.355C256.932 30.355 258.149 30.6832 259.17 31.3395Z" fill="white"/>
<path d="M291.864 25.3503V54.8866H282.023V49.5127C281.191 51.5345 279.929 53.0758 278.231 54.1306C276.532 55.1797 274.432 55.7071 271.942 55.7071C269.716 55.7071 267.777 55.1562 266.118 54.0486C264.46 52.941 263.181 51.4232 262.28 49.4951C261.385 47.567 260.931 45.387 260.931 42.9491C260.903 40.435 261.379 38.1787 262.36 36.1803C263.336 34.1819 264.718 32.6231 266.497 31.5037C268.276 30.3844 270.307 29.8218 272.585 29.8218C277.273 29.8218 280.417 31.9022 282.023 36.0572V25.3503H291.864ZM280.555 46.5415C281.559 45.5452 282.058 44.2501 282.058 42.6678C282.058 41.1382 281.57 39.8899 280.595 38.9347C279.619 37.9795 278.282 37.4989 276.601 37.4989C274.943 37.4989 273.618 37.9853 272.625 38.9581C271.632 39.931 271.139 41.1909 271.139 42.7498C271.139 44.3087 271.632 45.5804 272.625 46.5649C273.618 47.5494 274.926 48.0417 276.561 48.0417C278.219 48.0359 279.55 47.5377 280.555 46.5415Z" fill="white"/>
<path d="M139.382 33.4432C142.091 33.4432 144.288 31.4281 144.288 28.9424C144.288 26.4567 142.091 24.4417 139.382 24.4417C136.672 24.4417 134.476 26.4567 134.476 28.9424C134.476 31.4281 136.672 33.4432 139.382 33.4432Z" fill="white"/>
<path d="M134.472 36.5435C137.478 37.8679 141.208 37.9265 144.283 36.5435V55.0154H134.472V36.5435Z" fill="white"/>
</g>
</g>
<defs>
<clipPath id="clip0">
<rect width="292" height="56.4706" fill="white" transform="translate(0 11.7646)"/>
</clipPath>
<clipPath id="clip1">
<rect width="292" height="56.4706" fill="white" transform="translate(0 11.7646)"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 6.7 KiB

@ -13,17 +13,12 @@
href="{{ url_for('static', filename='css/global.css') }}"/>
</head>
<body>
<img src="{{ url_for('static', filename='img/Discord-Logo+Wordmark-White.svg') }}"
id="logo"
height="36"
width="130"
alt="{{ _('Discord Logo') }}"/>
<div id="content">
{% block content %}
{% endblock content %}
</div>
<footer>
{% include 'footer.html.j2' %}
{% include "footer.html.j2" %}
</footer>
</body>
</html>

@ -0,0 +1,55 @@
{% extends "base.html.j2" %}
{% block content %}
<form action="{{ url_for(".guilds") }}" method="get">
<div id="box">
<div id="avatars">
<img src="{{ client.user.display_avatar }}"
alt="{{ _('Bot Logo') }}"
width="80"
height="80"/>
<span id="dots">…</span>
<img src="{{ cdn_avatar_url(user.id, user.avatar) }}"
alt="{{ _('User Avatar') }}"
width="80"
height="80"/>
</div>
<h1>
<a href="{{ url_for(".index") }}">{{ client.user.display_name }}</a>
</h1>
<h3>{{ _('Choose a server:') }}</h3>
<select name="guild" class="black_input">
<option>
&nbsp;
</option>
{% for guild in common_guilds %}
<option value="{{ guild.vanity_url_code|default(guild.id, True) }}">
{{ guild.name }}
</option>
{% endfor %}
</select>
<div class="hr-sect">{{ _("OR") }}</div>
<a class="button"
target="_blank"
href="https://discord.com/api/oauth2/authorize?client_id={{ client.user.id }}&permissions=8589934592&scope=bot">
{{ _("Add the bot on your server") }}
</a>
<ul>
<li>
{{ _("You must have") }}
<strong>{{ _("Manage Server") }}</strong>
{{ _("permission on this server to perform this action") }}
</li>
<li>
{{ _("After adding the bot,") }}
<a href="{{ url_for(".guilds") }}">
<i class="fa fa-refresh"></i>
<strong>{{ _("reload the page") }}</strong>
</a>
</li>
</ul>
</div>
<div id="buttons">
<input type="submit" class="button" value="{{ _("Let's go!") }}"/>
</div>
</form>
{% endblock content %}

@ -1,6 +1,6 @@
{% extends "base.html.j2" %}
{% block content %}
<form action="" method="get">
<form action="{{ url_for(".index") }}" method="get">
<div id="box">
<div id="avatars">
<img src="{{ client.user.display_avatar }}"
@ -8,7 +8,9 @@
width="80"
height="80"/>
</div>
<h1>{{ client.user.display_name }}</h1>
<h1>
<a href="{{ url_for(".index") }}">{{ client.user.display_name }}</a>
</h1>
<h2>{{ _('The discord scheduled event calendar generator') }}</h2>
<hr />
<h3>{{ _('This will allow you to:') }}</h3>
@ -22,41 +24,9 @@
{{ _('Throwing you to a new isekai world') }}
</li>
</ul>
<hr />
<h3>{{ _('Choose a server:') }}</h3>
<select name="guild" class="black_input">
<option>
&nbsp;
</option>
{% for guild in client.guilds %}
<option value="{{ guild.vanity_url_code|default(guild.id, True) }}">
{{ guild.name }}
</option>
{% endfor %}
</select>
<div class="hr-sect">{{ _("OR") }}</div>
<a class="button"
target="_blank"
href="https://discord.com/api/oauth2/authorize?client_id={{ client.user.id }}&permissions=536870912&scope=bot">
{{ _("Add the bot on your server") }}
</a>
<ul id="permissions">
<li>
{{ _("You must have") }}
<strong>{{ _("Manage Server") }}</strong>
{{ _("permission on this server to perform this action") }}
</li>
<li>
{{ _("After adding the bot,") }}
<a href="">
<i class="fa fa-refresh"></i>
<strong>{{ _("reload the page") }}</strong>
</a>
</li>
</ul>
</div>
<div id="buttons">
<input type="submit" class="button" value="{{ _("Let's go!") }}"/>
<a class="button" href="{{ url_for(".login") }}">{{ _("Let's go!") }}</a>
</div>
</form>
{% endblock content %}

@ -12,14 +12,16 @@
width="80"
height="80"/>
</div>
<h1>{{ client.user.display_name }}</h1>
<h1>
<a href="{{ url_for(".index") }}">{{ client.user.display_name }}</a>
</h1>
<h2>{{ _('The discord scheduled event calendar generator') }}</h2>
<hr />
<ul id="providers">
<li>
<a class="button"
target="_blank"
href="https://calendar.google.com/calendar/u/0/r?cid={{ request.host_url }}{{ guild.vanity_url_code|default(guild.id, True) }}.ics">
href="https://calendar.google.com/calendar/u/0/r?cid=webcal://{{ request.host }}/{{ guild.vanity_url_code|default(guild.id, True) }}.ics">
<i class="fa fa-google"></i>
{{ _("Subscribe to") }} Google
</a>
@ -27,7 +29,7 @@
<li>
<a class="button"
target="_blank"
href="https://outlook.live.com/owa?path=/calendar/action/compose&rru=addsubscription&url={{ request.host_url }}{{ guild.vanity_url_code|default(guild.id, True) }}.ics">
href="https://outlook.live.com/owa?path=/calendar/action/compose&rru=addsubscription&url=webcal://{{ request.host }}/{{ guild.vanity_url_code|default(guild.id, True) }}.ics">
<i class="fa fa-windows"></i>
{{ _("Subscribe to") }} Outlook
</a>

1856
poetry.lock generated

File diff suppressed because it is too large Load Diff

@ -1,6 +1,6 @@
[tool.poetry]
name = "divent"
version = "1.0.1"
version = "3.1.0"
description = "The discord scheduled event calendar generator"
authors = ["Xéfir Destiny"]
license = "WTFPL"
@ -12,21 +12,23 @@ repository = "https://git.crystalyx.net/Xefir/Divent"
divent = 'divent.bot:__main__'
[tool.poetry.dependencies]
python = "^3.8"
disnake = "2.5.2"
python = "^3.8.1"
disnake = "^2.7.0"