Skip to main content

A simple database which uses a Discord channel to store data.

Project description

DiscordDBPlus

Documentation Status

A simple database which uses a Discord channel to store data. This is a fork from thec0sm0s's DiscordDB. This version aims to be more flexible.

Features

  • Sending multiple data packs at the same time
  • Edit a data entry from a message id.
  • searches data fields into multiple channels and multiple messages

Installation

To install current latest release you can use following command:

python3 -m pip install DiscordDBPlus

Basic Example

from discordDBPlus import DiscordDB
from discord.ext import commands


LOGS = []


class MyBot(commands.Bot):

    def __init__(self):
        super().__init__(command_prefix="!")
        self.discordDB = DiscordDB(self) # You need to give the bot object to the DiscordDB instance

    @commands.command()
    async def log(self, ctx, *, text):
        data = {
            "name": ctx.author.name,
            "text": text
        }
        _id = await self.discordDB.save(data, id of a channel:int)
        LOGS.append(_id)

    @commands.command()
    async def show_logs(self, ctx):
        for _id in LOGS:
            data = await self.discordDB.get(_id, id of a channel:int)
            await ctx.send(f"Name: {data.name}, Text: {data.text}")

    @commands.command()
    async def edit_data(self, ctx, id):
        _id = int(id)
        data = await DB.get(_id, id of a channel:int)
        data.name = "example modification"
        data.textEdited = "Edited text"
        await DB.edit(data, _id, id of a channel:int)

    @commands.command()
    async def get_one_field(self, ctx):
        for _id in LOGS:
          data = await self.discordDB.getf(_id, "A field", id of a channel:int)
          await ctx.send(f"Text: {data.content}")


bot = MyBot()
bot.run("TOKEN")

If you wish to save the LOGS to be able to recover them after the bot closed, you can consider put it in a file using json or some file managment system.

Since the 0.0.8 version, the initial declaration of the instance of DiscordDB don't take a channel id argument anymore. Instead, to have more flexibility, you need to give the channel id inside the arguments of the command you want to use.

Requirements

  • discord.py

Documentation

Head over to documentation for full API reference.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

DiscordDBPlus-0.0.9.tar.gz (4.5 kB view hashes)

Uploaded Source

Built Distribution

DiscordDBPlus-0.0.9-py3-none-any.whl (6.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page