コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
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)