cache command
This commit is contained in:
parent
bd825c5104
commit
e1b16065b0
1 changed files with 75 additions and 0 deletions
75
src/modules/utility/cache.js
Normal file
75
src/modules/utility/cache.js
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
const {readFile} = require("node:fs/promises");
|
||||||
|
|
||||||
|
const Command = require("#lib/command.js");
|
||||||
|
|
||||||
|
const {APIEndpoints} = require("#util/dconstants.js");
|
||||||
|
const {Icons} = require("#util/constants.js");
|
||||||
|
|
||||||
|
const cache = new Command("cache");
|
||||||
|
cache.category = "utility";
|
||||||
|
cache.helpText = "Cache a user to your client from their ID";
|
||||||
|
cache.usage = "<user id>";
|
||||||
|
cache.callback = async function (msg, id) {
|
||||||
|
if (id == msg.author?.id ?? msg.user?.id) return "Can't cache yourself.";
|
||||||
|
|
||||||
|
try {
|
||||||
|
await hf.bot.requestHandler.request("GET", APIEndpoints.USER(id), true);
|
||||||
|
} catch (err) {
|
||||||
|
if (err.code == 10013) {
|
||||||
|
return "User not found.";
|
||||||
|
} else {
|
||||||
|
return `${Icons.silk.error} Failed to validate user exists:\n\`\`\`\n${err}\`\`\``;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let member;
|
||||||
|
if (msg.guildID) {
|
||||||
|
const guild = msg.channel.guild ?? hf.bot.guilds.get(msg.guildID);
|
||||||
|
member = guild?.members?.get(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (member != null) {
|
||||||
|
return `"Cached" <@${id}>\n-# User is in this server silly`;
|
||||||
|
}
|
||||||
|
|
||||||
|
const attachments = [];
|
||||||
|
|
||||||
|
try {
|
||||||
|
const clip = {
|
||||||
|
is_clip: true,
|
||||||
|
clip_created_at: new Date().toISOString(),
|
||||||
|
clip_participant_ids: [id],
|
||||||
|
application_id: hf.bot.application?.id,
|
||||||
|
};
|
||||||
|
|
||||||
|
const video = await readFile(require.resolve("#root/data/clip.mp4"));
|
||||||
|
|
||||||
|
const {upload_url, upload_filename} = await hf.bot.requestHandler
|
||||||
|
.request("POST", APIEndpoints.MESSAGE_CREATE_ATTACHMENT_UPLOAD(msg.channel.id), true, {
|
||||||
|
files: [
|
||||||
|
{
|
||||||
|
file_size: video.length,
|
||||||
|
filename: "clip.mp4",
|
||||||
|
...clip,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
.then((res) => res.attachments[0]);
|
||||||
|
|
||||||
|
await fetch(upload_url, {method: "PUT", body: video});
|
||||||
|
|
||||||
|
attachments.push({
|
||||||
|
filename: "clip.mp4",
|
||||||
|
uploaded_filename: upload_filename,
|
||||||
|
is_thumbnail: true,
|
||||||
|
...clip,
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
return `${Icons.silk.error} Failed to create clip for caching:\n\`\`\`\n${err}\`\`\``;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
content: `Cached <@${id}>`,
|
||||||
|
attachments,
|
||||||
|
};
|
||||||
|
};
|
||||||
Loading…
Add table
Add a link
Reference in a new issue