circles/modules/stonks.py

94 lines
2.8 KiB
Python

# load me
import json
def loadJson(self):
try:
with open('modules/stonks.json') as json_file:
data = json.load(json_file)
self.stonksData = data
except FileNotFoundError:
print('not found')
def writeJson(self):
with open('modules/stonks.json', 'w') as outfile:
json.dump(self.stonksData, outfile)
def createToken(self, c, n, m):
if ''.join(m) in self.stonksData:
self.say(c, 'that token already exists')
else:
m = ''.join(m)
self.stonksData[m] = {n: 100000}
self.say(c, 'token {} created!'.format(m))
def sendToken(self, c, n, m):
if self.stonksData[m[2]][n] - float(m[1]) >= 0 and float(m[1]) > 0:
try:
self.stonksData[m[2]][m[0]] += float(m[1])
except:
self.stonksData[m[2]][m[0]] = float(m[1])
self.stonksData[m[2]][n] += 0 - float(m[1])
self.say(c, 'sent!')
else:
self.say(c, 'invalid amount dummy thicc')
def listTokens(self, c, n, m):
self.say(c, 'the tokens that exist are '+' '.join(list(self.stonksData.keys())))
def nuke(self, c, n, m):
t = m.pop(0)
if self.stonksData[t][n] == 100000:
self.stonksData.pop(t)
self.say(c, 'removed token {}!'.format(t))
else:
self.say(c, 'you must own all of the token to delete it.')
def tokenBal(self, c, n, m):
if len(m) == 1:
try:
if m[0] == '*':
a=''
for i in [s for s in self.stonksData if n in self.stonksData[s]]:
a = a + "{}: {}, ".format(i, self.stonksData[i][n])
self.say(c, 'All your balances: {}'.format(a[:-2]))
return
self.say(c, "your balance of {} is {}.".format(m[0], self.stonksData[m[0]][n]))
except:
self.say(c, 'you have no {}.'.format(m[0]))
else:
try:
self.say(c, "{}'s balance of {} is {}.".format(m[0], m[1], self.stonksData[m[1]][m[0]]))
except:
self.say(c, '{} has no {}.'.format(m[0], m[1]))
cmds = {
"create": createToken,
"send": sendToken,
"tip": sendToken,
"tokens": listTokens,
"bal": tokenBal,
"balance": tokenBal,
"nuke": nuke
}
def parseCommand(self, c,n,m):
m = m.split()
m.pop(0)
cmd = m.pop(0)
if cmd in cmds:
loadJson(self)
cmds[cmd](self, c, n, m)
writeJson(self)
else:
self.say(c,'availible options are create <token>, send <recp> <amount> <token>, tokens, balance [user] <token>')
def init(self):
self.registerCommand('stonks', parseCommand)
self.registerCommand('stoinks', parseCommand)
self.registerCommand('stonk', parseCommand)
self.registerCommand('stocks', parseCommand)
self.registerHelp('stonks', 'stonks - fake cryptocurrency without a blockchain, do {}stonks help for syntax'.format(self.prefix))