Code Monkey home page Code Monkey logo

autodeletebot's People

Contributors

aletson avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

psychokillar

autodeletebot's Issues

"first run" for new channels

Add channel with "first_run_done" = 0. Run a first delete run on it separately (see #1), and then update to 1. Then only run the main loop on anything that's had the first run done.

Would better support adding channels with a very long message history.

actual error handling

this probably processed okay feels shitposty which i know is the point but whatever

dont judge me

do better async/parallelization of api queries so this doesnt take forever to run

function messageDelete(message, channel, channelObj) {
    if (message[1].createdTimestamp < (Date.now() - (channel.minutes * 60 * 1000)) && message[1].pinned == false) { // milliseconds elapsed
        channelObj.messages.delete(message[1].id);
    }
}
setInterval(async function () {
    var channels = await connection.promise().query('select * from channels where enabled = 1');
    if (channels[0].length > 0) {
        for (const channel of channels[0]) {
                let channelObj = await client.channels.cache.get(channel.id);
                let message = await channelObj.messages.fetch({ limit: 1 });
                if (message) {
                    let messages = await channelObj.messages.fetch({ limit: 100, before: message.id });
                }
                while (message) {
                    if (messages.size > 0) {
                        message = messages.at(message.size - 1);
                        let thisDeleteBatch = messages.map(message => messageDelete(message, channel, channelObj));
                        let results = await Promise.all(thisDeleteBatch);
                        let messages = await channelObj.messages.fetch({ limit: 100, before: message.id });
                        if( messages.size > 0) {
                            message = null;
                        }
                    } else {
                        message = null;
                    }
                }
        }
    }
}, 600000);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.