fix dates

This commit is contained in:
Klemek
2023-10-16 11:03:46 +02:00
parent eb6607de60
commit fffaae130c
5 changed files with 21 additions and 15 deletions
+2 -2
View File
@@ -4,7 +4,7 @@ from collections import defaultdict
# Custom libs
from utils import plural, from_now, percent, val_sum, top_key
from utils import plural, from_now, percent, val_sum, top_key, utc_today
class Counter:
@@ -25,7 +25,7 @@ class Counter:
if self.last_used is None:
return 0
return self.all_usages() + 1 / (
100000 * ((datetime.today() - self.last_used).days + 1)
100000 * ((utc_today() - self.last_used).days + 1)
)
def all_usages(self) -> int:
+3 -3
View File
@@ -5,7 +5,7 @@ import discord
# Custom libs
from utils import mention, plural, from_now, top_key, percent
from utils import mention, plural, from_now, top_key, percent, utc_today
class Emoji:
@@ -44,14 +44,14 @@ class Emoji:
)
def life_days(self) -> int:
return (datetime.today() - self.emoji.created_at).days
return (utc_today() - self.emoji.created_at).days
def use_days(self) -> int:
# If never used, use creation date instead
if self.last_used is None:
return self.life_days()
else:
return (datetime.today() - self.last_used).days
return (utc_today() - self.last_used).days
def get_top_member(self) -> int:
return top_key(self.members)
+1 -1
View File
@@ -18,7 +18,7 @@ emojis.load_emojis()
bot = Bot(
"Discord Analyst",
"1.17.1",
"1.17.2",
alias="%",
)
+3 -2
View File
@@ -18,6 +18,7 @@ from utils import (
command_cache,
FilterLevel,
SPLIT_TOKEN,
utc_now
)
from logs import (
GuildLogs,
@@ -131,7 +132,7 @@ class Scanner(ABC):
self.start_date = None if len(dates) < 1 else min(dates)
self.stop_date = None if len(dates) < 2 else max(dates)
if self.start_date is not None and self.start_date > datetime.now():
if self.start_date is not None and self.start_date > utc_now():
await message.channel.send(
f"Start date is after today", reference=message
)
@@ -228,7 +229,7 @@ class Scanner(ABC):
),
)
if self.stop_date is None:
self.stop_date = datetime.utcnow()
self.stop_date = utc_now()
self.msg_count = 0
self.total_msg = 0
+12 -7
View File
@@ -4,7 +4,7 @@ import os
import logging
import discord
import math
from datetime import datetime, timedelta
from datetime import datetime, timedelta, timezone
import re
import time
import dateutil.parser
@@ -258,13 +258,18 @@ def parse_iso_datetime(str_date: str) -> datetime:
RELATIVE_REGEX = r"(yesterday|today|\d*hours?|\d+h(ours?)?|\d*days?|\d+d(ays?)?|\d*weeks?|\d+w(eeks?)?|\d*months?|\d+m(onths?)?|\d*years?|\d+y(ears?)?)"
def utc_now() -> datetime:
return datetime.now(tz=timezone.utc)
def utc_today() -> datetime:
return datetime.now(tz=timezone.utc).date()
def parse_relative_time(src: str) -> datetime:
today = datetime.utcnow().date()
today = datetime(today.year, today.month, today.day)
if src == "today":
return today
return utc_today()
elif src == "yesterday":
return today - relativedelta(days=1)
return utc_today() - relativedelta(days=1)
else:
m = re.match("(\d*)(\w+)", src)
delta = None
@@ -280,7 +285,7 @@ def parse_relative_time(src: str) -> datetime:
delta = relativedelta(months=value)
elif unit == "y":
delta = relativedelta(years=value)
return datetime.utcnow() - delta
return utc_now() - delta
def parse_time(src: str) -> datetime:
@@ -344,7 +349,7 @@ def get_intro(
"""
time_text = ""
if start_datetime is not None:
stop_datetime = datetime.now() if stop_datetime is None else stop_datetime
stop_datetime = utc_now() if stop_datetime is None else stop_datetime
time_text = f" (in {str_delta(stop_datetime - start_datetime)})"
# Show all data (members, channels) when it's less than 5 units
if len(members) == 0: