Small changes

This commit is contained in:
itqop 2024-02-26 04:40:08 +03:00
parent 1e772e7034
commit 7653766c73
2 changed files with 18 additions and 2 deletions

10
main.py
View File

@ -1,6 +1,7 @@
from fastapi import FastAPI, HTTPException from fastapi import FastAPI, HTTPException
from db import MySQLDB from db import MySQLDB
from PlayerSubscription import PlayerSubscription from PlayerSubscription import PlayerSubscription
from utils import get_unix_timestamp_after_days
app = FastAPI() app = FastAPI()
db = MySQLDB() db = MySQLDB()
@ -16,11 +17,18 @@ async def subscribe(player_data: PlayerSubscription):
raise HTTPException(status_code=404, detail="Player not found") raise HTTPException(status_code=404, detail="Player not found")
uuid = result[0][0] uuid = result[0][0]
if player_data.expiry is not None:
if player_data.expiry < 0:
raise HTTPException(status_code=400, detail="Expiry must be a positive integer")
expiry_timestamp = get_unix_timestamp_after_days(player_data.expiry)
else:
raise HTTPException(status_code=400, detail="Expiry must be a positive integer")
subscription_query = """ subscription_query = """
INSERT INTO luckperms_user_permissions (uuid, permission, value, server, world, expiry, contexts) INSERT INTO luckperms_user_permissions (uuid, permission, value, server, world, expiry, contexts)
VALUES (%s, %s, %s, %s, %s, %s, %s) VALUES (%s, %s, %s, %s, %s, %s, %s)
""" """
await db.execute(subscription_query, uuid, 'group.subscribe', 1, 'global', 'global', player_data.expiry, "{}") await db.execute(subscription_query, uuid, 'group.subscribe', 1, 'global', 'global', expiry_timestamp, "{}")
finally: finally:
await db.close() await db.close()

View File

@ -1,11 +1,12 @@
import yaml import yaml
import datetime
def read_config(config_file): def read_config(config_file):
with open(config_file, 'r') as file: with open(config_file, 'r') as file:
config = yaml.safe_load(file) config = yaml.safe_load(file)
return config return config
def get_parameters(): def get_parameters() -> dict:
parameters = {} parameters = {}
config = read_config('config.yml') config = read_config('config.yml')
for key, value in config.items(): for key, value in config.items():
@ -15,3 +16,10 @@ def get_parameters():
else: else:
parameters[key] = value parameters[key] = value
return parameters return parameters
def get_unix_timestamp_after_days(days: int) -> int:
return int((datetime.datetime.now() + datetime.timedelta(days=days)).timestamp()) if days != 0 else 0
def get_uts(timestamp: int) -> int:
return datetime.datetime.utcfromtimestamp(timestamp)