forked from franceking1/Flash-Md
-
Notifications
You must be signed in to change notification settings - Fork 0
/
reaction.js
103 lines (87 loc) · 3.88 KB
/
reaction.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
const axios = require('axios');
const { france } = require("../framework/france");
const fs = require("fs-extra");
const { exec } = require("child_process");
const child_process = require('child_process');
const {unlink } = require ('fs').promises ;
// fonction sleep
const sleep = (ms) =>{
return new Promise((resolve) =>{ setTimeout (resolve, ms)})
}
// Fonction pour la conversion de GIF en vidéo et récupération du buffer vidéo
const GIFBufferToVideoBuffer = async (image) => {
const filename = `${Math.random().toString(36)}`;
await fs.writeFileSync(`./${filename}.gif`, image);
child_process.exec(
`ffmpeg -i ./${filename}.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" ./${filename}.mp4`
);
await sleep(4000);
var buffer5 = await fs.readFileSync(`./${filename}.mp4`);
Promise.all([unlink(`./${filename}.mp4`), unlink(`./${filename}.gif`)]);
return buffer5;
};
const generateReactionCommand = (reactionName, reactionEmoji) => {
france({
nomCom: reactionName,
categorie: "Reaction",
reaction: reactionEmoji,
},
async (origineMessage, zk, commandeOptions) => {
const { auteurMessage, auteurMsgRepondu, repondre, ms, msgRepondu } = commandeOptions;
const url = `https://api.waifu.pics/sfw/${reactionName}`;
try {
const response = await axios.get(url);
const imageUrl = response.data.url;
// Obtenir le buffer du GIF en utilisant la fonction getBuffer
const gifBufferResponse = await axios.get(imageUrl, {
responseType: 'arraybuffer' }) ;
const gifBuffer = await gifBufferResponse.data;
// Convertir le GIF en vidéo et obtenir le buffer vidéo
const videoBuffer = await GIFBufferToVideoBuffer(gifBuffer);
// Envoyer la vidéo avec france
if (msgRepondu) {
var txt =` @${auteurMessage.split("@")[0]} ${reactionName} @${auteurMsgRepondu.split("@")[0]}`
zk.sendMessage(origineMessage, { video: videoBuffer,gifPlayback: true,caption:txt,mentions:[auteurMessage,auteurMsgRepondu] }, { quoted: ms });
} else {
const videoMessage = {
video: videoBuffer,
gifPlayback: true,
caption: `@${auteurMessage.split("@")[0]} ${reactionName} everyone`,
mentions: [auteurMessage]
};
zk.sendMessage(origineMessage, videoMessage, { quoted: ms });
}
} catch (error) {
repondre('Erreur lors de la récupération des données :' + error);
console.log(error);
}
});
};
// ... (utilisation de la fonction generateReactionCommand pour créer des commandes de réaction)
generateReactionCommand("bully", "👊");
generateReactionCommand("cuddle", "🤗");
generateReactionCommand("cry", "😢");
generateReactionCommand("hug", "😊");
generateReactionCommand("awoo", "🐺");
generateReactionCommand("kiss", "😘");
generateReactionCommand("lick", "👅");
generateReactionCommand("pat", "👋");
generateReactionCommand("smug", "😏");
generateReactionCommand("bonk", "🔨");
generateReactionCommand("yeet", "🚀");
generateReactionCommand("blush", "😊");
generateReactionCommand("smile", "😄");
generateReactionCommand("wave", "👋");
generateReactionCommand("highfive");
generateReactionCommand("handhold");
generateReactionCommand("nom","👅" );
generateReactionCommand("bite", "🦷");
generateReactionCommand("glomp", "🤗");
generateReactionCommand("slap", "👋");
generateReactionCommand("kill", "💀");
generateReactionCommand("kick", "🦵");
generateReactionCommand("happy", "😄");
generateReactionCommand("wink", "😉");
generateReactionCommand("poke", "👉");
generateReactionCommand("dance", "💃");
generateReactionCommand("cringe", "😬");