Skip to content

cramt/db-discord

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

db-discord

db-discord is a library that uses discord guilds and text channels as databases. db-discord relies on discord.js

examble on how to use db-discord in typescript

import { discordDB, login } from "db-discord";

//this interface defines the structure of the objects that the table handles
interface thing {
    name: string;
}

//we start a function thats async so we can await stuff
(async () => {
    //login to discord
    let client = await login(TOKEN);
    //find whatever guild you want
    let guild = client.guilds.array()[0];
    //init the db with set guild
    //this will create a metatable in the guild
    let db = await discordDB.init(guild)
    //get or create the new table
    //this example uses short tables which is the simples type of table to use
    //a short table uses discord messages to store data, which mean fast and easy to search through, but only 2000 characters per message
    let hello_there = db.getOrCreateShortTable<thing>("hello_there")
    //we write a new entry to the table
    let id = await hello_there.write({ name: "test" })
    //here we get the entry based on the id and log it
    hello_there.get(id).then(console.log)
    //we can also search for the entry
    let result = await shortTable.search({
        searchObject: {
            name: "test"
        },
    });
    //and log it
    console.log(result[0].Value)
    //the search can also be filtered using regex
    let result = await shortTable.search({
        searchObject: {
            name: "test"
        },
        regexChecker: {
            name: /t.st/gm
        }
    });
    //the search can also be modifed during the search or cut of early if the desired entry is found
    let result = await shortTable.search({
        searchObject: {
            name: "test"
        },
        //if this callback function returns false, the search will stop and all entries will be returned
        //basically think of it as a "i only want x amounts of objects that has this very specific property, and no more than that" method
        //can also be used to just find the first property
        //can also be used to change the properties of the entries thats gonna be returned mid-search
        callback(obj) {
            return !(obj.name === "test")
        }
    });
})()

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published