* Implement Titan Tokens clientside

* Titan Tokens can be modified in the admin panel
This commit is contained in:
Jeremy "EndenDragon" Zhang
2017-08-13 18:10:03 -07:00
committed by GitHub
parent d363b66799
commit 8bc95f7b0e
16 changed files with 618 additions and 10 deletions

View File

@ -11,4 +11,25 @@ from keyvalue_properties import KeyValueProperties, set_keyvalproperty, get_keyv
from messages import Messages, get_channel_messages
from cosmetics import Cosmetics
from user_css import UserCSS
from administrators import Administrators, get_administrators_list
from administrators import Administrators, get_administrators_list
from titan_tokens import TitanTokens, get_titan_token
from token_transactions import TokenTransactions
def set_titan_token(user_id, amt_change, action):
token_count = get_titan_token(user_id)
if token_count >= 0:
token_usr = db.session.query(TitanTokens).filter(TitanTokens.user_id == user_id).first()
else:
token_count = 0
token_usr = TitanTokens(user_id, 0)
db.session.add(token_usr)
db.session.commit()
new_token_count = token_count + amt_change
if new_token_count < 0:
return False
transact = TokenTransactions(user_id, action, amt_change, token_count, new_token_count)
db.session.add(transact)
token_usr.tokens = new_token_count
db.session.add(token_usr)
db.session.commit()
return True

View File

@ -0,0 +1,18 @@
from titanembeds.database import db
class TitanTokens(db.Model):
__tablename__ = "titan_tokens"
id = db.Column(db.Integer, primary_key=True) # Auto increment id
user_id = db.Column(db.String(255), nullable=False) # Discord user id of user
tokens = db.Column(db.Integer, nullable=False, default=0) # Token amount
def __init__(self, user_id, tokens):
self.user_id = user_id
self.tokens = tokens
def get_titan_token(user_id):
q = db.session.query(TitanTokens).filter(TitanTokens.user_id == user_id).first()
if q:
return q.tokens
else:
return -1

View File

@ -0,0 +1,21 @@
from titanembeds.database import db
import datetime
import time
class TokenTransactions(db.Model):
__tablename__ = "token_transactions"
id = db.Column(db.Integer, primary_key=True) # Auto increment id
user_id = db.Column(db.String(255), nullable=False) # Discord user id of user
timestamp = db.Column(db.TIMESTAMP, nullable=False) # The timestamp of when the action took place
action = db.Column(db.String(255), nullable=False) # Very short description of the action
net_tokens = db.Column(db.Integer, nullable=False) # Net change of the token amount
start_tokens = db.Column(db.Integer, nullable=False) # Token amount before transaction
end_tokens = db.Column(db.Integer, nullable=False) # Tokens after transaction
def __init__(self, user_id, action, net_tokens, start_tokens, end_tokens):
self.user_id = user_id
self.timestamp = datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')
self.action = action
self.net_tokens = net_tokens
self.start_tokens = start_tokens
self.end_tokens = end_tokens