mirror of
https://github.com/ION606/selmerBot.git
synced 2026-05-14 21:26:54 +00:00
Added the chat AI feature (limited) and added Stripe payment integration
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
// EVERYTHING IN THIS FILE SHOULD BE ABLE TO RUN INDEPENDANTLY OF THE BOT
|
||||
|
||||
|
||||
const Stripe = require('stripe');
|
||||
const APIKey = process.env.APIKey // require('./config.json').APIKey;
|
||||
const stripe = Stripe(APIKey);
|
||||
const mongouri = process.env.APIKey // require('./config.json').mongooseURI;
|
||||
const { MongoClient, ServerApiVersion } = require('mongodb');
|
||||
|
||||
|
||||
function cleardb(db) {
|
||||
//Triggers about a week before the end of the month and clears out all the "spam" entries
|
||||
const client = new MongoClient(mongouri, { useNewUrlParser: true, useUnifiedTopology: true, serverApi: ServerApiVersion.v1 });
|
||||
new Promise(async function(resolve, reject) {
|
||||
client.connect(async (err) => {
|
||||
const dbo = client.db('main').collection(db);
|
||||
dbo.find({paid: false, tier: 0}).toArray((err, docs) => {
|
||||
if (err) { return console.log(err); }
|
||||
|
||||
if (docs[0] != undefined) {
|
||||
//Add them all to an array and resolve because deleting in a find() causes cyclic dependancies
|
||||
resolve(docs);
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
});
|
||||
});
|
||||
}).then((docs) => {
|
||||
const dbo = client.db('main').collection(db);
|
||||
const d = new Date().toUTCString();
|
||||
|
||||
//Keep track of what was collected (chack later?)
|
||||
var newObj = {db: db, date: d, count: 0, results: []};
|
||||
|
||||
docs.forEach(i => {
|
||||
//{discord id, stripe id}
|
||||
newObj.results.push({did: i.discordID, sid: i.stripeID});
|
||||
newObj.count ++;
|
||||
|
||||
try {
|
||||
//For some reason, these aren't deleted in Stripe, just archived so they can't do anything new
|
||||
//See https://stripe.com/docs/api/customers/delete
|
||||
stripe.customers.del(i.stripeID);
|
||||
} catch (err) { console.log("err"); }
|
||||
});
|
||||
|
||||
dbo.deleteMany({paid: false, tier: 0});
|
||||
|
||||
//Add the newObj to another collection (ordered by date?)
|
||||
const spam_coll = client.db('main').collection("spam_collection_results");
|
||||
|
||||
spam_coll.insertOne(newObj);
|
||||
}).catch((err) => { console.log('none'); });
|
||||
|
||||
client.close();
|
||||
}
|
||||
|
||||
module.exports = { cleardb }
|
||||
|
||||
//Does not include the day check, see the "selmer-bot-listener" app for that
|
||||
Reference in New Issue
Block a user