Skip to content
This repository was archived by the owner on Oct 2, 2023. It is now read-only.

Commit ba33b7a

Browse files
authored
Merge branch 'develop' into patch-5
2 parents 53035dd + 95f6df9 commit ba33b7a

File tree

26 files changed

+128
-115
lines changed

26 files changed

+128
-115
lines changed

general/news/cog.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ async def news_send(
143143

144144
content = ""
145145
send_embed = Embed(title=t.news, description=message, colour=Colors.News)
146-
send_embed.set_footer(text=t.sent_by(ctx.author, ctx.author.id), icon_url=ctx.author.avatar_url)
146+
send_embed.set_footer(text=t.sent_by(ctx.author, ctx.author.id), icon_url=ctx.author.display_avatar.url)
147147

148148
if authorization.notification_role_id is not None:
149149
role: Optional[Role] = ctx.guild.get_role(authorization.notification_role_id)

general/polls/cog.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import re
22
import string
3-
from datetime import datetime
43
from typing import Optional, Tuple
54

65
from discord import Embed, Message, PartialEmoji, Member, Forbidden, Guild
76
from discord.ext import commands
87
from discord.ext.commands import Context, guild_only, CommandError
8+
from discord.utils import utcnow
99

1010
from PyDrocsid.cog import Cog
1111
from PyDrocsid.embeds import EmbedLimits
@@ -53,10 +53,10 @@ async def send_poll(
5353
if any(len(str(option)) > EmbedLimits.FIELD_VALUE for option in options):
5454
raise CommandError(t.option_too_long(EmbedLimits.FIELD_VALUE))
5555

56-
embed = Embed(title=title, description=question, color=Colors.Polls, timestamp=datetime.utcnow())
57-
embed.set_author(name=str(ctx.author), icon_url=ctx.author.avatar_url)
56+
embed = Embed(title=title, description=question, color=Colors.Polls, timestamp=utcnow())
57+
embed.set_author(name=str(ctx.author), icon_url=ctx.author.display_avatar.url)
5858
if allow_delete:
59-
embed.set_footer(text=t.created_by(ctx.author, ctx.author.id), icon_url=ctx.author.avatar_url)
59+
embed.set_footer(text=t.created_by(ctx.author, ctx.author.id), icon_url=ctx.author.display_avatar.url)
6060

6161
if len(set(map(lambda x: x.emoji, options))) < len(options):
6262
raise CommandError(t.option_duplicated)
@@ -216,8 +216,8 @@ async def team_yesno(self, ctx: Context, *, text: str):
216216
Starts a yes/no poll and shows, which teamler has not voted yet.
217217
"""
218218

219-
embed = Embed(title=t.team_poll, description=text, color=Colors.Polls, timestamp=datetime.utcnow())
220-
embed.set_author(name=str(ctx.author), icon_url=ctx.author.avatar_url)
219+
embed = Embed(title=t.team_poll, description=text, color=Colors.Polls, timestamp=utcnow())
220+
embed.set_author(name=str(ctx.author), icon_url=ctx.author.display_avatar.url)
221221

222222
embed.add_field(name=tg.status, value=await self.get_reacted_teamlers(), inline=False)
223223

general/utils/cog.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ async def encode(self, ctx: Context, *, user: UserMemberConverter):
7474
user: Union[User, Member]
7575

7676
embed = Embed(color=Colors.Utils)
77-
embed.set_author(name=str(user), icon_url=user.avatar_url)
77+
embed.set_author(name=str(user), icon_url=user.display_avatar.url)
7878
embed.add_field(name=t.username, value=str(user.name.encode())[2:-1], inline=False)
7979
if isinstance(user, Member) and user.nick:
8080
embed.add_field(name=t.nickname, value=str(user.nick.encode())[2:-1], inline=False)

general/voice_channel/cog.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import asyncio
22
import random
3-
from datetime import datetime
43
from os import getenv
54
from pathlib import Path
65
from typing import Optional, Union
@@ -25,6 +24,7 @@
2524
from discord.abc import Messageable
2625
from discord.ext import commands, tasks
2726
from discord.ext.commands import guild_only, Context, UserInputError, CommandError, Greedy
27+
from discord.utils import utcnow
2828

2929
from PyDrocsid.async_thread import gather_any, GatherAnyException
3030
from PyDrocsid.cog import Cog
@@ -213,7 +213,7 @@ def prepare(self) -> bool:
213213
return bool(self.names)
214214

215215
def _get_name_list(self, guild_id: int) -> str:
216-
r = random.Random(f"{guild_id}{datetime.utcnow().date().isoformat()}")
216+
r = random.Random(f"{guild_id}{utcnow().date().isoformat()}")
217217
return r.choice(sorted(self.names))
218218

219219
def _random_channel_name(self, guild_id: int, avoid: set[str]) -> Optional[str]:
@@ -277,7 +277,7 @@ async def send_voice_msg(self, channel: DynChannel, title: str, msg: str, force_
277277
text_channel,
278278
title,
279279
"",
280-
datetime.utcnow().strftime("%d.%m.%Y %H:%M:%S"),
280+
utcnow().strftime("%d.%m.%Y %H:%M:%S"),
281281
msg,
282282
colour=color,
283283
force_new_embed=force_new_embed,

general/voice_channel/models.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
from typing import Union, Optional
55
from uuid import uuid4
66

7-
from sqlalchemy import Column, BigInteger, Boolean, DateTime, ForeignKey, String
7+
from discord.utils import utcnow
8+
from sqlalchemy import Column, BigInteger, Boolean, ForeignKey, String
89
from sqlalchemy.orm import relationship
910

10-
from PyDrocsid.database import db
11+
from PyDrocsid.database import db, UTCDateTime
1112

1213

1314
class DynGroup(db.Base):
@@ -65,15 +66,15 @@ class DynChannelMember(db.Base):
6566
member_id: Union[Column, int] = Column(BigInteger)
6667
channel_id: Union[Column, int] = Column(BigInteger, ForeignKey("dynvoice_channel.channel_id"))
6768
channel: DynChannel = relationship("DynChannel", back_populates="members")
68-
timestamp: Union[Column, datetime] = Column(DateTime)
69+
timestamp: Union[Column, datetime] = Column(UTCDateTime)
6970

7071
@staticmethod
7172
async def create(member_id: int, channel_id: int) -> DynChannelMember:
7273
member = DynChannelMember(
7374
id=str(uuid4()),
7475
member_id=member_id,
7576
channel_id=channel_id,
76-
timestamp=datetime.utcnow(),
77+
timestamp=utcnow(),
7778
)
7879
await db.add(member)
7980
return member

information/heartbeat/cog.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
from datetime import datetime
21
from typing import Optional
32

43
from discord import User, Forbidden
54
from discord.ext import tasks
5+
from discord.utils import utcnow
66

77
from PyDrocsid.cog import Cog
88
from PyDrocsid.config import Config
@@ -36,7 +36,7 @@ async def status_loop(self):
3636
t.online_status,
3737
t.status_description(Config.NAME, Config.VERSION),
3838
t.heartbeat,
39-
datetime.utcnow().strftime("%d.%m.%Y %H:%M:%S UTC"),
39+
utcnow().strftime("%d.%m.%Y %H:%M:%S UTC"),
4040
)
4141
except Forbidden:
4242
pass
@@ -49,7 +49,7 @@ async def on_ready(self):
4949
t.online_status,
5050
t.status_description(Config.NAME, Config.VERSION),
5151
t.logged_in,
52-
datetime.utcnow().strftime("%d.%m.%Y %H:%M:%S UTC"),
52+
utcnow().strftime("%d.%m.%Y %H:%M:%S UTC"),
5353
force_resend=True,
5454
force_new_embed=not self.initialized,
5555
)

information/inactivity/cog.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
from PyDrocsid.database import db, db_wrapper
1414
from PyDrocsid.embeds import send_long_embed
1515
from PyDrocsid.translations import t
16+
from discord.utils import utcnow
17+
1618
from .models import Activity
1719
from .permissions import InactivityPermission
1820
from .settings import InactivitySettings
@@ -35,15 +37,15 @@ def status_icon(status: Status) -> str:
3537
async def scan(ctx: Context, days: int):
3638
async def update_msg(m: Message, content):
3739
embed.description = content
38-
embed.timestamp = datetime.utcnow()
40+
embed.timestamp = utcnow()
3941
await ignore_message_edit(m)
4042
try:
4143
await m.edit(embed=embed)
4244
except NotFound:
4345
return await reply(ctx, embed=embed)
4446
return m
4547

46-
embed = Embed(title=t.scanning, timestamp=datetime.utcnow())
48+
embed = Embed(title=t.scanning, timestamp=utcnow())
4749
message: list[Message] = [await reply(ctx, embed=embed)]
4850
guild: Guild = ctx.guild
4951
members: dict[Member, datetime] = {}
@@ -54,7 +56,7 @@ async def update_progress_message():
5456
while len(completed) < len(channels):
5557
content = t.scanning_channel(len(completed), len(channels), cnt=len(active))
5658
for a, d in active.items():
57-
channel_age = (datetime.utcnow() - a.created_at).days
59+
channel_age = (utcnow() - a.created_at).days
5860
content += f"\n:small_orange_diamond: {a.mention} ({d} / {min(channel_age, days)})"
5961
message[0] = await update_msg(message[0], content)
6062
await asyncio.sleep(2)
@@ -63,7 +65,7 @@ async def update_members(c: TextChannel):
6365
active[c] = 0
6466

6567
async for msg in c.history(limit=None, oldest_first=False):
66-
s = (datetime.utcnow() - msg.created_at).total_seconds()
68+
s = (utcnow() - msg.created_at).total_seconds()
6769
if s > days * 24 * 60 * 60:
6870
break
6971
members[msg.author] = max(members.get(msg.author, msg.created_at), msg.created_at)
@@ -129,7 +131,7 @@ async def handle_get_user_status_entries(self, user_id) -> list[tuple[str, str]]
129131

130132
if activity is None:
131133
status = t.status.inactive
132-
elif (days := (datetime.utcnow() - activity.timestamp).days) >= inactive_days:
134+
elif (days := (utcnow() - activity.timestamp).days) >= inactive_days:
133135
status = t.status.inactive_since(activity.timestamp.strftime("%d.%m.%Y %H:%M:%S"))
134136
else:
135137
status = t.status.active(cnt=days)
@@ -153,7 +155,7 @@ async def inactive(self, ctx: Context, days: Optional[int], *roles: Optional[Rol
153155
elif days not in range(1, 10001):
154156
raise CommandError(tg.invalid_duration)
155157

156-
now = datetime.utcnow()
158+
now = utcnow()
157159

158160
@db_wrapper
159161
async def load_member(m: Member) -> tuple[Member, Optional[datetime]]:

information/inactivity/models.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
from datetime import datetime
44
from typing import Union
55

6-
from PyDrocsid.database import db, db_wrapper
7-
from sqlalchemy import Column, BigInteger, DateTime
6+
from PyDrocsid.database import db, db_wrapper, UTCDateTime
7+
from sqlalchemy import Column, BigInteger
88

99

1010
class Activity(db.Base):
1111
__tablename__ = "activity"
1212

1313
id: Union[Column, int] = Column(BigInteger, primary_key=True, unique=True)
14-
timestamp: Union[Column, datetime] = Column(DateTime)
14+
timestamp: Union[Column, datetime] = Column(UTCDateTime)
1515

1616
@staticmethod
1717
async def create(object_id: int, timestamp: datetime) -> Activity:

information/server_info/cog.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ async def server(self, ctx: Context):
3535

3636
guild: Guild = ctx.guild
3737
embed = Embed(title=guild.name, description=t.info_description, color=Colors.ServerInformation)
38-
embed.set_thumbnail(url=guild.icon_url)
38+
if guild.icon:
39+
embed.set_thumbnail(url=guild.icon.url)
3940
created = guild.created_at.date()
4041
embed.add_field(name=t.creation_date, value=f"{created.day}.{created.month}.{created.year}")
4142
online_count = sum([m.status != Status.offline for m in guild.members])

information/user_info/cog.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
)
3232
from discord.ext import commands
3333
from discord.ext.commands import Context, UserInputError, CommandError, max_concurrency, guild_only
34-
from discord.utils import snowflake_time
34+
from discord.utils import snowflake_time, utcnow
3535

3636
from .colors import Colors
3737
from .models import Join, Leave, UsernameUpdate, Verification
@@ -219,7 +219,7 @@ async def userinfo(self, ctx: Context, user: Optional[Union[User, int]] = None):
219219
if isinstance(user, int):
220220
embed.set_author(name=str(user))
221221
else:
222-
embed.set_author(name=f"{user} ({user_id})", icon_url=user.avatar_url)
222+
embed.set_author(name=f"{user} ({user_id})", icon_url=user.display_avatar.url)
223223

224224
for response in await get_user_info_entries(user_id):
225225
for name, value in response:
@@ -294,7 +294,7 @@ async def userlogs(self, ctx: Context, user: Optional[Union[User, int]] = None):
294294
if isinstance(user, int):
295295
embed.set_author(name=str(user))
296296
else:
297-
embed.set_author(name=f"{user} ({user_id})", icon_url=user.avatar_url)
297+
embed.set_author(name=f"{user} ({user_id})", icon_url=user.display_avatar.url)
298298
for row in out:
299299
name = row[0].strftime("%d.%m.%Y %H:%M:%S")
300300
value = row[1]
@@ -326,8 +326,10 @@ async def joined(self, ctx: Context, member: Member = None):
326326

327327
embed = Embed(
328328
title=t.userinfo,
329-
description=f"{member.mention} {date_diff_to_str(datetime.today(), ts)}",
329+
description=f"{member.mention} {date_diff_to_str(utcnow(), ts)}",
330+
color=Colors.joined,
330331
)
332+
embed.set_author(name=str(member), icon_url=member.display_avatar.url)
331333
await reply(ctx, embed=embed)
332334

333335
@commands.command()

0 commit comments

Comments
 (0)