master #50
@@ -1,5 +1,6 @@
 | 
			
		||||
import { promises as fs } from "fs";
 | 
			
		||||
import db from "../sql.mjs";
 | 
			
		||||
import { getLevel } from "../../inc/admin.mjs";
 | 
			
		||||
 | 
			
		||||
export default async bot => {
 | 
			
		||||
 | 
			
		||||
@@ -7,22 +8,42 @@ export default async bot => {
 | 
			
		||||
    name: "delete",
 | 
			
		||||
    call: /^\!(del|rm) .*/i,
 | 
			
		||||
    active: true,
 | 
			
		||||
    level: 100,
 | 
			
		||||
    f: async e => {
 | 
			
		||||
      const ret = (await Promise.all(e.args.map(async id => {
 | 
			
		||||
      let deleted = [];
 | 
			
		||||
 | 
			
		||||
      for(let id of e.args) {
 | 
			
		||||
        id = +id;
 | 
			
		||||
        if(id <= 0)
 | 
			
		||||
          return false;
 | 
			
		||||
 | 
			
		||||
          continue;
 | 
			
		||||
        
 | 
			
		||||
        const f0ck = await db`
 | 
			
		||||
          select dest
 | 
			
		||||
          select dest, username, userchannel, usernetwork
 | 
			
		||||
          from "items"
 | 
			
		||||
          where id = ${+id}
 | 
			
		||||
          where id = ${id}
 | 
			
		||||
          limit 1
 | 
			
		||||
        `;
 | 
			
		||||
        if(f0ck.length === 0)
 | 
			
		||||
          return false;
 | 
			
		||||
        const level = getLevel(e.user).level;
 | 
			
		||||
 | 
			
		||||
        if(f0ck.length === 0) {
 | 
			
		||||
          e.reply(`f0ck ${id}: f0ck not found`);
 | 
			
		||||
          continue;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        if(
 | 
			
		||||
          (f0ck[0].username !== (e.user.nick || e.user.username) ||
 | 
			
		||||
          f0ck[0].userchannel !== e.channel ||
 | 
			
		||||
          f0ck[0].usernetwork !== e.network) &&
 | 
			
		||||
          level < 100
 | 
			
		||||
        ) {
 | 
			
		||||
          e.reply(`f0ck ${id}: insufficient permissions`);
 | 
			
		||||
          continue;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if(~~(new Date() / 1e3) >= (f0ck[0].stamp + 600) && level < 100) {
 | 
			
		||||
          e.reply(`f0ck ${id}: too late lol`);
 | 
			
		||||
          continue;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        await fs.unlink(`./public/b/${f0ck[0].dest}`).catch(_=>{});
 | 
			
		||||
        await fs.unlink(`./public/t/${id}`).catch(_=>{});
 | 
			
		||||
 | 
			
		||||
@@ -31,13 +52,10 @@ export default async bot => {
 | 
			
		||||
          where id = ${+id}
 | 
			
		||||
        `;
 | 
			
		||||
 | 
			
		||||
        return id;
 | 
			
		||||
      }))).filter(d => d);
 | 
			
		||||
      
 | 
			
		||||
      if(ret.length > 0)
 | 
			
		||||
        e.reply(`deleted ${ret.length}/${e.args.length} (${ret.join(",")}) f0cks`);
 | 
			
		||||
      else
 | 
			
		||||
        e.reply(`oof`);
 | 
			
		||||
        deleted.push(id);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      e.reply(`deleted ${deleted.length}/${e.args.length} f0cks (${deleted.join(",")})`);
 | 
			
		||||
    }
 | 
			
		||||
  }]
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user