File size: 8,316 Bytes
0c88c2f | 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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | module.exports.config = {
name: "join",
eventType: ['log:subscribe'],
version: "1.0.0",
credits: "Mirai-Team", // FIXED BY YAN MAGLINTE
description: "GROUP UPDATE NOTIFICATION"
};
const ADMIN = 'YOUR_NAME';
const FB_LINK = 'YOUR_FACEBOOK_LINK';
const fs = require('fs-extra');
const { loadImage, createCanvas, registerFont } = require("canvas");
const request = require('request');
//const { join } = require('path');
const axios = require('axios');
const jimp = require("jimp")
const fontlink = 'https://drive.google.com/u/0/uc?id=1ZwFqYB-x6S9MjPfYm3t3SP1joohGl4iw&export=download'
let PRFX = `${global.config.PREFIX}`;
module.exports.circle = async (image) => {
image = await jimp.read(image);
image.circle();
return await image.getBufferAsync("image/png");
}
let suffix;
module.exports.run = async function({ api, event, Users }) {
var fullYear = global.client.getTime("fullYear");
var getHours = await global.client.getTime("hours");
var session = `${getHours < 3 ? "midnight" : getHours < 8 ? "Early morning" : getHours < 12 ? "noon" : getHours < 17 ? "afternoon" : getHours < 23 ? "evening" : "midnight"}`
const moment = require("moment-timezone");
var thu = moment.tz('Asia/Manila').format('dddd');
if (thu == 'Sunday') thu = 'Sunday'
if (thu == 'Monday') thu = 'Monday'
if (thu == 'Tuesday') thu = 'Tuesday'
if (thu == 'Wednesday') thu = 'Wednesday'
if (thu == "Thursday") thu = 'Thursday'
if (thu == 'Friday') thu = 'Friday'
if (thu == 'Saturday') thu = 'Saturday'
const time = moment.tz("Asia/Manila").format("HH:mm:ss - DD/MM/YYYY");
const hours = moment.tz("Asia/Manila").format("HH");
const { commands } = global.client;
const { threadID } = event;
let threadInfo = await api.getThreadInfo(event.threadID);
let threadName = threadInfo.threadName;
if (!event.logMessageData.addedParticipants || !Array.isArray(event.logMessageData.addedParticipants)) {
return;
}
if (event.logMessageData.addedParticipants && Array.isArray(event.logMessageData.addedParticipants) && event.logMessageData.addedParticipants.some(i => i.userFbId == api.getCurrentUserID())) {
//api.changeNickname(`ππ’π§ ${(!global.config.BOTNAME) ? "Buddy" : global.config.BOTNAME}`, threadID, api.getCurrentUserID());
let gifUrl = 'https://i.imgur.com/4HMupHz.gif';
let gifPath = __dirname + '/cache/join/join.gif';
axios.get(gifUrl, { responseType: 'arraybuffer' })
.then(response => {
fs.writeFileSync(gifPath, response.data);
return api.sendMessage("Hey There!", event.threadID, () => api.sendMessage({ body: `β
Group Connection in ${threadName} at ${session} success! \n\nβ Current Commands: ${commands.size}\nβ Bot Prefix: ${global.config.PREFIX}\nβ Version: ${global.config.version}\nβ Admin: βΉ${ADMIN}βΊ\nβ Facebook: βΉ${FB_LINK}βΊ\nβ Use ${PRFX}help to view command details\nβ Added bot at: β¨ ${time} β©γ ${thu} γ`, attachment: fs.createReadStream(gifPath)}, threadID));
})
.catch(error => {
console.error(error);
});
}
else {
try {
if (!fs.existsSync(__dirname + `/cache/font/Semi.ttf`)) {
let getfont = (await axios.get(fontlink, { responseType: "arraybuffer" })).data;
fs.writeFileSync(__dirname + `/cache/font/Semi.ttf`, Buffer.from(getfont, "utf-8"));
};
const { createReadStream, existsSync, mkdirSync, readdirSync } = global.nodemodule["fs-extra"];
let { threadName, participantIDs } = await api.getThreadInfo(threadID);
const threadData = global.data.threadData.get(parseInt(threadID)) || {};
var mentions = [], nameArray = [], memLength = [], iduser = [], i = 0;
var abx = [];
for (id in event.logMessageData.addedParticipants) {
const userName = event.logMessageData.addedParticipants[id].fullName; iduser.push(event.logMessageData.addedParticipants[id].userFbId.toString());
nameArray.push(userName);
mentions.push({ tag: userName, id: event.senderID });
memLength.push(participantIDs.length - i++);
console.log(userName)
}
// console.log(event.logMessageData.addedParticipants)
var id = [];
for (let o = 0; o < event.logMessageData.addedParticipants.length; o++) {
let pathImg = __dirname + `/cache/join/${o}.png`;
let pathAva = __dirname + `/cache/join/avt.png`;
let avtAnime = (await axios.get(encodeURI(
`https://graph.facebook.com/${event.logMessageData.addedParticipants[o].userFbId}/picture?height=720&width=720&access_token=6628568379%7Cc1e620fa708a1d5696fb991c1bde5662`), { responseType: "arraybuffer" })).data;
var ok = [
'https://i.imgur.com/dDSh0wc.jpeg',
'https://i.imgur.com/UucSRWJ.jpeg',
'https://i.imgur.com/OYzHKNE.jpeg',
'https://i.imgur.com/V5L9dPi.jpeg',
'https://i.imgur.com/M7HEAMA.jpeg'
]
let background = (await axios.get(encodeURI(`${ok[Math.floor(Math.random() * ok.length)]}`), { responseType: "arraybuffer", })).data;
fs.writeFileSync(pathAva, Buffer.from(avtAnime, "utf-8"));
fs.writeFileSync(pathImg, Buffer.from(background, "utf-8"));
var avatar = await this.circle(pathAva);
let baseImage = await loadImage(pathImg);
let baseAva = await loadImage(avatar);
registerFont(__dirname + `/cache/font/Semi.ttf`, {
family: "Semi"
});
let canvas = createCanvas(1902, 1082);
console.log(canvas.width, canvas.height)
let ctx = canvas.getContext("2d");
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(baseImage, 0, 0, canvas.width, canvas.height);
ctx.drawImage(baseAva, canvas.width / 2 - 188, canvas.height / 2 - 375, 375, 355);
ctx.fillStyle = "#FFF";
ctx.textAlign = "center";
ctx.font = `155px Semi`;
ctx.fillText(`${event.logMessageData.addedParticipants[o].fullName}`, canvas.width / 2 + 20, canvas.height / 2 + 100);
ctx.save();
ctx.font = `75px Semi`;
ctx.fillText(`Welcome to ${threadName}`, canvas.width / 2 - 15, canvas.height / 2 + 235)
const number = participantIDs.length - o;
if (number === 11 || number === 12 || number === 13) {
suffix = "th";
} else {
const lastDigit = number % 10;
switch (lastDigit) {
case 1:
suffix = "st";
break;
case 2:
suffix = "nd";
break;
case 3:
suffix = "rd";
break;
default:
suffix = "th";
break;
}
}
ctx.fillText(`You are the ${number}${suffix} member of this group`, canvas.width / 2 - 15, canvas.height / 2 + 350);
ctx.restore();
const imageBuffer = canvas.toBuffer();
fs.writeFileSync(pathImg, imageBuffer);
abx.push(fs.createReadStream(__dirname + `/cache/join/${o}.png`))
}
memLength.sort((a, b) => a - b);
(typeof threadData.customJoin == "undefined") ? msg = `π Welcome new member {name} to the group {threadName}\nβ URL Profile:\nhttps://www.facebook.com/profile.php?id={iduser}\nβ {type} are the group's {soThanhVien}${suffix} member\nβ Added to the group by: {author}\nβ Added by facebook link: https://www.facebook.com/profile.php?id={uidAuthor}\nβββββββββββββββββ\n[ {time} - {thu} ]` : msg = threadData.customJoin;
var nameAuthor = await Users.getNameUser(event.author)
msg = msg
.replace(/\{iduser}/g, iduser.join(', '))
.replace(/\{name}/g, nameArray.join(', '))
.replace(/\{type}/g, (memLength.length > 1) ? 'You' : 'You')
.replace(/\{soThanhVien}/g, memLength.join(', '))
.replace(/\{threadName}/g, threadName)
.replace(/\{author}/g, nameAuthor)
.replace(/\{uidAuthor}/g, event.author)
.replace(/\{buoi}/g, session)
.replace(/\{time}/g, time)
.replace(/\{thu}/g, thu);
var formPush = { body: msg, attachment: abx, mentions }
api.sendMessage(formPush, threadID);
for (let ii = 0; ii < parseInt(id.length); ii++) {
fs.unlinkSync(__dirname + `/cache/join/${ii}.png`)
}
} catch (e) { return console.log(e) };
}
} |