async def deposit(ctx, user: discord.User = None): """ PMs your deposit information for the tipjar """ err_embed = discord.Embed(title=":x:Error:x:", colour=discord.Colour(0xf44242)) good_embed = discord.Embed(title="Your Tipjar Info") exists = session.query(Wallet).filter( Wallet.userid == ctx.message.author.id).first() tipjar_addr = rpc.getAddresses()['addresses'][0] if exists: pid = gen_paymentid(exists.address) good_embed.description = "Deposit {} to start tipping! ```transfer 3 {} <amount> -p {}```".format( config['symbol'], tipjar_addr, pid) balance = session.query(TipJar).filter(TipJar.paymentid == pid).first() if not balance: t = TipJar(pid, ctx.message.author.id, 0) session.add(t) session.commit() await client.send_message(ctx.message.author, embed=good_embed) else: err_embed.description = "You haven't registered a wallet!" err_embed.add_field( name="Help", value="Use `{}registerwallet <addr>` before trying to tip!".format( config['prefix'])) await client.say(embed=err_embed)
async def registerwallet(ctx, address): """ Register your wallet in the DB """ address = address.strip() err_embed = discord.Embed(title=":x:Error:x:", colour=discord.Colour(0xf44242)) good_embed = discord.Embed(title="{}'s Wallet".format( ctx.message.author.name), colour=discord.Colour(0xD4AF37)) if address is None: err_embed.description = "Please provide an address" await client.send_message(ctx.message.author, embed=err_embed) return exists = session.query(Wallet).filter( Wallet.userid == ctx.message.author.id).first() addr_exists = session.query(Wallet).filter( Wallet.address == address).first() if exists: good_embed.title = "Your wallet exists!".format(exists.address) good_embed.description = "```{}``` use `{}updatewallet <addr>` to change".format( exists.address, config['prefix']) await client.send_message(ctx.message.author, embed=good_embed) return if addr_exists: err_embed.description = "Address already registered by another user!" await client.send_message(ctx.message.author, embed=err_embed) return elif not exists and len(address) == config['addrLength']: w = Wallet(address, ctx.message.author.id, ctx.message.id) session.add(w) session.commit() good_embed.title = "Successfully registered your wallet" good_embed.description = "```{}```".format(address) await client.send_message(ctx.message.author, embed=good_embed) pid = gen_paymentid(address) balance = session.query(TipJar).filter(TipJar.paymentid == pid).first() if not balance: t = TipJar(pid, ctx.message.author.id, 0) session.add(t) else: balance.paymentid = pid session.commit() tipjar_addr = rpc.getAddresses()['addresses'][0] good_embed.title = "Your Tipjar Info" good_embed.description = "Deposit {} to start tipping! ```transfer 3 {} <amount> -p {}```".format( config['symbol'], tipjar_addr, pid) balance = session.query(TipJar).filter(TipJar.paymentid == pid).first() await client.send_message(ctx.message.author, embed=good_embed) return elif len(address) > config['addrLength']: err_embed.description = "Your wallet must be {} characeters long, your entry was too long".format( config['addrLength']) elif len(address) < config['addrLength']: err_embed.description = "Your wallet must be {} characeters long, your entry was too short".format( config['addrLength']) await client.say(embed=err_embed)
async def updatewallet(ctx, address): """ Updates your wallet address """ err_embed = discord.Embed(title=":x:Error:x:", colour=discord.Colour(0xf44242)) if address == None: err_embed.description = "Please provide an address!" await client.send_message(ctx.message.author, embed=err_embed) return address = address.strip() good_embed = discord.Embed(title="{}'s Updated Wallet".format( ctx.message.author.name), colour=discord.Colour(0xD4AF37)) exists = session.query(Wallet).filter( Wallet.userid == ctx.message.author.id).first() if not exists: err_embed.description = "You haven't registered a wallet!" addr_exists = session.query(Wallet).filter( Wallet.address == address).first() if addr_exists: err_embed.description = "Address already registered by another user!" await client.send_message(ctx.message.author, embed=err_embed) return elif exists and len(address) == config['addrLength']: old_pid = gen_paymentid(exists.address) old_balance = session.query(TipJar).filter( TipJar.paymentid == old_pid).first() exists.address = address pid = gen_paymentid(address) old_balance.paymentid = pid good_embed.title = "Successfully updated your wallet" good_embed.description = "```{}```".format(address) session.commit() await client.send_message(ctx.message.author, embed=good_embed) tipjar_addr = rpc.getAddresses()['addresses'][0] good_embed.title = "Your Tipjar Info" good_embed.description = "Deposit {} to start tipping! ```transfer 3 {} <amount> -p {}```".format( config['symbol'], tipjar_addr, pid) await client.send_message(ctx.message.author, embed=good_embed) good_embed.title = "Balance Update" good_embed.url = "" good_embed.description = "New Balance: `{:0,.2f}` {1}".format( old_balance.amount / config['units'], config['symbol']) await client.send_message(ctx.message.author, embed=good_embed) return elif len(address) > config['addrLength']: err_embed.description = "Your wallet must be {} characeters long, your entry was too long".format( config['addrLength']) elif len(address) < config['addrLength']: err_embed.description = "Your wallet must be {} characeters long, your entry was too short".format( config['addrLength']) await client.say(embed=err_embed)