WIP: Custom channels

This commit is contained in:
2023-05-04 16:09:47 +02:00
parent 86de0dc6aa
commit b8cc18041e
7 changed files with 381 additions and 2 deletions

30
modules/database.py Normal file
View File

@@ -0,0 +1,30 @@
from pymongo import MongoClient
from ujson import loads
with open("config.json", "r", encoding="utf-8") as f:
db_config = loads(f.read())["database"]
f.close()
db_client = MongoClient(
'mongodb://{0}:{1}@{2}:{3}/{4}'.format(
db_config["user"],
db_config["password"],
db_config["host"],
db_config["port"],
db_config["name"]
)
)
db = db_client.get_database(name=db_config["name"])
collections = db.list_collection_names()
for collection in ["users", "warnings", "scheduler"]:
if not collection in collections:
db.create_collection(collection)
col_users = db.get_collection("users")
col_warnings = db.get_collection("warnings")
# col_checkouts = db.get_collection("checkouts")
# col_trackings = db.get_collection("trackings")
# col_authorized = db.get_collection("authorized")
# col_transactions = db.get_collection("transactions")

View File

@@ -1,6 +1,7 @@
from typing import Any
import aiofiles
from ujson import loads, dumps
from ujson import dumps, loads
async def json_read(path: str) -> Any:

42
modules/utils_sync.py Normal file
View File

@@ -0,0 +1,42 @@
from typing import Any
from discord import Member
from ujson import dumps, loads
def json_read_sync(path: str) -> Any:
with open(path, mode="r", encoding="utf-8") as f:
data = f.read()
return loads(data)
def json_write_sync(data: Any, path: str) -> None:
with open(path, mode="w", encoding="utf-8") as f:
f.write(dumps(data, ensure_ascii=False, escape_forward_slashes=False))
def config_get_sync(key: str, *path: str) -> Any:
this_key = json_read_sync("config.json")
for dict_key in path:
this_key = this_key[dict_key]
return this_key[key]
def config_set_sync(key: str, value: Any, *path: str) -> None:
this_dict = json_read_sync("config.json")
string = "this_dict"
for arg in path:
string += f'["{arg}"]'
if type(value) in [str]:
string += f'["{key}"] = "{value}"'
else:
string += f'["{key}"] = {value}'
exec(string)
json_write_sync(this_dict, "config.json")
return
def guild_name(member: Member):
if member.nick == None:
return member.name
else:
return member.nick