Compare commits
8 commits
b0397fff78
...
f82ff3d380
Author | SHA1 | Date | |
---|---|---|---|
f82ff3d380 | |||
9765680f1c | |||
a73fd2b893 | |||
4846604fdf | |||
63162ebe6d | |||
738b5bb4ff | |||
5f6cd0ea9e | |||
88a8bff37d |
11 changed files with 337 additions and 12 deletions
BIN
asset/ytp/error1.mp4
Normal file
BIN
asset/ytp/error1.mp4
Normal file
Binary file not shown.
BIN
asset/ytp/error2.mp4
Normal file
BIN
asset/ytp/error2.mp4
Normal file
Binary file not shown.
BIN
asset/ytp/intro.mp4
Normal file
BIN
asset/ytp/intro.mp4
Normal file
Binary file not shown.
BIN
asset/ytp/outro.mp4
Normal file
BIN
asset/ytp/outro.mp4
Normal file
Binary file not shown.
0
asset/ytp/userVid/Video for ytp command goes here
Normal file
0
asset/ytp/userVid/Video for ytp command goes here
Normal file
90
commands/fun/ytp.js
Normal file
90
commands/fun/ytp.js
Normal file
|
@ -0,0 +1,90 @@
|
|||
import { SlashCommandBuilder } from 'discord.js';
|
||||
import fs from 'node:fs';
|
||||
import os from 'node:os';
|
||||
import YTPGenerator from 'ytpplus-node';
|
||||
|
||||
const { prefix } = process.env;
|
||||
const prefixs = prefix.split(',');
|
||||
|
||||
export default {
|
||||
data: new SlashCommandBuilder()
|
||||
.setName('ytp')
|
||||
.setDescription('Generate a YTP')
|
||||
.addBooleanOption(option =>
|
||||
option.setName('force')
|
||||
.setDescription('Force the generation of the video in non-nsfw channel.')
|
||||
.setRequired(false)),
|
||||
category: 'fun',
|
||||
async execute(interaction, args) {
|
||||
if (!interaction.channel.nsfw && !args[0]) return interaction.reply(`Please execute this command in an NSFW channel ( Content might not be NSFW but since the video are user submitted better safe than sorry ) OR do \`\`${prefixs[0]}ytp --force\`\` to make the command work outside of nsfw channel BE AWARE THAT IT WON'T CHANGE THE FINAL RESULT SO NSFW CAN STILL HAPPEN`);
|
||||
|
||||
// Read userVid folder and select random vid and only take .mp4
|
||||
const mp4 = [];
|
||||
const asset = [];
|
||||
// Count number of total vid
|
||||
fs.readdirSync('./asset/ytp/userVid/').forEach(file => {
|
||||
if (file.endsWith('mp4')) {
|
||||
mp4.push(file);
|
||||
}
|
||||
});
|
||||
const MAX_CLIPS = 20;
|
||||
// Select random vid depending on the amount of MAX_CLIPS
|
||||
for (let i = 0; i < MAX_CLIPS; i++) {
|
||||
const random = Math.floor(Math.random() * mp4.length);
|
||||
const vid = `./asset/ytp/userVid/${mp4[random]}`;
|
||||
if (mp4[random].endsWith('mp4')) {
|
||||
if (!asset.includes(vid)) {
|
||||
asset.push(vid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const loadingmsg = await interaction.reply(`Processing, this can take a ***long*** time, i'll ping you when i finished <a:loadingmin:527579785212329984>\nSome info: There are currently ${mp4.length} videos.\nLike ytp? Why not check out https://ytp.namejeff.xyz/`);
|
||||
|
||||
const options = {
|
||||
debug: false,
|
||||
MAX_STREAM_DURATION: Math.floor((Math.random() * 3) + 1),
|
||||
sources: './asset/ytp/sources/',
|
||||
sounds: './asset/ytp/sounds/',
|
||||
music: './asset/ytp/music/',
|
||||
resources: './asset/ytp/resources/',
|
||||
temp: os.tmpdir(),
|
||||
sourceList: asset,
|
||||
intro: args[0] ? './asset/ytp/intro.mp4' : null,
|
||||
outro: './asset/ytp/outro.mp4',
|
||||
OUTPUT_FILE: `${os.tmpdir()}/${interaction.id}_YTP.mp4`,
|
||||
MAX_CLIPS: MAX_CLIPS,
|
||||
transitions: true,
|
||||
showFileNames: true,
|
||||
effects: {
|
||||
effect_RandomSound: true,
|
||||
effect_RandomSoundMute: true,
|
||||
effect_Reverse: true,
|
||||
effect_Chorus: true,
|
||||
effect_Vibrato: true,
|
||||
effect_HighPitch: true,
|
||||
effect_LowPitch: true,
|
||||
effect_SpeedUp: true,
|
||||
effect_SlowDown: true,
|
||||
effect_Dance: true,
|
||||
effect_Squidward: true,
|
||||
effect_How: true,
|
||||
},
|
||||
};
|
||||
|
||||
new YTPGenerator().configurateAndGo(options)
|
||||
.then(() => {
|
||||
loadingmsg.delete();
|
||||
return interaction.reply({ content: 'Here is your YTP! Remember, it might contain nsfw, so be careful!', files: [`${os.tmpdir()}/${interaction.id}_YTP.mp4`] })
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
return interaction.reply('Whoops, look like the vid might be too big for discord, my bad, please try again');
|
||||
});
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
loadingmsg.delete();
|
||||
return interaction.reply({ files: [`./asset/ytp/error${Math.floor(Math.random() * 2) + 1}.mp4`] });
|
||||
});
|
||||
},
|
||||
};
|
|
@ -18,7 +18,8 @@ export default {
|
|||
const owner = await client.users.fetch('267065637183029248');
|
||||
const maintainer = await client.users.fetch(ownerId);
|
||||
|
||||
let description = `This bot is made using [discord.js](https://github.com/discordjs/discord.js)\nThanks to ${tina.tag} (336492042299637771) for inspiring me for making this bot!\n\nThe people who donated for the bot <3\n`;
|
||||
let description = 'I\'m a fun multipurpose bot made using [discord.js](https://github.com/discordjs/discord.js)'
|
||||
+ '\nFor a better experience use the slash commands!\n\nThe people who donated for the bot <3\n';
|
||||
|
||||
if (Donator[0]) {
|
||||
for (let i = 0; i < Donator.length; i++) {
|
||||
|
@ -35,6 +36,8 @@ export default {
|
|||
description += 'No one :(\n';
|
||||
}
|
||||
|
||||
description += `\nThanks to ${tina.tag} (336492042299637771) for inspiring me for making this bot!`;
|
||||
|
||||
// description += '\nThanks to Jetbrains for providing their IDE!';
|
||||
|
||||
exec('git rev-parse --short HEAD', (err, stdout) => {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { SlashCommandBuilder, EmbedBuilder } from 'discord.js';
|
||||
import { SlashCommandBuilder, EmbedBuilder, AttachmentBuilder } from 'discord.js';
|
||||
import fs from 'node:fs';
|
||||
|
||||
const { ownerId, prefix } = process.env;
|
||||
|
@ -66,8 +66,9 @@ export default {
|
|||
}
|
||||
|
||||
if (fs.existsSync(`./asset/img/command/${command.category}/${command.data.name}.png`)) {
|
||||
embed.attachFiles(`./asset/img/command/${command.category}/${command.data.name}.png`);
|
||||
const file = new AttachmentBuilder(`./asset/img/command/${command.category}/${command.data.name}.png`);
|
||||
embed.setImage(`attachment://${command.data.name}.png`);
|
||||
return interaction.reply({ embeds: [embed], files: [file] });
|
||||
}
|
||||
return interaction.reply({ embeds: [embed] });
|
||||
}
|
||||
|
|
238
package-lock.json
generated
238
package-lock.json
generated
|
@ -19,7 +19,8 @@
|
|||
"safe-regex": "github:davisjam/safe-regex",
|
||||
"sequelize": "^6.21.3",
|
||||
"turndown": "^7.1.1",
|
||||
"twit": "^2.2.11"
|
||||
"twit": "^2.2.11",
|
||||
"ytpplus-node": "github:Supositware/ytpplus-node"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/eslint-parser": "^7.18.9",
|
||||
|
@ -1366,6 +1367,25 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/base64-js": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
]
|
||||
},
|
||||
"node_modules/bcrypt-pbkdf": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||
|
@ -1374,6 +1394,16 @@
|
|||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
},
|
||||
"node_modules/bl": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
||||
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
|
||||
"dependencies": {
|
||||
"buffer": "^5.5.0",
|
||||
"inherits": "^2.0.4",
|
||||
"readable-stream": "^3.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/bluebird": {
|
||||
"version": "3.7.2",
|
||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
|
||||
|
@ -1434,6 +1464,29 @@
|
|||
"node-int64": "^0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/buffer": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"base64-js": "^1.3.1",
|
||||
"ieee754": "^1.1.13"
|
||||
}
|
||||
},
|
||||
"node_modules/cache-base": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
|
||||
|
@ -1802,6 +1855,14 @@
|
|||
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/deferential": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/deferential/-/deferential-1.0.0.tgz",
|
||||
"integrity": "sha512-QyFNvptDP8bypD6WK6ZOXFSBHN6CFLZmQ59QyvRGDvN9+DoX01mxw28QrJwSVPrrwnMWqHgTRiXybH6Y0cBbWw==",
|
||||
"dependencies": {
|
||||
"native-promise-only": "^0.8.1"
|
||||
}
|
||||
},
|
||||
"node_modules/define-property": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
|
||||
|
@ -2573,6 +2634,27 @@
|
|||
"node": "^12.20 || >= 14.13"
|
||||
}
|
||||
},
|
||||
"node_modules/ffmpeg-static": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-2.7.0.tgz",
|
||||
"integrity": "sha512-Khjg/4tCBen58ixhXlkRNqs3hUKpTOlGOUrw859M09tdjeMkXyXRQ+YuJjGczRhGO7Y8fHPJZcQ37V/OzvZvjQ==",
|
||||
"deprecated": "ffmpeg-static@2 won't be updated with new ffmpeg binaries anymore. Use ffmpeg-static@latest."
|
||||
},
|
||||
"node_modules/ffprobe": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ffprobe/-/ffprobe-1.1.2.tgz",
|
||||
"integrity": "sha512-a+oTbhyeM7Z8PRy+mpzmVUAnATZT7z4BO94HSKeqHupdmjiKZ1djzcZkyoyXA21zCOCG7oVRrsBMmvvtmzoz4g==",
|
||||
"dependencies": {
|
||||
"bl": "^4.0.3",
|
||||
"deferential": "^1.0.0",
|
||||
"JSONStream": "^1.3.5"
|
||||
}
|
||||
},
|
||||
"node_modules/ffprobe-static": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ffprobe-static/-/ffprobe-static-3.1.0.tgz",
|
||||
"integrity": "sha512-Dvpa9uhVMOYivhHKWLGDoa512J751qN1WZAIO+Xw4L/mrUSPxS4DApzSUDbCFE/LUq2+xYnznEahTd63AqBSpA=="
|
||||
},
|
||||
"node_modules/file-entry-cache": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
|
||||
|
@ -2694,6 +2776,11 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fs": {
|
||||
"version": "0.0.1-security",
|
||||
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
|
||||
"integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
|
||||
},
|
||||
"node_modules/fs-extra": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
|
||||
|
@ -3435,6 +3522,29 @@
|
|||
"graceful-fs": "^4.1.6"
|
||||
}
|
||||
},
|
||||
"node_modules/jsonparse": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
|
||||
"integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
|
||||
"engines": [
|
||||
"node >= 0.2.0"
|
||||
]
|
||||
},
|
||||
"node_modules/JSONStream": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
|
||||
"integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
|
||||
"dependencies": {
|
||||
"jsonparse": "^1.2.0",
|
||||
"through": ">=2.2.7 <3"
|
||||
},
|
||||
"bin": {
|
||||
"JSONStream": "bin.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/jsprim": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
|
||||
|
@ -3676,9 +3786,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/moment-timezone": {
|
||||
"version": "0.5.34",
|
||||
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz",
|
||||
"integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==",
|
||||
"version": "0.5.37",
|
||||
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.37.tgz",
|
||||
"integrity": "sha512-uEDzDNFhfaywRl+vwXxffjjq1q0Vzr+fcQpQ1bU0kbzorfS7zVtZnCnGc8mhWmF39d4g4YriF6kwA75mJKE/Zg==",
|
||||
"dependencies": {
|
||||
"moment": ">= 2.9.0"
|
||||
},
|
||||
|
@ -3755,6 +3865,11 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/native-promise-only": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz",
|
||||
"integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg=="
|
||||
},
|
||||
"node_modules/natural-compare": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
||||
|
@ -5252,6 +5367,11 @@
|
|||
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/through": {
|
||||
"version": "2.3.8",
|
||||
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||
"integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
|
||||
},
|
||||
"node_modules/timers-ext": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
|
||||
|
@ -5790,6 +5910,17 @@
|
|||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/ytpplus-node": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "git+ssh://git@github.com/Supositware/ytpplus-node.git#c5890baa52d06e59bf85e99a95873c32225fc7c2",
|
||||
"license": "UNLICENSED",
|
||||
"dependencies": {
|
||||
"ffmpeg-static": "^2.4.0",
|
||||
"ffprobe": "^1.1.0",
|
||||
"ffprobe-static": "^3.0.0",
|
||||
"fs": "0.0.1-security"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
|
@ -6819,6 +6950,11 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"base64-js": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
|
||||
},
|
||||
"bcrypt-pbkdf": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||
|
@ -6827,6 +6963,16 @@
|
|||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
},
|
||||
"bl": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
||||
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
|
||||
"requires": {
|
||||
"buffer": "^5.5.0",
|
||||
"inherits": "^2.0.4",
|
||||
"readable-stream": "^3.4.0"
|
||||
}
|
||||
},
|
||||
"bluebird": {
|
||||
"version": "3.7.2",
|
||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
|
||||
|
@ -6868,6 +7014,15 @@
|
|||
"node-int64": "^0.4.0"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||
"requires": {
|
||||
"base64-js": "^1.3.1",
|
||||
"ieee754": "^1.1.13"
|
||||
}
|
||||
},
|
||||
"cache-base": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
|
||||
|
@ -7157,6 +7312,14 @@
|
|||
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
|
||||
"dev": true
|
||||
},
|
||||
"deferential": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/deferential/-/deferential-1.0.0.tgz",
|
||||
"integrity": "sha512-QyFNvptDP8bypD6WK6ZOXFSBHN6CFLZmQ59QyvRGDvN9+DoX01mxw28QrJwSVPrrwnMWqHgTRiXybH6Y0cBbWw==",
|
||||
"requires": {
|
||||
"native-promise-only": "^0.8.1"
|
||||
}
|
||||
},
|
||||
"define-property": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
|
||||
|
@ -7772,6 +7935,26 @@
|
|||
"web-streams-polyfill": "^3.0.3"
|
||||
}
|
||||
},
|
||||
"ffmpeg-static": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-2.7.0.tgz",
|
||||
"integrity": "sha512-Khjg/4tCBen58ixhXlkRNqs3hUKpTOlGOUrw859M09tdjeMkXyXRQ+YuJjGczRhGO7Y8fHPJZcQ37V/OzvZvjQ=="
|
||||
},
|
||||
"ffprobe": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ffprobe/-/ffprobe-1.1.2.tgz",
|
||||
"integrity": "sha512-a+oTbhyeM7Z8PRy+mpzmVUAnATZT7z4BO94HSKeqHupdmjiKZ1djzcZkyoyXA21zCOCG7oVRrsBMmvvtmzoz4g==",
|
||||
"requires": {
|
||||
"bl": "^4.0.3",
|
||||
"deferential": "^1.0.0",
|
||||
"JSONStream": "^1.3.5"
|
||||
}
|
||||
},
|
||||
"ffprobe-static": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ffprobe-static/-/ffprobe-static-3.1.0.tgz",
|
||||
"integrity": "sha512-Dvpa9uhVMOYivhHKWLGDoa512J751qN1WZAIO+Xw4L/mrUSPxS4DApzSUDbCFE/LUq2+xYnznEahTd63AqBSpA=="
|
||||
},
|
||||
"file-entry-cache": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
|
||||
|
@ -7860,6 +8043,11 @@
|
|||
"map-cache": "^0.2.2"
|
||||
}
|
||||
},
|
||||
"fs": {
|
||||
"version": "0.0.1-security",
|
||||
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
|
||||
"integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
|
||||
|
@ -8410,6 +8598,20 @@
|
|||
"universalify": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"jsonparse": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
|
||||
"integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg=="
|
||||
},
|
||||
"JSONStream": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
|
||||
"integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
|
||||
"requires": {
|
||||
"jsonparse": "^1.2.0",
|
||||
"through": ">=2.2.7 <3"
|
||||
}
|
||||
},
|
||||
"jsprim": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
|
||||
|
@ -8605,9 +8807,9 @@
|
|||
"integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
|
||||
},
|
||||
"moment-timezone": {
|
||||
"version": "0.5.34",
|
||||
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz",
|
||||
"integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==",
|
||||
"version": "0.5.37",
|
||||
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.37.tgz",
|
||||
"integrity": "sha512-uEDzDNFhfaywRl+vwXxffjjq1q0Vzr+fcQpQ1bU0kbzorfS7zVtZnCnGc8mhWmF39d4g4YriF6kwA75mJKE/Zg==",
|
||||
"requires": {
|
||||
"moment": ">= 2.9.0"
|
||||
}
|
||||
|
@ -8674,6 +8876,11 @@
|
|||
"to-regex": "^3.0.1"
|
||||
}
|
||||
},
|
||||
"native-promise-only": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz",
|
||||
"integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg=="
|
||||
},
|
||||
"natural-compare": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
||||
|
@ -9161,7 +9368,7 @@
|
|||
},
|
||||
"safe-regex": {
|
||||
"version": "git+ssh://git@github.com/davisjam/safe-regex.git#9041d808830a584d0e6f512939089f67080dbdd2",
|
||||
"from": "safe-regex@git+https://github.com/davisjam/safe-regex.git",
|
||||
"from": "safe-regex@github:davisjam/safe-regex",
|
||||
"requires": {
|
||||
"babel-jest": "^26.3.0",
|
||||
"regexp-tree": "~0.1.1"
|
||||
|
@ -9774,6 +9981,11 @@
|
|||
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
|
||||
"dev": true
|
||||
},
|
||||
"through": {
|
||||
"version": "2.3.8",
|
||||
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||
"integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
|
||||
},
|
||||
"timers-ext": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
|
||||
|
@ -10185,6 +10397,16 @@
|
|||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
|
||||
"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
|
||||
"dev": true
|
||||
},
|
||||
"ytpplus-node": {
|
||||
"version": "git+ssh://git@github.com/Supositware/ytpplus-node.git#c5890baa52d06e59bf85e99a95873c32225fc7c2",
|
||||
"from": "ytpplus-node@github:Supositware/ytpplus-node",
|
||||
"requires": {
|
||||
"ffmpeg-static": "^2.4.0",
|
||||
"ffprobe": "^1.1.0",
|
||||
"ffprobe-static": "^3.0.0",
|
||||
"fs": "0.0.1-security"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,8 @@
|
|||
"safe-regex": "github:davisjam/safe-regex",
|
||||
"sequelize": "^6.21.3",
|
||||
"turndown": "^7.1.1",
|
||||
"twit": "^2.2.11"
|
||||
"twit": "^2.2.11",
|
||||
"ytpplus-node": "github:Supositware/ytpplus-node"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/eslint-parser": "^7.18.9",
|
||||
|
|
|
@ -166,6 +166,14 @@ const commands = [
|
|||
.addStringOption(option =>
|
||||
option.setName('message')
|
||||
.setDescription('The message you want the bot to say when someone join in the current channel.')),
|
||||
|
||||
new SlashCommandBuilder()
|
||||
.setName('ytp')
|
||||
.setDescription('Generate a YTP')
|
||||
.addBooleanOption(option =>
|
||||
option.setName('force')
|
||||
.setDescription('Force the generation of the video in non-nsfw channel.')
|
||||
.setRequired(false)),
|
||||
]
|
||||
.map(command => command.toJSON());
|
||||
|
||||
|
|
Loading…
Reference in a new issue