@mengkodingan/ckptw
Version:
Create powerful WhatsApp bots easily
180 lines (179 loc) • 6.73 kB
JavaScript
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GroupData = void 0;
const Functions_1 = require("../../Common/Functions");
class GroupData {
constructor(ctx, jid) {
this.ctx = ctx;
this.jid = jid;
}
members() {
return __awaiter(this, void 0, void 0, function* () {
let metadata = yield this.metadata();
return metadata.participants;
});
}
inviteCode() {
return __awaiter(this, void 0, void 0, function* () {
return yield this.ctx._client.groupInviteCode(this.jid);
});
}
revokeInviteCode() {
return __awaiter(this, void 0, void 0, function* () {
return yield this.ctx._client.groupRevokeInvite(this.jid);
});
}
joinApproval(mode) {
return __awaiter(this, void 0, void 0, function* () {
return yield this.ctx._client.groupJoinApprovalMode(this.jid, mode);
});
}
leave() {
return __awaiter(this, void 0, void 0, function* () {
this.ctx._client.groupLeave(this.jid);
});
}
membersCanAddMemberMode(mode) {
return __awaiter(this, void 0, void 0, function* () {
return yield this.ctx._client.groupMemberAddMode(this.jid, mode === "on" ? "all_member_add" : "admin_add");
});
}
metadata() {
return __awaiter(this, void 0, void 0, function* () {
return yield this.ctx._client.groupMetadata(this.jid);
});
}
getMetadata(key) {
return __awaiter(this, void 0, void 0, function* () {
let metadata = yield this.metadata();
return metadata[key];
});
}
name() {
return __awaiter(this, void 0, void 0, function* () {
return yield this.getMetadata('subject');
});
}
description() {
return __awaiter(this, void 0, void 0, function* () {
return yield this.getMetadata('desc');
});
}
owner() {
return __awaiter(this, void 0, void 0, function* () {
return yield this.getMetadata('owner');
});
}
isAdmin(jid) {
return __awaiter(this, void 0, void 0, function* () {
let members = yield this.members();
let check = members.filter((x) => (0, Functions_1.decodeJid)(x.id) === (0, Functions_1.decodeJid)(jid) && (x.admin === 'admin' || x.admin === 'superadmin'));
return check.length > 0;
});
}
isSenderAdmin() {
return __awaiter(this, void 0, void 0, function* () {
return yield this.isAdmin(this.ctx.sender.decodedJid);
});
}
isBotAdmin() {
return __awaiter(this, void 0, void 0, function* () {
return yield this.isAdmin(this.ctx.me.decodedId);
});
}
toggleEphemeral(expiration) {
return __awaiter(this, void 0, void 0, function* () {
return yield this.ctx._client.groupToggleEphemeral(this.jid, expiration);
});
}
updateDescription(description) {
return __awaiter(this, void 0, void 0, function* () {
return yield this.ctx._client.groupUpdateDescription(this.jid, description);
});
}
updateSubject(subject) {
return __awaiter(this, void 0, void 0, function* () {
return yield this.ctx._client.groupUpdateSubject(this.jid, subject);
});
}
membersUpdate(members, action) {
return __awaiter(this, void 0, void 0, function* () {
return yield this.ctx._client.groupParticipantsUpdate(this.jid, members, action);
});
}
kick(members) {
return __awaiter(this, void 0, void 0, function* () {
return yield this.membersUpdate(members, 'remove');
});
}
add(members) {
return __awaiter(this, void 0, void 0, function* () {
return yield this.membersUpdate(members, 'add');
});
}
promote(members) {
return __awaiter(this, void 0, void 0, function* () {
return yield this.membersUpdate(members, 'promote');
});
}
demote(members) {
return __awaiter(this, void 0, void 0, function* () {
return yield this.membersUpdate(members, 'demote');
});
}
pendingMembers() {
return __awaiter(this, void 0, void 0, function* () {
return yield this.ctx._client.groupRequestParticipantsList(this.jid);
});
}
pendingMembersUpdate(members, action) {
return __awaiter(this, void 0, void 0, function* () {
return this.ctx._client.groupRequestParticipantsUpdate(this.jid, members, action);
});
}
approvePendingMembers(members) {
return __awaiter(this, void 0, void 0, function* () {
return this.pendingMembersUpdate(members, 'approve');
});
}
rejectPendingMembers(members) {
return __awaiter(this, void 0, void 0, function* () {
return this.pendingMembersUpdate(members, 'reject');
});
}
updateSetting(setting) {
return __awaiter(this, void 0, void 0, function* () {
yield this.ctx._client.groupSettingUpdate(this.jid, setting);
});
}
open() {
return __awaiter(this, void 0, void 0, function* () {
yield this.updateSetting('not_announcement');
});
}
close() {
return __awaiter(this, void 0, void 0, function* () {
yield this.updateSetting('announcement');
});
}
lock() {
return __awaiter(this, void 0, void 0, function* () {
yield this.updateSetting('locked');
});
}
unlock() {
return __awaiter(this, void 0, void 0, function* () {
yield this.updateSetting('unlocked');
});
}
}
exports.GroupData = GroupData;