mirror of
https://github.com/believethehype/nostrdvm.git
synced 2025-03-30 04:11:42 +02:00
77 lines
2.6 KiB
Python
77 lines
2.6 KiB
Python
# ADMINISTRARIVE DB MANAGEMENT
|
|
import time
|
|
|
|
from nostr_sdk import Keys, EventBuilder, PublicKey
|
|
|
|
from utils.database_utils import get_from_sql_table, list_db, delete_from_sql_table, update_sql_table, \
|
|
get_or_add_user, clean_db
|
|
from utils.dvmconfig import DVMConfig
|
|
from utils.nip89_utils import nip89_announce_tasks
|
|
from utils.nostr_utils import send_event
|
|
|
|
class AdminConfig:
|
|
REBROADCASTNIP89: bool = False
|
|
WHITELISTUSER: bool = False
|
|
UNWHITELISTUSER: bool = False
|
|
BLACKLISTUSER: bool = False
|
|
DELETEUSER: bool = False
|
|
LISTDATABASE: bool = False
|
|
ClEANDB: bool = False
|
|
USERNPUB: str = ""
|
|
|
|
def admin_make_database_updates(adminconfig: AdminConfig = None, dvmconfig: DVMConfig = None, client=None):
|
|
# This is called on start of Server, Admin function to manually whitelist/blacklist/add balance/delete users
|
|
if adminconfig is None or dvmconfig is None:
|
|
return
|
|
|
|
if not isinstance(adminconfig, AdminConfig):
|
|
return
|
|
|
|
if ((adminconfig.WHITELISTUSER is True or adminconfig.UNWHITELISTUSER is True or adminconfig.BLACKLISTUSER is True or adminconfig.DELETEUSER is True)
|
|
and adminconfig.USERNPUB == ""):
|
|
return
|
|
|
|
|
|
db = dvmconfig.DB
|
|
|
|
rebroadcast_nip89 = adminconfig.REBROADCASTNIP89
|
|
cleandb = adminconfig.ClEANDB
|
|
listdatabase = adminconfig.LISTDATABASE
|
|
deleteuser = adminconfig.DELETEUSER
|
|
whitelistuser = adminconfig.WHITELISTUSER
|
|
unwhitelistuser = adminconfig.UNWHITELISTUSER
|
|
blacklistuser = adminconfig.BLACKLISTUSER
|
|
|
|
if adminconfig.USERNPUB != "":
|
|
if str(adminconfig.USERNPUB).startswith("npub"):
|
|
publickey = PublicKey.from_bech32(adminconfig.USERNPUB).to_hex()
|
|
else:
|
|
publickey = adminconfig.USERNPUB
|
|
|
|
|
|
if whitelistuser:
|
|
user = get_or_add_user(db, publickey, client=client)
|
|
update_sql_table(db, user.npub, user.balance, True, False, user.nip05, user.lud16, user.name, user.lastactive)
|
|
user = get_from_sql_table(db, publickey)
|
|
print(str(user.name) + " is whitelisted: " + str(user.iswhitelisted))
|
|
|
|
if unwhitelistuser:
|
|
user = get_from_sql_table(db, publickey)
|
|
update_sql_table(db, user.npub, user.balance, False, False, user.nip05, user.lud16, user.name, user.lastactive)
|
|
|
|
if blacklistuser:
|
|
user = get_from_sql_table(db, publickey)
|
|
update_sql_table(db, user.npub, user.balance, False, True, user.nip05, user.lud16, user.name, user.lastactive)
|
|
|
|
if deleteuser:
|
|
delete_from_sql_table(db, publickey)
|
|
|
|
if cleandb:
|
|
clean_db(db)
|
|
|
|
if listdatabase:
|
|
list_db(db)
|
|
|
|
if rebroadcast_nip89:
|
|
nip89_announce_tasks(dvmconfig, client=client)
|