Add oauth #8
30
bot.py
30
bot.py
@ -3,7 +3,7 @@ from datetime import timedelta
|
||||
from os import environ
|
||||
from typing import List, Optional, Union
|
||||
|
||||
from disnake import Client, Guild, Member
|
||||
from disnake import Client, Guild
|
||||
from dotenv import load_dotenv
|
||||
from ics import Calendar, Event # type: ignore
|
||||
from ics.alarm.display import DisplayAlarm # type: ignore
|
||||
@ -44,23 +44,6 @@ def get_guild_by_id(guild_id: Union[int, str]) -> Optional[Guild]:
|
||||
return None
|
||||
|
||||
|
||||
def get_bot_member(guild: Guild) -> Optional[Member]:
|
||||
for member in guild.members:
|
||||
if member.id == client.user.id:
|
||||
return member
|
||||
return None
|
||||
|
||||
|
||||
async def get_guild_tag(member: Member) -> Optional[str]:
|
||||
if member.guild_permissions.manage_guild:
|
||||
if member.guild.vanity_url_code:
|
||||
return member.guild.vanity_url_code
|
||||
else:
|
||||
invites = await member.guild.invites()
|
||||
return invites[0].code
|
||||
return None
|
||||
|
||||
|
||||
def token_updater(token: str) -> None:
|
||||
session["oauth2_token"] = token
|
||||
|
||||
@ -119,26 +102,25 @@ async def index(guild_id):
|
||||
if guild is None:
|
||||
return redirect(url_for(".login"))
|
||||
|
||||
bot = get_bot_member(guild)
|
||||
guild_tag = await get_guild_tag(bot)
|
||||
calendar = Calendar()
|
||||
|
||||
for scheduled_event in guild.scheduled_events:
|
||||
event = Event()
|
||||
event.name = scheduled_event.name
|
||||
event.begin = scheduled_event.scheduled_start_time
|
||||
event.end = scheduled_event.scheduled_end_time
|
||||
event.end = (
|
||||
scheduled_event.scheduled_end_time
|
||||
or scheduled_event.scheduled_start_time + timedelta(hours=2)
|
||||
)
|
||||
event.uid = str(scheduled_event.id)
|
||||
event.description = scheduled_event.description
|
||||
event.url = f"https://discord.com/events/{guild_id}/{scheduled_event.id}"
|
||||
event.location = (
|
||||
scheduled_event.entity_metadata.location
|
||||
if scheduled_event.entity_metadata
|
||||
else None
|
||||
)
|
||||
|
||||
if guild_tag:
|
||||
event.url = f"https://discord.gg/{guild_tag}?event={scheduled_event.id}"
|
||||
|
||||
alarm = DisplayAlarm()
|
||||
alarm.trigger = timedelta(hours=1)
|
||||
event.alarms.append(alarm)
|
||||
|
8
poetry.lock
generated
8
poetry.lock
generated
@ -102,11 +102,11 @@ python-versions = "*"
|
||||
|
||||
[[package]]
|
||||
name = "certifi"
|
||||
version = "2021.10.8"
|
||||
version = "2022.5.18.1"
|
||||
description = "Python package for providing Mozilla's CA Bundle."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[[package]]
|
||||
name = "charset-normalizer"
|
||||
@ -735,8 +735,8 @@ blinker = [
|
||||
{file = "blinker-1.4.tar.gz", hash = "sha256:471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6"},
|
||||
]
|
||||
certifi = [
|
||||
{file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
|
||||
{file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
|
||||
{file = "certifi-2022.5.18.1-py3-none-any.whl", hash = "sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"},
|
||||
{file = "certifi-2022.5.18.1.tar.gz", hash = "sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7"},
|
||||
]
|
||||
charset-normalizer = [
|
||||
{file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"},
|
||||
|
Loading…
Reference in New Issue
Block a user