mirror of
https://github.com/TitanEmbeds/Titan.git
synced 2025-06-16 19:35:24 +02:00
Add user cards and badges, Closes #25
This commit is contained in:
@ -9,7 +9,7 @@ from .authenticated_users import AuthenticatedUsers
|
||||
from .guild_members import GuildMembers, list_all_guild_members, get_guild_member
|
||||
from .keyvalue_properties import KeyValueProperties, set_keyvalproperty, get_keyvalproperty, getexpir_keyvalproperty, setexpir_keyvalproperty, ifexists_keyvalproperty, delete_keyvalproperty
|
||||
from .messages import Messages, get_channel_messages
|
||||
from .cosmetics import Cosmetics
|
||||
from .cosmetics import Cosmetics, set_badges, get_badges, add_badge, remove_badge
|
||||
from .user_css import UserCSS
|
||||
from .administrators import Administrators, get_administrators_list
|
||||
from .titan_tokens import TitanTokens, get_titan_token
|
||||
|
@ -1,4 +1,5 @@
|
||||
from titanembeds.database import db
|
||||
import json
|
||||
|
||||
class Cosmetics(db.Model):
|
||||
__tablename__ = "cosmetics"
|
||||
@ -7,6 +8,7 @@ class Cosmetics(db.Model):
|
||||
css = db.Column(db.Boolean(), nullable=False) # If they can create/edit custom CSS
|
||||
css_limit = db.Column(db.Integer, nullable=False, server_default="0") # Custom CSS Limit
|
||||
guest_icon = db.Column(db.Boolean(), nullable=False, server_default=db.false()) # If they can set the guest icon for all guilds
|
||||
badges = db.Column(db.String(255), nullable=False, server_default="[]") # JSON list of all the badges the user has
|
||||
|
||||
def __init__(self, user_id, **kwargs):
|
||||
self.user_id = user_id
|
||||
@ -24,4 +26,35 @@ class Cosmetics(db.Model):
|
||||
if "guest_icon" in kwargs:
|
||||
self.guest_icon = kwargs["guest_icon"]
|
||||
else:
|
||||
self.guest_icon = False
|
||||
self.guest_icon = False
|
||||
|
||||
if "badges" in kwargs:
|
||||
self.badges = json.dumps(kwargs["badges"])
|
||||
else:
|
||||
self.badges = "[]"
|
||||
|
||||
def set_badges(user_id, badges):
|
||||
usr = db.session.query(Cosmetics).filter(Cosmetics.user_id == user_id).first()
|
||||
if not usr:
|
||||
usr = Cosmetics(user_id)
|
||||
usr.badges = json.dumps(badges)
|
||||
db.session.add(usr)
|
||||
db.session.commit()
|
||||
|
||||
def get_badges(user_id):
|
||||
usr = db.session.query(Cosmetics).filter(Cosmetics.user_id == user_id).first()
|
||||
if usr:
|
||||
return json.loads(usr.badges)
|
||||
return []
|
||||
|
||||
def add_badge(user_id, name):
|
||||
bgs = get_badges(user_id)
|
||||
if name not in bgs:
|
||||
bgs.append(name)
|
||||
set_badges(user_id, bgs)
|
||||
|
||||
def remove_badge(user_id, name):
|
||||
bgs = get_badges(user_id)
|
||||
if name in bgs:
|
||||
bgs.remove(name)
|
||||
set_badges(user_id, bgs)
|
Reference in New Issue
Block a user