Add user cards and badges, Closes #25

This commit is contained in:
Jeremy Zhang
2017-12-07 06:49:32 +00:00
parent 3af5dc703a
commit 204858d011
12 changed files with 293 additions and 10 deletions

View File

@ -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

View File

@ -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)