Init commit
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
from bot import db
|
||||
from schedule import every, clear, run_pending
|
||||
import asyncio
|
||||
from datetime import datetime, timedelta
|
||||
from loguru import logger
|
||||
|
||||
daysoftheweek = ("monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday")
|
||||
|
||||
def save_activity():
|
||||
day = (datetime.now()-timedelta(1)).weekday()
|
||||
for data in db.history.find({"type": "server"}):
|
||||
db.history.update_one(
|
||||
{"type": "server", "id": data['id']},
|
||||
{
|
||||
"$push":
|
||||
{f"avarage.{i}": data['current'][str(i)] for i in range(24)},
|
||||
"$set":
|
||||
{f'yesterday.{i}': data['current'][str(i)] for i in range(24)}
|
||||
}
|
||||
)
|
||||
db.history.update_one(
|
||||
{"type": "server", "id": data['id']},
|
||||
{
|
||||
"$push":
|
||||
{f"history.{daysoftheweek[day]}.{i}": data['current'][str(i)] for i in range(24)},
|
||||
"$set":
|
||||
{f"current.{i}": 0 for i in range(24)}
|
||||
}
|
||||
)
|
||||
|
||||
def db_sync_hour():
|
||||
logger.info("Регистрация за час")
|
||||
for member in list(db.members.find()):
|
||||
db.members.update_one({"_id": member["_id"]}, {"$set": {f"history.hour.{int(datetime.now().timestamp())}": member["exp"]}})
|
||||
if 'guild_stat' in member.keys():
|
||||
for guild in member["guild_stat"].keys():
|
||||
db.members.update_one({"_id": member["_id"]}, {"$set": {f"guild_stat.{guild}.history.hour.{int(datetime.now().timestamp())}": member["guild_stat"][guild]["exp"]}})
|
||||
logger.info("Регистрация завершена")
|
||||
|
||||
|
||||
def db_sync_day():
|
||||
logger.info("Регистрация за день")
|
||||
for member in list(db.members.find()):
|
||||
db.members.update_one({"_id": member["_id"]}, {"$set": {f"history.day.{int(datetime.now().timestamp())}": member["exp"]}})
|
||||
for guild in member["guild_stat"].keys():
|
||||
db.members.update_one({"_id": member["_id"]}, {"$set": {f"guild_stat.{guild}.history.day.{int(datetime.now().timestamp())}": member["guild_stat"][guild]["exp"]}})
|
||||
logger.info("Регистрация завершена")
|
||||
# await self.bot.get_user(self.bot.owner_id).send("Завершено за день????")
|
||||
|
||||
|
||||
async def main():
|
||||
clear()
|
||||
|
||||
every().day.at('00:00:00').do(save_activity)
|
||||
every().hours.at("00:00").do(db_sync_hour)
|
||||
every().day.at("00:00:00").do(db_sync_day)
|
||||
|
||||
while True:
|
||||
run_pending()
|
||||
await asyncio.sleep(1)
|
||||
|
||||
async def setup(_):
|
||||
asyncio.create_task(main())
|
||||
Reference in New Issue
Block a user