jsdecryptor 4.0.3 → 4.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Database/database.js +1 -446
- package/Database/migration.js +1 -327
- package/Database/pgSync.js +1 -229
- package/Database/settingsStore.js +1 -305
- package/config.js +1 -32
- package/dave.js +1 -3063
- package/davelib/botConfig.js +1 -71
- package/davelib/greetings.js +1 -47
- package/davelib/id.js +1 -11
- package/davelib/index.js +1 -577
- package/davelib/isAdmin.js +1 -32
- package/davelib/isBanned.js +1 -12
- package/davelib/isOwner.js +1 -15
- package/davelib/messageConfig.js +1 -15
- package/davelib/messageHandler.js +1 -87
- package/davelib/reactions.js +1 -180
- package/davelib/welcome.js +1 -100
- package/daveset.js +1 -16
- package/davexcore/anti/antiaudio.js +1 -106
- package/davexcore/anti/antibadword.js +1 -313
- package/davexcore/anti/antibug.js +1 -156
- package/davexcore/anti/anticall.js +1 -219
- package/davexcore/anti/antichart.js +1 -280
- package/davexcore/anti/antidelete.js +1 -673
- package/davexcore/anti/antideletestatus.js +1 -535
- package/davexcore/anti/antidemote.js +1 -352
- package/davexcore/anti/antidocument.js +1 -105
- package/davexcore/anti/antiedit.js +1 -410
- package/davexcore/anti/antifiles.js +1 -109
- package/davexcore/anti/antigroupmention.js +1 -206
- package/davexcore/anti/antiimage.js +1 -105
- package/davexcore/anti/antikick.js +1 -125
- package/davexcore/anti/antilink.js +1 -237
- package/davexcore/anti/antimention.js +1 -143
- package/davexcore/anti/antipromote.js +1 -320
- package/davexcore/anti/antisticker.js +1 -105
- package/davexcore/anti/antitag.js +1 -191
- package/davexcore/anti/antivideo.js +1 -105
- package/davexcore/anti/antiviewonce.js +1 -396
- package/davexcore/anti/groupanticall.js +1 -262
- package/davexcore/anti/mention.js +1 -242
- package/davexcore/automation/alwaysonline.js +1 -226
- package/davexcore/automation/autoReadReciepts.js +1 -96
- package/davexcore/automation/autoread.js +1 -104
- package/davexcore/automation/autorecording.js +1 -197
- package/davexcore/automation/autostatus.js +1 -317
- package/davexcore/automation/autotyping.js +1 -197
- package/davexcore/automation/chatbot.js +1 -444
- package/davexcore/automation/chatmanage.js +1 -199
- package/davexcore/automation/devReact.js +1 -43
- package/davexcore/automation/goodbye.js +1 -181
- package/davexcore/automation/greetings.js +1 -154
- package/davexcore/automation/welcome.js +1 -187
- package/davexcore/group/addmember.js +1 -101
- package/davexcore/group/ban.js +1 -63
- package/davexcore/group/blockUnblock.js +1 -177
- package/davexcore/group/clear.js +1 -196
- package/davexcore/group/creategroup.js +1 -43
- package/davexcore/group/demote.js +1 -115
- package/davexcore/group/disappear.js +1 -67
- package/davexcore/group/groupinfo.js +1 -167
- package/davexcore/group/groupmanage.js +1 -133
- package/davexcore/group/hidetag.js +1 -108
- package/davexcore/group/joinrequests.js +1 -145
- package/davexcore/group/kick.js +1 -92
- package/davexcore/group/kickall.js +1 -63
- package/davexcore/group/leave.js +1 -38
- package/davexcore/group/linkgroup.js +1 -63
- package/davexcore/group/mute.js +1 -57
- package/davexcore/group/online.js +1 -117
- package/davexcore/group/pmblocker.js +1 -65
- package/davexcore/group/promote.js +1 -93
- package/davexcore/group/resetlink.js +1 -57
- package/davexcore/group/staff.js +1 -99
- package/davexcore/group/tag.js +1 -111
- package/davexcore/group/tagadmins.js +1 -88
- package/davexcore/group/tagall.js +1 -99
- package/davexcore/group/tagnotadmin.js +1 -92
- package/davexcore/group/topmembers.js +1 -202
- package/davexcore/group/unban.js +1 -64
- package/davexcore/group/unmute.js +1 -45
- package/davexcore/group/warn.js +1 -83
- package/davexcore/group/warnings.js +1 -26
- package/davexcore/owner/alive.js +1 -67
- package/davexcore/owner/bio.js +1 -49
- package/davexcore/owner/broadcast.js +1 -74
- package/davexcore/owner/chanel.js +1 -79
- package/davexcore/owner/channelid.js +1 -50
- package/davexcore/owner/clearsession.js +1 -86
- package/davexcore/owner/help.js +1 -649
- package/davexcore/owner/hijack.js +1 -69
- package/davexcore/owner/menuManage.js +1 -173
- package/davexcore/owner/menuSettings.js +1 -1
- package/davexcore/owner/owner.js +1 -17
- package/davexcore/owner/pair.js +1 -160
- package/davexcore/owner/pinchat.js +1 -44
- package/davexcore/owner/ping.js +1 -65
- package/davexcore/owner/profilepic.js +1 -61
- package/davexcore/owner/resetmenuimage.js +1 -16
- package/davexcore/owner/setGroupStatus.js +1 -315
- package/davexcore/owner/setbotconfig.js +1 -306
- package/davexcore/owner/setfont.js +1 -79
- package/davexcore/owner/setowner.js +1 -144
- package/davexcore/owner/setprefix.js +1 -131
- package/davexcore/owner/settings.js +1 -98
- package/davexcore/owner/startupwelcome.js +1 -94
- package/davexcore/owner/sudo.js +1 -138
- package/davexcore/owner/update.js +1 -282
- package/davexcore/utility/bible.js +1 -239
- package/davexcore/utility/encrypt.js +1 -99
- package/davexcore/utility/sports.js +1 -403
- package/index.js +1 -994
- package/package.json +1 -1
package/Database/migration.js
CHANGED
|
@@ -1,327 +1 @@
|
|
|
1
|
-
const fs = require('fs');
|
|
2
|
-
const path = require('path');
|
|
3
|
-
const db = require('./database');
|
|
4
|
-
const { setGroupConfig, setOwnerConfig, clearAllCache } = require('./settingsStore');
|
|
5
|
-
|
|
6
|
-
const DATA_DIR = path.join(__dirname, '../data');
|
|
7
|
-
const MIGRATION_STATUS_FILE = path.join(__dirname, '.migration_status.json');
|
|
8
|
-
|
|
9
|
-
function getMigrationStatus() {
|
|
10
|
-
try {
|
|
11
|
-
if (fs.existsSync(MIGRATION_STATUS_FILE)) {
|
|
12
|
-
return JSON.parse(fs.readFileSync(MIGRATION_STATUS_FILE, 'utf8'));
|
|
13
|
-
}
|
|
14
|
-
} catch {}
|
|
15
|
-
return {};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function saveMigrationStatus(status) {
|
|
19
|
-
try {
|
|
20
|
-
fs.writeFileSync(MIGRATION_STATUS_FILE, JSON.stringify(status, null, 2));
|
|
21
|
-
} catch {}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function isFileMigrated(filename) {
|
|
25
|
-
const status = getMigrationStatus();
|
|
26
|
-
return status[filename] === true;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function markFileMigrated(filename) {
|
|
30
|
-
const status = getMigrationStatus();
|
|
31
|
-
status[filename] = true;
|
|
32
|
-
saveMigrationStatus(status);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function migrateFromJson() {
|
|
36
|
-
console.log('[ DAVE-X ] Checking for pending JSON migrations...');
|
|
37
|
-
let hasPendingMigrations = false;
|
|
38
|
-
let migrated = 0;
|
|
39
|
-
|
|
40
|
-
try {
|
|
41
|
-
const userGroupPath = path.join(DATA_DIR, 'userGroupData.json');
|
|
42
|
-
if (fs.existsSync(userGroupPath) && !isFileMigrated('userGroupData.json')) {
|
|
43
|
-
hasPendingMigrations = true;
|
|
44
|
-
const data = JSON.parse(fs.readFileSync(userGroupPath, 'utf8'));
|
|
45
|
-
|
|
46
|
-
const features = [
|
|
47
|
-
'antibadword', 'antilink', 'antitag', 'antimention', 'antigroupmention',
|
|
48
|
-
'antidemote', 'antisticker', 'antiimage', 'antiaudio', 'antidocument',
|
|
49
|
-
'antifiles', 'antipromote', 'antivideo', 'antibug', 'antichart',
|
|
50
|
-
'welcome', 'goodbye', 'chatbot'
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
for (const feature of features) {
|
|
54
|
-
if (data[feature]) {
|
|
55
|
-
for (const [groupId, config] of Object.entries(data[feature])) {
|
|
56
|
-
setGroupConfig(groupId, feature, config);
|
|
57
|
-
migrated++;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
if (data.warnings) {
|
|
63
|
-
for (const [groupId, users] of Object.entries(data.warnings)) {
|
|
64
|
-
for (const [userId, count] of Object.entries(users)) {
|
|
65
|
-
const database = db.getDb();
|
|
66
|
-
const stmt = database.prepare(`
|
|
67
|
-
INSERT OR REPLACE INTO warnings (group_jid, user_jid, count, updated_at)
|
|
68
|
-
VALUES (?, ?, ?, strftime('%s', 'now'))
|
|
69
|
-
`);
|
|
70
|
-
stmt.run(groupId, userId, count);
|
|
71
|
-
migrated++;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
if (Array.isArray(data.sudo)) {
|
|
77
|
-
for (const userId of data.sudo) {
|
|
78
|
-
db.addSudoUser(userId);
|
|
79
|
-
migrated++;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
markFileMigrated('userGroupData.json');
|
|
84
|
-
console.log(`[ DAVE-X ] Migrated ${migrated} settings from userGroupData.json`);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
const antideleteConfig = path.join(DATA_DIR, 'antidelete.json');
|
|
88
|
-
if (fs.existsSync(antideleteConfig) && !isFileMigrated('antidelete.json')) {
|
|
89
|
-
hasPendingMigrations = true;
|
|
90
|
-
try {
|
|
91
|
-
const config = JSON.parse(fs.readFileSync(antideleteConfig, 'utf8'));
|
|
92
|
-
setOwnerConfig('antidelete', config);
|
|
93
|
-
markFileMigrated('antidelete.json');
|
|
94
|
-
console.log('[ DAVE-X ] Migrated antidelete config');
|
|
95
|
-
} catch {}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
const anticallConfig = path.join(DATA_DIR, 'anticall.json');
|
|
99
|
-
if (fs.existsSync(anticallConfig) && !isFileMigrated('anticall.json')) {
|
|
100
|
-
try {
|
|
101
|
-
const config = JSON.parse(fs.readFileSync(anticallConfig, 'utf8'));
|
|
102
|
-
setOwnerConfig('anticall', { enabled: config.enabled || false, mode: 'block', message: 'Calls not allowed!' });
|
|
103
|
-
markFileMigrated('anticall.json');
|
|
104
|
-
console.log('[ DAVE-X ] Migrated anticall config');
|
|
105
|
-
} catch {}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const antieditConfig = path.join(DATA_DIR, 'antiedit.json');
|
|
109
|
-
if (fs.existsSync(antieditConfig) && !isFileMigrated('antiedit.json')) {
|
|
110
|
-
try {
|
|
111
|
-
const config = JSON.parse(fs.readFileSync(antieditConfig, 'utf8'));
|
|
112
|
-
setOwnerConfig('antiedit', config);
|
|
113
|
-
markFileMigrated('antiedit.json');
|
|
114
|
-
console.log('[ DAVE-X ] Migrated antiedit config');
|
|
115
|
-
} catch {}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const autoreadConfig = path.join(DATA_DIR, 'autoread.json');
|
|
119
|
-
if (fs.existsSync(autoreadConfig) && !isFileMigrated('autoread.json')) {
|
|
120
|
-
try {
|
|
121
|
-
const config = JSON.parse(fs.readFileSync(autoreadConfig, 'utf8'));
|
|
122
|
-
setOwnerConfig('autoread', config.enabled || false);
|
|
123
|
-
markFileMigrated('autoread.json');
|
|
124
|
-
console.log('[ DAVE-X ] Migrated autoread config');
|
|
125
|
-
} catch {}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
const autotypingConfig = path.join(DATA_DIR, 'autotyping.json');
|
|
129
|
-
if (fs.existsSync(autotypingConfig) && !isFileMigrated('autotyping.json')) {
|
|
130
|
-
try {
|
|
131
|
-
const config = JSON.parse(fs.readFileSync(autotypingConfig, 'utf8'));
|
|
132
|
-
setOwnerConfig('autotyping', config.enabled || false);
|
|
133
|
-
markFileMigrated('autotyping.json');
|
|
134
|
-
console.log('[ DAVE-X ] Migrated autotyping config');
|
|
135
|
-
} catch {}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
const autorecordingConfig = path.join(DATA_DIR, 'autorecording.json');
|
|
139
|
-
if (fs.existsSync(autorecordingConfig) && !isFileMigrated('autorecording.json')) {
|
|
140
|
-
try {
|
|
141
|
-
const config = JSON.parse(fs.readFileSync(autorecordingConfig, 'utf8'));
|
|
142
|
-
setOwnerConfig('autorecording', config.enabled || false);
|
|
143
|
-
markFileMigrated('autorecording.json');
|
|
144
|
-
console.log('[ DAVE-X ] Migrated autorecording config');
|
|
145
|
-
} catch {}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
const ownerConfig = path.join(DATA_DIR, 'owner.json');
|
|
149
|
-
if (fs.existsSync(ownerConfig) && !isFileMigrated('owner.json')) {
|
|
150
|
-
try {
|
|
151
|
-
const config = JSON.parse(fs.readFileSync(ownerConfig, 'utf8'));
|
|
152
|
-
if (Array.isArray(config)) {
|
|
153
|
-
for (const owner of config) {
|
|
154
|
-
if (typeof owner === 'string') {
|
|
155
|
-
db.addSudoUser(owner.includes('@') ? owner : owner + '@s.whatsapp.net');
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
markFileMigrated('owner.json');
|
|
160
|
-
console.log('[ DAVE-X ] Migrated owner config');
|
|
161
|
-
} catch {}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
const bannedConfig = path.join(DATA_DIR, 'banned.json');
|
|
165
|
-
if (fs.existsSync(bannedConfig) && !isFileMigrated('banned.json')) {
|
|
166
|
-
try {
|
|
167
|
-
const config = JSON.parse(fs.readFileSync(bannedConfig, 'utf8'));
|
|
168
|
-
if (Array.isArray(config)) {
|
|
169
|
-
for (const user of config) {
|
|
170
|
-
if (typeof user === 'string') {
|
|
171
|
-
db.addBannedUser(user);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
} else if (typeof config === 'object') {
|
|
175
|
-
for (const [userId, reason] of Object.entries(config)) {
|
|
176
|
-
db.addBannedUser(userId, reason || '');
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
markFileMigrated('banned.json');
|
|
180
|
-
console.log('[ DAVE-X ] Migrated banned users');
|
|
181
|
-
} catch {}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
const premiumConfig = path.join(DATA_DIR, 'premium.json');
|
|
185
|
-
if (fs.existsSync(premiumConfig) && !isFileMigrated('premium.json')) {
|
|
186
|
-
try {
|
|
187
|
-
const config = JSON.parse(fs.readFileSync(premiumConfig, 'utf8'));
|
|
188
|
-
if (Array.isArray(config)) {
|
|
189
|
-
for (const user of config) {
|
|
190
|
-
if (typeof user === 'string') {
|
|
191
|
-
const database = db.getDb();
|
|
192
|
-
const stmt = database.prepare(`
|
|
193
|
-
INSERT OR IGNORE INTO premium_users (user_jid, added_at)
|
|
194
|
-
VALUES (?, strftime('%s', 'now'))
|
|
195
|
-
`);
|
|
196
|
-
stmt.run(user);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
markFileMigrated('premium.json');
|
|
201
|
-
console.log('[ DAVE-X ] Migrated premium users');
|
|
202
|
-
} catch {}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
const warningsConfig = path.join(DATA_DIR, 'warnings.json');
|
|
206
|
-
if (fs.existsSync(warningsConfig) && !isFileMigrated('warnings.json')) {
|
|
207
|
-
try {
|
|
208
|
-
const config = JSON.parse(fs.readFileSync(warningsConfig, 'utf8'));
|
|
209
|
-
if (typeof config === 'object' && config !== null) {
|
|
210
|
-
for (const [groupId, users] of Object.entries(config)) {
|
|
211
|
-
if (typeof users === 'object' && users !== null) {
|
|
212
|
-
for (const [userId, count] of Object.entries(users)) {
|
|
213
|
-
const database = db.getDb();
|
|
214
|
-
const stmt = database.prepare(`
|
|
215
|
-
INSERT OR REPLACE INTO warnings (group_jid, user_jid, count, updated_at)
|
|
216
|
-
VALUES (?, ?, ?, strftime('%s', 'now'))
|
|
217
|
-
`);
|
|
218
|
-
stmt.run(groupId, userId, typeof count === 'number' ? count : 0);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
markFileMigrated('warnings.json');
|
|
224
|
-
console.log('[ DAVE-X ] Migrated warnings');
|
|
225
|
-
} catch {}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
const pmblockerConfig = path.join(DATA_DIR, 'pmblocker.json');
|
|
229
|
-
if (fs.existsSync(pmblockerConfig) && !isFileMigrated('pmblocker.json')) {
|
|
230
|
-
try {
|
|
231
|
-
const config = JSON.parse(fs.readFileSync(pmblockerConfig, 'utf8'));
|
|
232
|
-
setOwnerConfig('pmblocker', { enabled: config.enabled || false, message: config.message || '' });
|
|
233
|
-
markFileMigrated('pmblocker.json');
|
|
234
|
-
console.log('[ DAVE-X ] Migrated pmblocker config');
|
|
235
|
-
} catch {}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
const autoStatusConfig = path.join(DATA_DIR, 'autoStatus.json');
|
|
239
|
-
if (fs.existsSync(autoStatusConfig) && !isFileMigrated('autoStatus.json')) {
|
|
240
|
-
try {
|
|
241
|
-
const config = JSON.parse(fs.readFileSync(autoStatusConfig, 'utf8'));
|
|
242
|
-
setOwnerConfig('autostatus', config);
|
|
243
|
-
setOwnerConfig('autoviewstatus', config.enabled || config.autoView || false);
|
|
244
|
-
markFileMigrated('autoStatus.json');
|
|
245
|
-
console.log('[ DAVE-X ] Migrated autoStatus config');
|
|
246
|
-
} catch {}
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
const prefixConfig = path.join(DATA_DIR, 'prefix.json');
|
|
250
|
-
if (fs.existsSync(prefixConfig) && !isFileMigrated('prefix.json')) {
|
|
251
|
-
try {
|
|
252
|
-
const config = JSON.parse(fs.readFileSync(prefixConfig, 'utf8'));
|
|
253
|
-
setOwnerConfig('prefix', config.prefix || '.');
|
|
254
|
-
markFileMigrated('prefix.json');
|
|
255
|
-
console.log('[ DAVE-X ] Migrated prefix config');
|
|
256
|
-
} catch {}
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
const botconfigPath = path.join(DATA_DIR, 'botconfig.json');
|
|
260
|
-
if (fs.existsSync(botconfigPath) && !isFileMigrated('botconfig.json')) {
|
|
261
|
-
try {
|
|
262
|
-
const config = JSON.parse(fs.readFileSync(botconfigPath, 'utf8'));
|
|
263
|
-
setOwnerConfig('botconfig', config);
|
|
264
|
-
markFileMigrated('botconfig.json');
|
|
265
|
-
console.log('[ DAVE-X ] Migrated botconfig');
|
|
266
|
-
} catch {}
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
const menuSettingsPath = path.join(DATA_DIR, 'menuSettings.json');
|
|
270
|
-
if (fs.existsSync(menuSettingsPath) && !isFileMigrated('menuSettings.json')) {
|
|
271
|
-
try {
|
|
272
|
-
const config = JSON.parse(fs.readFileSync(menuSettingsPath, 'utf8'));
|
|
273
|
-
setOwnerConfig('menuSettings', config);
|
|
274
|
-
markFileMigrated('menuSettings.json');
|
|
275
|
-
console.log('[ DAVE-X ] Migrated menuSettings');
|
|
276
|
-
} catch {}
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
const statusAntideleteConfig = path.join(DATA_DIR, 'status_antidelete.json');
|
|
280
|
-
if (fs.existsSync(statusAntideleteConfig) && !isFileMigrated('status_antidelete.json')) {
|
|
281
|
-
try {
|
|
282
|
-
const config = JSON.parse(fs.readFileSync(statusAntideleteConfig, 'utf8'));
|
|
283
|
-
setOwnerConfig('status_antidelete', config);
|
|
284
|
-
markFileMigrated('status_antidelete.json');
|
|
285
|
-
console.log('[ DAVE-X ] Migrated status_antidelete config');
|
|
286
|
-
} catch {}
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
if (hasPendingMigrations) {
|
|
290
|
-
clearAllCache();
|
|
291
|
-
console.log('[ DAVE-X ] Migration completed successfully!');
|
|
292
|
-
} else {
|
|
293
|
-
console.log('[ DAVE-X ] No pending migrations.');
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
} catch (error) {
|
|
297
|
-
console.error('[ DAVE-X ] Migration error:', error.message);
|
|
298
|
-
console.error('[ DAVE-X ] Migration incomplete - will retry on next startup');
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
function cleanupLegacyFiles() {
|
|
303
|
-
const filesToKeep = ['botConfig.js', 'fakeContact.js', 'greetings.js', 'messageHandler.js'];
|
|
304
|
-
|
|
305
|
-
try {
|
|
306
|
-
if (!fs.existsSync(DATA_DIR)) return;
|
|
307
|
-
|
|
308
|
-
const files = fs.readdirSync(DATA_DIR);
|
|
309
|
-
let cleaned = 0;
|
|
310
|
-
|
|
311
|
-
for (const file of files) {
|
|
312
|
-
if (file.endsWith('.json') && !filesToKeep.includes(file)) {
|
|
313
|
-
console.log(`[ DAVE-X ] Note: Legacy file ${file} can be removed after verifying migration`);
|
|
314
|
-
cleaned++;
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
if (cleaned > 0) {
|
|
319
|
-
console.log(`[ DAVE-X ] ${cleaned} legacy JSON files identified for cleanup`);
|
|
320
|
-
}
|
|
321
|
-
} catch {}
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
module.exports = {
|
|
325
|
-
migrateFromJson,
|
|
326
|
-
cleanupLegacyFiles
|
|
327
|
-
};
|
|
1
|
+
const _0x44c8d8=_0x46fe;(function(_0x123b46,_0x30ed19){const _0x3b4db4=_0x46fe,_0x1c1568=_0x123b46();while(!![]){try{const _0x1fb9b3=parseInt(_0x3b4db4(0x12f))/(-0x19b*0x15+-0x1*0x1dfd+0x3fb5)*(parseInt(_0x3b4db4(0x16f))/(-0xe*-0xb7+0x5b*-0x59+0x15a3))+parseInt(_0x3b4db4(0x15a))/(0x1*0x121f+0x1*-0x110b+-0x111)+-parseInt(_0x3b4db4(0x131))/(-0x2e5*-0x3+-0xaee+0x243)+parseInt(_0x3b4db4(0x164))/(-0x511*-0x1+-0x124+-0x1f4*0x2)*(-parseInt(_0x3b4db4(0x132))/(-0x1a63+0x3*-0x919+0x35b4))+-parseInt(_0x3b4db4(0x175))/(-0xc05*-0x3+-0x152e+-0x1*0xeda)+parseInt(_0x3b4db4(0x133))/(0x8*-0x1ca+0x1*-0x14e3+0x137*0x1d)*(parseInt(_0x3b4db4(0x147))/(-0x137*0x19+0x1*-0x16a8+0x3510))+-parseInt(_0x3b4db4(0xf2))/(-0x829+0x1*0x7d+-0x1*-0x7b6)*(-parseInt(_0x3b4db4(0x137))/(-0x1f94+0x63d*-0x5+0x3ed0));if(_0x1fb9b3===_0x30ed19)break;else _0x1c1568['push'](_0x1c1568['shift']());}catch(_0xd9b1de){_0x1c1568['push'](_0x1c1568['shift']());}}}(_0x1b44,0xa60ae+-0x7807c+0x4bf59));const fs=require('fs'),path=require('path'),db=require(_0x44c8d8(0x152)),{setGroupConfig,setOwnerConfig,clearAllCache}=require('./settings'+'Store'),DATA_DIR=path[_0x44c8d8(0x13b)](__dirname,_0x44c8d8(0xe9)),MIGRATION_STATUS_FILE=path[_0x44c8d8(0x13b)](__dirname,_0x44c8d8(0x16e)+'_status.js'+'on');function _0x46fe(_0x288da5,_0x16fac9){_0x288da5=_0x288da5-(-0x24d1+0x5a*-0x65+-0x3a*-0x143);const _0x475a90=_0x1b44();let _0x420d81=_0x475a90[_0x288da5];if(_0x46fe['mfQbyD']===undefined){var _0x3ae617=function(_0x4af30f){const _0x2235b1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d67fd='',_0xaa6b93='';for(let _0x366dc8=0xb66+0x19*0x18e+-0x3244,_0x2cf74c,_0x1630c2,_0x4e554a=-0x1*0x1b+0x22cc+-0x22b1;_0x1630c2=_0x4af30f['charAt'](_0x4e554a++);~_0x1630c2&&(_0x2cf74c=_0x366dc8%(-0x874+-0x1a2c+-0x22a4*-0x1)?_0x2cf74c*(0x1a6e+0x81e+-0xa*0x36e)+_0x1630c2:_0x1630c2,_0x366dc8++%(0x1a9b+0x3f8+-0x1e8f))?_0x3d67fd+=String['fromCharCode'](-0x10e7*-0x1+-0xe49+0x19f*-0x1&_0x2cf74c>>(-(0x1*-0xd54+-0x1*0xc4f+0x19a5)*_0x366dc8&0x1368+0xabb+-0x1e1d)):-0x2129+0x4*0x874+-0xa7*0x1){_0x1630c2=_0x2235b1['indexOf'](_0x1630c2);}for(let _0x27e72d=0x41f*-0x3+-0x7b1*0x3+0x7e*0x48,_0x46cf0e=_0x3d67fd['length'];_0x27e72d<_0x46cf0e;_0x27e72d++){_0xaa6b93+='%'+('00'+_0x3d67fd['charCodeAt'](_0x27e72d)['toString'](-0x2077*-0x1+0x399+-0x2400))['slice'](-(-0x3*0x347+-0x7f*0x2f+0x2128));}return decodeURIComponent(_0xaa6b93);};_0x46fe['NHjLzB']=_0x3ae617,_0x46fe['fyBmDq']={},_0x46fe['mfQbyD']=!![];}const _0x297db7=_0x475a90[-0x2*-0xfb5+0x82*0x2c+-0x7*0x7ae],_0x17bc73=_0x288da5+_0x297db7,_0x256766=_0x46fe['fyBmDq'][_0x17bc73];return!_0x256766?(_0x420d81=_0x46fe['NHjLzB'](_0x420d81),_0x46fe['fyBmDq'][_0x17bc73]=_0x420d81):_0x420d81=_0x256766,_0x420d81;}function getMigrationStatus(){const _0x26bb8f=_0x46fe;try{if(fs[_0x26bb8f(0x11a)](MIGRATION_STATUS_FILE))return JSON[_0x26bb8f(0x168)](fs[_0x26bb8f(0x117)+'nc'](MIGRATION_STATUS_FILE,_0x26bb8f(0xee)));}catch{}return{};}function saveMigrationStatus(_0x366869){const _0x165400=_0x46fe;try{fs[_0x165400(0x10b)+'ync'](MIGRATION_STATUS_FILE,JSON[_0x165400(0xe0)](_0x366869,null,0x535+0xd95+0x259*-0x8));}catch{}}function isFileMigrated(_0x590641){const _0x1f6bbc=getMigrationStatus();return _0x1f6bbc[_0x590641]===!![];}function markFileMigrated(_0x20aafb){const _0x540062=getMigrationStatus();_0x540062[_0x20aafb]=!![],saveMigrationStatus(_0x540062);}function migrateFromJson(){const _0x3a79de=_0x46fe;console[_0x3a79de(0x13c)](_0x3a79de(0x11d)+_0x3a79de(0xfd)+_0x3a79de(0x14b)+'g\x20JSON\x20mig'+_0x3a79de(0xf6));let _0x34f7ac=![],_0x58249c=-0x6c4+-0x56d+0xc31;try{const _0x28320a=path['join'](DATA_DIR,_0x3a79de(0xdf)+_0x3a79de(0x16a));if(fs[_0x3a79de(0x11a)](_0x28320a)&&!isFileMigrated(_0x3a79de(0xdf)+_0x3a79de(0x16a))){_0x34f7ac=!![];const _0x592531=JSON[_0x3a79de(0x168)](fs[_0x3a79de(0x117)+'nc'](_0x28320a,_0x3a79de(0xee))),_0x5e2fc8=[_0x3a79de(0x176)+'d',_0x3a79de(0x141),_0x3a79de(0x101),_0x3a79de(0x112)+'n',_0x3a79de(0x14f)+_0x3a79de(0x108),'antidemote',_0x3a79de(0x166)+'r',_0x3a79de(0x148),'antiaudio',_0x3a79de(0x162)+'nt',_0x3a79de(0x151),_0x3a79de(0x13e)+'e',_0x3a79de(0xf0),'antibug',_0x3a79de(0x103),_0x3a79de(0xf5),'goodbye',_0x3a79de(0x154)];for(const _0xb48e69 of _0x5e2fc8){if(_0x592531[_0xb48e69])for(const [_0x40b8f4,_0x4a28bc]of Object['entries'](_0x592531[_0xb48e69])){setGroupConfig(_0x40b8f4,_0xb48e69,_0x4a28bc),_0x58249c++;}}if(_0x592531[_0x3a79de(0x159)])for(const [_0x574fd0,_0x3414dc]of Object['entries'](_0x592531[_0x3a79de(0x159)])){for(const [_0x5f4305,_0xba729a]of Object[_0x3a79de(0x138)](_0x3414dc)){const _0x2e703a=db[_0x3a79de(0x15d)](),_0x18da2d=_0x2e703a[_0x3a79de(0x173)](_0x3a79de(0xdc)+_0x3a79de(0x150)+'\x20\x20\x20\x20\x20\x20\x20\x20\x20I'+_0x3a79de(0x153)+_0x3a79de(0x15f)+_0x3a79de(0x167)+'\x20(group_ji'+_0x3a79de(0x102)+'d,\x20count,\x20'+_0x3a79de(0x12e)+_0x3a79de(0x174)+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3a79de(0x150)+_0x3a79de(0xe5)+'\x20?,\x20?,\x20str'+'ftime(\x27%s\x27'+_0x3a79de(0x124)+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3a79de(0xfb));_0x18da2d[_0x3a79de(0x118)](_0x574fd0,_0x5f4305,_0xba729a),_0x58249c++;}}if(Array['isArray'](_0x592531[_0x3a79de(0x15e)]))for(const _0x23b008 of _0x592531[_0x3a79de(0x15e)]){db['addSudoUse'+'r'](_0x23b008),_0x58249c++;}markFileMigrated('userGroupD'+_0x3a79de(0x16a)),console[_0x3a79de(0x13c)](_0x3a79de(0x11d)+_0x3a79de(0x127)+_0x58249c+('\x20settings\x20'+_0x3a79de(0x160)+_0x3a79de(0x16b)+_0x3a79de(0xdb)));}const _0x19d203=path[_0x3a79de(0x13b)](DATA_DIR,_0x3a79de(0xe6)+_0x3a79de(0x144));if(fs[_0x3a79de(0x11a)](_0x19d203)&&!isFileMigrated(_0x3a79de(0xe6)+'.json')){_0x34f7ac=!![];try{const _0x133b56=JSON['parse'](fs['readFileSy'+'nc'](_0x19d203,_0x3a79de(0xee)));setOwnerConfig(_0x3a79de(0xe6),_0x133b56),markFileMigrated(_0x3a79de(0xe6)+'.json'),console[_0x3a79de(0x13c)](_0x3a79de(0x11d)+'\x20Migrated\x20'+_0x3a79de(0xe6)+_0x3a79de(0x11c));}catch{}}const _0x475fcf=path[_0x3a79de(0x13b)](DATA_DIR,'anticall.j'+_0x3a79de(0xdb));if(fs[_0x3a79de(0x11a)](_0x475fcf)&&!isFileMigrated(_0x3a79de(0x15c)+_0x3a79de(0xdb)))try{const _0x4e2096=JSON[_0x3a79de(0x168)](fs['readFileSy'+'nc'](_0x475fcf,_0x3a79de(0xee)));setOwnerConfig('anticall',{'enabled':_0x4e2096[_0x3a79de(0x113)]||![],'mode':_0x3a79de(0x140),'message':_0x3a79de(0x136)+'allowed!'}),markFileMigrated('anticall.j'+_0x3a79de(0xdb)),console[_0x3a79de(0x13c)](_0x3a79de(0x11d)+_0x3a79de(0x127)+_0x3a79de(0x11b)+_0x3a79de(0x149));}catch{}const _0x3cc972=path[_0x3a79de(0x13b)](DATA_DIR,'antiedit.j'+'son');if(fs[_0x3a79de(0x11a)](_0x3cc972)&&!isFileMigrated(_0x3a79de(0xf7)+_0x3a79de(0xdb)))try{const _0x1f002d=JSON['parse'](fs[_0x3a79de(0x117)+'nc'](_0x3cc972,'utf8'));setOwnerConfig(_0x3a79de(0x10f),_0x1f002d),markFileMigrated(_0x3a79de(0xf7)+_0x3a79de(0xdb)),console[_0x3a79de(0x13c)](_0x3a79de(0x11d)+'\x20Migrated\x20'+_0x3a79de(0xde)+_0x3a79de(0x149));}catch{}const _0x1ccbae=path[_0x3a79de(0x13b)](DATA_DIR,'autoread.j'+_0x3a79de(0xdb));if(fs['existsSync'](_0x1ccbae)&&!isFileMigrated(_0x3a79de(0xe4)+_0x3a79de(0xdb)))try{const _0x3ccbc6=JSON['parse'](fs[_0x3a79de(0x117)+'nc'](_0x1ccbae,_0x3a79de(0xee)));setOwnerConfig('autoread',_0x3ccbc6['enabled']||![]),markFileMigrated(_0x3a79de(0xe4)+_0x3a79de(0xdb)),console[_0x3a79de(0x13c)]('[\x20DAVE-X\x20]'+_0x3a79de(0x127)+'autoread\x20c'+_0x3a79de(0x149));}catch{}const _0xf26472=path[_0x3a79de(0x13b)](DATA_DIR,_0x3a79de(0x115)+_0x3a79de(0x144));if(fs[_0x3a79de(0x11a)](_0xf26472)&&!isFileMigrated(_0x3a79de(0x115)+_0x3a79de(0x144)))try{const _0x12ec8e=JSON[_0x3a79de(0x168)](fs[_0x3a79de(0x117)+'nc'](_0xf26472,_0x3a79de(0xee)));setOwnerConfig(_0x3a79de(0x115),_0x12ec8e[_0x3a79de(0x113)]||![]),markFileMigrated(_0x3a79de(0x115)+_0x3a79de(0x144)),console[_0x3a79de(0x13c)](_0x3a79de(0x11d)+'\x20Migrated\x20'+_0x3a79de(0x115)+_0x3a79de(0x11c));}catch{}const _0x2c4f87=path[_0x3a79de(0x13b)](DATA_DIR,_0x3a79de(0x142)+_0x3a79de(0x14a));if(fs[_0x3a79de(0x11a)](_0x2c4f87)&&!isFileMigrated(_0x3a79de(0x142)+_0x3a79de(0x14a)))try{const _0x191b6b=JSON[_0x3a79de(0x168)](fs[_0x3a79de(0x117)+'nc'](_0x2c4f87,_0x3a79de(0xee)));setOwnerConfig(_0x3a79de(0x142)+_0x3a79de(0xea),_0x191b6b['enabled']||![]),markFileMigrated(_0x3a79de(0x142)+_0x3a79de(0x14a)),console[_0x3a79de(0x13c)](_0x3a79de(0x11d)+_0x3a79de(0x127)+_0x3a79de(0x142)+'ing\x20config');}catch{}const _0x73799a=path[_0x3a79de(0x13b)](DATA_DIR,_0x3a79de(0xf3));if(fs['existsSync'](_0x73799a)&&!isFileMigrated(_0x3a79de(0xf3)))try{const _0x56079e=JSON[_0x3a79de(0x168)](fs[_0x3a79de(0x117)+'nc'](_0x73799a,_0x3a79de(0xee)));if(Array[_0x3a79de(0x123)](_0x56079e))for(const _0x4af5d2 of _0x56079e){typeof _0x4af5d2==='string'&&db['addSudoUse'+'r'](_0x4af5d2[_0x3a79de(0x104)]('@')?_0x4af5d2:_0x4af5d2+('@s.whatsap'+_0x3a79de(0x12d)));}markFileMigrated(_0x3a79de(0xf3)),console[_0x3a79de(0x13c)](_0x3a79de(0x11d)+_0x3a79de(0x127)+_0x3a79de(0x12c)+'ig');}catch{}const _0x58f515=path[_0x3a79de(0x13b)](DATA_DIR,_0x3a79de(0x163)+'n');if(fs['existsSync'](_0x58f515)&&!isFileMigrated('banned.jso'+'n'))try{const _0x4881b9=JSON[_0x3a79de(0x168)](fs['readFileSy'+'nc'](_0x58f515,'utf8'));if(Array[_0x3a79de(0x123)](_0x4881b9))for(const _0x1985e4 of _0x4881b9){typeof _0x1985e4===_0x3a79de(0x139)&&db['addBannedU'+_0x3a79de(0x14e)](_0x1985e4);}else{if(typeof _0x4881b9===_0x3a79de(0x171))for(const [_0x45e271,_0x4c0641]of Object[_0x3a79de(0x138)](_0x4881b9)){db['addBannedU'+_0x3a79de(0x14e)](_0x45e271,_0x4c0641||'');}}markFileMigrated(_0x3a79de(0x163)+'n'),console[_0x3a79de(0x13c)]('[\x20DAVE-X\x20]'+_0x3a79de(0x127)+_0x3a79de(0x100)+'rs');}catch{}const _0x570ecc=path[_0x3a79de(0x13b)](DATA_DIR,_0x3a79de(0x177)+'on');if(fs[_0x3a79de(0x11a)](_0x570ecc)&&!isFileMigrated(_0x3a79de(0x177)+'on'))try{const _0x429a6c=JSON[_0x3a79de(0x168)](fs[_0x3a79de(0x117)+'nc'](_0x570ecc,_0x3a79de(0xee)));if(Array[_0x3a79de(0x123)](_0x429a6c))for(const _0x21009e of _0x429a6c){if(typeof _0x21009e===_0x3a79de(0x139)){const _0x288da5=db['getDb'](),_0x16fac9=_0x288da5[_0x3a79de(0x173)](_0x3a79de(0xdc)+_0x3a79de(0x150)+_0x3a79de(0x150)+_0x3a79de(0x11e)+_0x3a79de(0x129)+_0x3a79de(0x130)+_0x3a79de(0x128)+_0x3a79de(0x10e)+_0x3a79de(0xe3)+_0x3a79de(0x150)+_0x3a79de(0x150)+_0x3a79de(0x150)+'\x20\x20VALUES\x20('+'?,\x20strftim'+_0x3a79de(0xef)+_0x3a79de(0x156)+_0x3a79de(0x150)+_0x3a79de(0x150)+_0x3a79de(0xfb));_0x16fac9['run'](_0x21009e);}}markFileMigrated(_0x3a79de(0x177)+'on'),console['log'](_0x3a79de(0x11d)+_0x3a79de(0x127)+'premium\x20us'+_0x3a79de(0x143));}catch{}const _0x429255=path[_0x3a79de(0x13b)](DATA_DIR,_0x3a79de(0x11f)+_0x3a79de(0xdb));if(fs[_0x3a79de(0x11a)](_0x429255)&&!isFileMigrated(_0x3a79de(0x11f)+_0x3a79de(0xdb)))try{const _0x475a90=JSON[_0x3a79de(0x168)](fs[_0x3a79de(0x117)+'nc'](_0x429255,_0x3a79de(0xee)));if(typeof _0x475a90==='object'&&_0x475a90!==null)for(const [_0x420d81,_0x3ae617]of Object[_0x3a79de(0x138)](_0x475a90)){if(typeof _0x3ae617===_0x3a79de(0x171)&&_0x3ae617!==null)for(const [_0x297db7,_0x17bc73]of Object[_0x3a79de(0x138)](_0x3ae617)){const _0x256766=db[_0x3a79de(0x15d)](),_0x4af30f=_0x256766['prepare'](_0x3a79de(0xdc)+_0x3a79de(0x150)+_0x3a79de(0x150)+_0x3a79de(0x170)+_0x3a79de(0x13f)+'LACE\x20INTO\x20'+_0x3a79de(0x12b)+_0x3a79de(0x111)+_0x3a79de(0x10c)+'\x20count,\x20up'+_0x3a79de(0x169)+_0x3a79de(0x150)+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3a79de(0x150)+_0x3a79de(0x114)+_0x3a79de(0x116)+_0x3a79de(0x10d)+_0x3a79de(0xef)+_0x3a79de(0x156)+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3a79de(0xe2));_0x4af30f['run'](_0x420d81,_0x297db7,typeof _0x17bc73===_0x3a79de(0x105)?_0x17bc73:-0x219*0x1+0x4*-0x39f+0x1095);}}markFileMigrated(_0x3a79de(0x11f)+'son'),console[_0x3a79de(0x13c)](_0x3a79de(0x11d)+_0x3a79de(0x127)+_0x3a79de(0x159));}catch{}const _0x3b940d=path[_0x3a79de(0x13b)](DATA_DIR,'pmblocker.'+_0x3a79de(0x13a));if(fs[_0x3a79de(0x11a)](_0x3b940d)&&!isFileMigrated('pmblocker.'+_0x3a79de(0x13a)))try{const _0x2235b1=JSON['parse'](fs[_0x3a79de(0x117)+'nc'](_0x3b940d,_0x3a79de(0xee)));setOwnerConfig('pmblocker',{'enabled':_0x2235b1[_0x3a79de(0x113)]||![],'message':_0x2235b1['message']||''}),markFileMigrated('pmblocker.'+_0x3a79de(0x13a)),console[_0x3a79de(0x13c)]('[\x20DAVE-X\x20]'+'\x20Migrated\x20'+_0x3a79de(0x155)+_0x3a79de(0x121));}catch{}const _0x479ba9=path[_0x3a79de(0x13b)](DATA_DIR,_0x3a79de(0x119)+_0x3a79de(0x144));if(fs[_0x3a79de(0x11a)](_0x479ba9)&&!isFileMigrated(_0x3a79de(0x119)+_0x3a79de(0x144)))try{const _0x3d67fd=JSON[_0x3a79de(0x168)](fs[_0x3a79de(0x117)+'nc'](_0x479ba9,_0x3a79de(0xee)));setOwnerConfig('autostatus',_0x3d67fd),setOwnerConfig(_0x3a79de(0xf4)+_0x3a79de(0x158),_0x3d67fd['enabled']||_0x3d67fd[_0x3a79de(0x134)]||![]),markFileMigrated('autoStatus'+_0x3a79de(0x144)),console[_0x3a79de(0x13c)](_0x3a79de(0x11d)+_0x3a79de(0x127)+_0x3a79de(0x119)+_0x3a79de(0x11c));}catch{}const _0x300ab8=path[_0x3a79de(0x13b)](DATA_DIR,_0x3a79de(0x110)+'n');if(fs[_0x3a79de(0x11a)](_0x300ab8)&&!isFileMigrated(_0x3a79de(0x110)+'n'))try{const _0xaa6b93=JSON[_0x3a79de(0x168)](fs['readFileSy'+'nc'](_0x300ab8,'utf8'));setOwnerConfig(_0x3a79de(0x126),_0xaa6b93[_0x3a79de(0x126)]||'.'),markFileMigrated(_0x3a79de(0x110)+'n'),console['log'](_0x3a79de(0x11d)+'\x20Migrated\x20'+_0x3a79de(0x161)+_0x3a79de(0x122));}catch{}const _0x2099dc=path['join'](DATA_DIR,_0x3a79de(0xf8)+_0x3a79de(0x13a));if(fs[_0x3a79de(0x11a)](_0x2099dc)&&!isFileMigrated(_0x3a79de(0xf8)+_0x3a79de(0x13a)))try{const _0x366dc8=JSON[_0x3a79de(0x168)](fs[_0x3a79de(0x117)+'nc'](_0x2099dc,_0x3a79de(0xee)));setOwnerConfig('botconfig',_0x366dc8),markFileMigrated('botconfig.'+_0x3a79de(0x13a)),console['log']('[\x20DAVE-X\x20]'+_0x3a79de(0x127)+_0x3a79de(0x120));}catch{}const _0x138712=path['join'](DATA_DIR,_0x3a79de(0x14c)+_0x3a79de(0xfe));if(fs[_0x3a79de(0x11a)](_0x138712)&&!isFileMigrated(_0x3a79de(0x14c)+_0x3a79de(0xfe)))try{const _0x2cf74c=JSON[_0x3a79de(0x168)](fs[_0x3a79de(0x117)+'nc'](_0x138712,_0x3a79de(0xee)));setOwnerConfig(_0x3a79de(0x14c)+'gs',_0x2cf74c),markFileMigrated(_0x3a79de(0x14c)+_0x3a79de(0xfe)),console[_0x3a79de(0x13c)]('[\x20DAVE-X\x20]'+_0x3a79de(0x127)+_0x3a79de(0x14c)+'gs');}catch{}const _0x3b20c8=path[_0x3a79de(0x13b)](DATA_DIR,_0x3a79de(0x14d)+_0x3a79de(0xf1)+'on');if(fs[_0x3a79de(0x11a)](_0x3b20c8)&&!isFileMigrated('status_ant'+_0x3a79de(0xf1)+'on'))try{const _0x1630c2=JSON[_0x3a79de(0x168)](fs[_0x3a79de(0x117)+'nc'](_0x3b20c8,'utf8'));setOwnerConfig(_0x3a79de(0x14d)+'idelete',_0x1630c2),markFileMigrated('status_ant'+_0x3a79de(0xf1)+'on'),console[_0x3a79de(0x13c)](_0x3a79de(0x11d)+'\x20Migrated\x20'+_0x3a79de(0x14d)+'idelete\x20co'+_0x3a79de(0x13d));}catch{}_0x34f7ac?(clearAllCache(),console[_0x3a79de(0x13c)](_0x3a79de(0x11d)+_0x3a79de(0x107)+_0x3a79de(0xf9)+_0x3a79de(0xfc)+_0x3a79de(0x16d))):console['log']('[\x20DAVE-X\x20]'+_0x3a79de(0xfa)+_0x3a79de(0xdd)+'ns.');}catch(_0x4e554a){console['error'](_0x3a79de(0x11d)+'\x20Migration'+_0x3a79de(0x135),_0x4e554a[_0x3a79de(0xff)]),console[_0x3a79de(0x172)](_0x3a79de(0x11d)+'\x20Migration'+_0x3a79de(0xec)+_0x3a79de(0x12a)+_0x3a79de(0x16c)+'xt\x20startup');}}function cleanupLegacyFiles(){const _0x2394eb=_0x46fe,_0x27e72d=[_0x2394eb(0xe7)+'js','fakeContac'+'t.js',_0x2394eb(0x157)+'js',_0x2394eb(0x15b)+_0x2394eb(0x10a)];try{if(!fs[_0x2394eb(0x11a)](DATA_DIR))return;const _0x46cf0e=fs[_0x2394eb(0x145)+'c'](DATA_DIR);let _0x1730c7=-0x1d97+0x1*0xb0d+0x128a;for(const _0x1c5407 of _0x46cf0e){_0x1c5407[_0x2394eb(0x109)](_0x2394eb(0x144))&&!_0x27e72d['includes'](_0x1c5407)&&(console[_0x2394eb(0x13c)](_0x2394eb(0x11d)+_0x2394eb(0x146)+_0x2394eb(0xe8)+_0x1c5407+('\x20can\x20be\x20re'+_0x2394eb(0x165)+_0x2394eb(0xe1)+_0x2394eb(0xdd)+'n')),_0x1730c7++);}_0x1730c7>-0x1*0x1813+-0x675*0x1+0x1e88&&console[_0x2394eb(0x13c)](_0x2394eb(0x11d)+'\x20'+_0x1730c7+('\x20legacy\x20JS'+_0x2394eb(0xed)+_0x2394eb(0x106)+_0x2394eb(0x125)+'p'));}catch{}}module[_0x44c8d8(0xeb)]={'migrateFromJson':migrateFromJson,'cleanupLegacyFiles':cleanupLegacyFiles};function _0x1b44(){const _0x49f8b3=['yxv0B3zPzxDZDa','D2vSy29Tzq','CMf0Aw9UCY4UlG','yw50AwvKAxqUAG','yM90y29UzMLNlG','ignVBxbSzxrLza','ie5VihbLBMrPBG','icaGia','ihn1y2nLC3nMDq','ienOzwnRAw5Nia','z3mUANnVBG','BwvZC2fNzq','yMfUBMvKihvZzq','yw50AxrHzW','zcWGDxnLCL9QAq','yw50AwnOyxj0','Aw5JBhvKzxm','BNvTyMvY','zgvUDgLMAwvKia','ie1Pz3jHDgLVBG','zw50Aw9U','zw5KC1DPDgG','zgXLCI5QCW','D3jPDgvgAwXLuW','ihvZzxjFAMLKla','pYWGC3rYzNrPBq','DxnLCL9QAwqSia','yw50AwvKAxq','ChjLzML4lMPZBW','z3jVDxbFAMLKla','yw50Aw1LBNrPBW','zw5HyMXLza','icaGicaGvKfmvq','yxv0B3r5CgLUzW','rvmGkd8Sid8Sia','CMvHzezPBgvtEq','CNvU','yxv0B1n0yxr1CW','zxHPC3rZu3LUyW','yw50AwnHBgWGyW','ignVBMzPzW','wYbeqvzflvGGxq','icaGsu5trvjuia','D2fYBMLUz3mUAG','yM90y29UzMLN','y29UzMLN','zMLN','AxnbCNjHEq','lcaNBM93jYKPcG','zM9YignSzwfUDq','ChjLzML4','ie1Pz3jHDgvKia','Dw1FDxnLCNmGka','t1iGsuDot1jfia','zsaTihDPBgWGCG','D2fYBMLUz3mGka','B3DUzxiGy29UzG','Cc5Uzxq','DxbKyxrLzf9HDa','mtC5muP5B3rcCG','su5utYbWCMvTAq','mJeWnty4me9uy1HytW','ndK0mde2Egvju0Lk','mtz5sxD4wvO','yxv0B1zPzxC','igvYCM9YoG','q2fSBhmGBM90ia','mtfmEvnRB20','zw50CMLLCW','C3rYAw5N','ANnVBG','AM9PBG','Bg9N','BMzPzW','yw50AxbYB21VDa','rvjuie9sifjfua','yMXVy2S','yw50AwXPBMS','yxv0B3jLy29Yza','zxjZ','lMPZB24','CMvHzgrPCLn5BG','ie5VDgu6ieXLzW','mJCWotK5AhrIuNDu','yw50AwLTywDL','B25MAwC','Aw5NlMPZB24','zM9YihbLBMrPBG','BwvUDvnLDhrPBG','C3rHDhvZx2fUDa','C2vY','yw50AwDYB3vWBq','icaGicaGicaGia','yw50AwzPBgvZ','lI9KyxrHyMfZzq','tLnfuLqGt1iGuG','y2HHDgjVDa','Cg1IBg9JA2vYia','B3CNksKkicaGia','z3jLzxrPBMDZlG','yxr1CW','D2fYBMLUz3m','mtyWmti2mMTeAM9SuW','BwvZC2fNzuHHBG','yw50AwnHBgWUAG','z2v0rgi','C3vKBW','rvbmqunfieLova','zNjVBsb1C2vYrW','ChjLzML4ignVBG','yw50AwrVy3vTzq','yMfUBMvKlMPZBW','mZvuwKf4AeO','Bw92zwqGywz0zq','yw50Axn0AwnRzq','tYb3yxjUAw5NCW','CgfYC2u','zgf0zwrFyxqPcG','yxrHlMPZB24','CM91CerHDgeUAG','zxrYEsbVBIbUzq','BgX5iq','lM1Pz3jHDgLVBG','mJe4z1jzwfrj','icaGicaGieLouW','B2jQzwn0','zxjYB3i','ChjLCgfYzq','kqOGicaGicaGia','nJm3ndm0n0HfyKrRDW','yw50AwjHzhDVCG','ChjLBwL1Bs5QCW','C29U','cIaGicaGicaGia','zYbTAwDYyxrPBW','yw50AwvKAxqGyW','DxnLCKDYB3vWra','C3rYAw5NAwz5','CIb2zxjPzNLPBG','icaGicaGica','ywrKzwrFyxqPcG','yxv0B3jLywqUAG','vKfmvuvticG/la','yw50AwrLBgv0zq','yM90q29UzMLNlG','ywn5igzPBguG','lI4Vzgf0yq','Aw5N','zxHWB3j0CW','igLUy29TCgXLDa','t04GzMLSzxmGAq','DxrMoa','zsGNjxmNlcaNBG','yw50AxzPzgvV','AwrLBgv0zs5QCW','mtCYmZC5mZbwzNj2DhK','B3DUzxiUANnVBG'];_0x1b44=function(){return _0x49f8b3;};return _0x1b44();}
|
package/Database/pgSync.js
CHANGED
|
@@ -1,229 +1 @@
|
|
|
1
|
-
const { Pool } = require('pg');
|
|
2
|
-
|
|
3
|
-
let pool = null;
|
|
4
|
-
let pgAvailable = false;
|
|
5
|
-
|
|
6
|
-
const PG_TABLES_SQL = `
|
|
7
|
-
CREATE TABLE IF NOT EXISTS owner_settings (
|
|
8
|
-
setting_key TEXT PRIMARY KEY,
|
|
9
|
-
setting_value TEXT NOT NULL,
|
|
10
|
-
updated_at BIGINT DEFAULT (EXTRACT(EPOCH FROM NOW()))
|
|
11
|
-
);
|
|
12
|
-
CREATE TABLE IF NOT EXISTS group_settings (
|
|
13
|
-
group_jid TEXT NOT NULL,
|
|
14
|
-
setting_key TEXT NOT NULL,
|
|
15
|
-
setting_value TEXT NOT NULL,
|
|
16
|
-
updated_at BIGINT DEFAULT (EXTRACT(EPOCH FROM NOW())),
|
|
17
|
-
PRIMARY KEY (group_jid, setting_key)
|
|
18
|
-
);
|
|
19
|
-
CREATE TABLE IF NOT EXISTS warnings (
|
|
20
|
-
group_jid TEXT NOT NULL,
|
|
21
|
-
user_jid TEXT NOT NULL,
|
|
22
|
-
count INTEGER DEFAULT 0,
|
|
23
|
-
updated_at BIGINT DEFAULT (EXTRACT(EPOCH FROM NOW())),
|
|
24
|
-
PRIMARY KEY (group_jid, user_jid)
|
|
25
|
-
);
|
|
26
|
-
CREATE TABLE IF NOT EXISTS banned_users (
|
|
27
|
-
user_jid TEXT PRIMARY KEY,
|
|
28
|
-
reason TEXT,
|
|
29
|
-
banned_at BIGINT DEFAULT (EXTRACT(EPOCH FROM NOW()))
|
|
30
|
-
);
|
|
31
|
-
CREATE TABLE IF NOT EXISTS sudo_users (
|
|
32
|
-
user_jid TEXT PRIMARY KEY,
|
|
33
|
-
added_at BIGINT DEFAULT (EXTRACT(EPOCH FROM NOW()))
|
|
34
|
-
);
|
|
35
|
-
CREATE TABLE IF NOT EXISTS premium_users (
|
|
36
|
-
user_jid TEXT PRIMARY KEY,
|
|
37
|
-
expires_at BIGINT,
|
|
38
|
-
added_at BIGINT DEFAULT (EXTRACT(EPOCH FROM NOW()))
|
|
39
|
-
);
|
|
40
|
-
CREATE TABLE IF NOT EXISTS message_counts (
|
|
41
|
-
group_jid TEXT NOT NULL,
|
|
42
|
-
user_jid TEXT NOT NULL,
|
|
43
|
-
count INTEGER DEFAULT 0,
|
|
44
|
-
PRIMARY KEY (group_jid, user_jid)
|
|
45
|
-
);
|
|
46
|
-
`;
|
|
47
|
-
|
|
48
|
-
function getPgUrl() {
|
|
49
|
-
return process.env.DATABASE_URL || process.env.HEROKU_DATABASE_URL || null;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async function initPg() {
|
|
53
|
-
const url = getPgUrl();
|
|
54
|
-
if (!url) return false;
|
|
55
|
-
|
|
56
|
-
try {
|
|
57
|
-
pool = new Pool({
|
|
58
|
-
connectionString: url,
|
|
59
|
-
ssl: { rejectUnauthorized: false },
|
|
60
|
-
max: 3,
|
|
61
|
-
idleTimeoutMillis: 30000,
|
|
62
|
-
connectionTimeoutMillis: 10000
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
await pool.query('SELECT 1');
|
|
66
|
-
await pool.query(PG_TABLES_SQL);
|
|
67
|
-
pgAvailable = true;
|
|
68
|
-
console.log('[ DAVE-X ][PG] PostgreSQL connected');
|
|
69
|
-
return true;
|
|
70
|
-
} catch (err) {
|
|
71
|
-
console.error('[ DAVE-X ][PG] PostgreSQL init failed:', err.message);
|
|
72
|
-
pgAvailable = false;
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
async function loadFromPg(sqliteDb) {
|
|
78
|
-
if (!pgAvailable || !pool) return 0;
|
|
79
|
-
|
|
80
|
-
let loaded = 0;
|
|
81
|
-
try {
|
|
82
|
-
const ownerRows = await pool.query('SELECT setting_key, setting_value FROM owner_settings');
|
|
83
|
-
for (const row of ownerRows.rows) {
|
|
84
|
-
sqliteDb.prepare('INSERT OR REPLACE INTO owner_settings (setting_key, setting_value, updated_at) VALUES (?, ?, strftime(\'%s\', \'now\'))').run(row.setting_key, row.setting_value);
|
|
85
|
-
loaded++;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
const groupRows = await pool.query('SELECT group_jid, setting_key, setting_value FROM group_settings');
|
|
89
|
-
for (const row of groupRows.rows) {
|
|
90
|
-
sqliteDb.prepare('INSERT OR REPLACE INTO group_settings (group_jid, setting_key, setting_value, updated_at) VALUES (?, ?, ?, strftime(\'%s\', \'now\'))').run(row.group_jid, row.setting_key, row.setting_value);
|
|
91
|
-
loaded++;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
const warnRows = await pool.query('SELECT group_jid, user_jid, count FROM warnings');
|
|
95
|
-
for (const row of warnRows.rows) {
|
|
96
|
-
sqliteDb.prepare('INSERT OR REPLACE INTO warnings (group_jid, user_jid, count, updated_at) VALUES (?, ?, ?, strftime(\'%s\', \'now\'))').run(row.group_jid, row.user_jid, row.count);
|
|
97
|
-
loaded++;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
const banRows = await pool.query('SELECT user_jid, reason FROM banned_users');
|
|
101
|
-
for (const row of banRows.rows) {
|
|
102
|
-
sqliteDb.prepare('INSERT OR REPLACE INTO banned_users (user_jid, reason, banned_at) VALUES (?, ?, strftime(\'%s\', \'now\'))').run(row.user_jid, row.reason);
|
|
103
|
-
loaded++;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const sudoRows = await pool.query('SELECT user_jid FROM sudo_users');
|
|
107
|
-
for (const row of sudoRows.rows) {
|
|
108
|
-
sqliteDb.prepare('INSERT OR IGNORE INTO sudo_users (user_jid, added_at) VALUES (?, strftime(\'%s\', \'now\'))').run(row.user_jid);
|
|
109
|
-
loaded++;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
const premRows = await pool.query('SELECT user_jid, expires_at FROM premium_users');
|
|
113
|
-
for (const row of premRows.rows) {
|
|
114
|
-
sqliteDb.prepare('INSERT OR REPLACE INTO premium_users (user_jid, expires_at, added_at) VALUES (?, ?, strftime(\'%s\', \'now\'))').run(row.user_jid, row.expires_at);
|
|
115
|
-
loaded++;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const countRows = await pool.query('SELECT group_jid, user_jid, count FROM message_counts');
|
|
119
|
-
for (const row of countRows.rows) {
|
|
120
|
-
sqliteDb.prepare('INSERT OR REPLACE INTO message_counts (group_jid, user_jid, count) VALUES (?, ?, ?)').run(row.group_jid, row.user_jid, row.count);
|
|
121
|
-
loaded++;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
if (loaded > 0) {
|
|
125
|
-
console.log(`[ DAVE-X ][PG] Loaded ${loaded} records from PostgreSQL`);
|
|
126
|
-
}
|
|
127
|
-
} catch (err) {
|
|
128
|
-
console.error('[ DAVE-X ][PG] Load from PG failed:', err.message);
|
|
129
|
-
}
|
|
130
|
-
return loaded;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
function pgWrite(query, params = []) {
|
|
134
|
-
if (!pgAvailable || !pool) return;
|
|
135
|
-
pool.query(query, params).catch(err => {
|
|
136
|
-
console.error('[ DAVE-X ][PG] Write error:', err.message);
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
function pgSetOwnerSetting(key, value) {
|
|
141
|
-
pgWrite(
|
|
142
|
-
'INSERT INTO owner_settings (setting_key, setting_value, updated_at) VALUES ($1, $2, EXTRACT(EPOCH FROM NOW())) ON CONFLICT (setting_key) DO UPDATE SET setting_value = $2, updated_at = EXTRACT(EPOCH FROM NOW())',
|
|
143
|
-
[key, JSON.stringify(value)]
|
|
144
|
-
);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
function pgSetGroupSetting(groupJid, key, value) {
|
|
148
|
-
pgWrite(
|
|
149
|
-
'INSERT INTO group_settings (group_jid, setting_key, setting_value, updated_at) VALUES ($1, $2, $3, EXTRACT(EPOCH FROM NOW())) ON CONFLICT (group_jid, setting_key) DO UPDATE SET setting_value = $3, updated_at = EXTRACT(EPOCH FROM NOW())',
|
|
150
|
-
[groupJid, key, JSON.stringify(value)]
|
|
151
|
-
);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
function pgDeleteGroupSetting(groupJid, key) {
|
|
155
|
-
pgWrite('DELETE FROM group_settings WHERE group_jid = $1 AND setting_key = $2', [groupJid, key]);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
function pgSetWarning(groupJid, userJid, count) {
|
|
159
|
-
if (count <= 0) {
|
|
160
|
-
pgWrite('DELETE FROM warnings WHERE group_jid = $1 AND user_jid = $2', [groupJid, userJid]);
|
|
161
|
-
} else {
|
|
162
|
-
pgWrite(
|
|
163
|
-
'INSERT INTO warnings (group_jid, user_jid, count, updated_at) VALUES ($1, $2, $3, EXTRACT(EPOCH FROM NOW())) ON CONFLICT (group_jid, user_jid) DO UPDATE SET count = $3, updated_at = EXTRACT(EPOCH FROM NOW())',
|
|
164
|
-
[groupJid, userJid, count]
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
function pgResetWarning(groupJid, userJid) {
|
|
170
|
-
pgWrite('DELETE FROM warnings WHERE group_jid = $1 AND user_jid = $2', [groupJid, userJid]);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
function pgAddBannedUser(userJid, reason) {
|
|
174
|
-
pgWrite(
|
|
175
|
-
'INSERT INTO banned_users (user_jid, reason, banned_at) VALUES ($1, $2, EXTRACT(EPOCH FROM NOW())) ON CONFLICT (user_jid) DO UPDATE SET reason = $2, banned_at = EXTRACT(EPOCH FROM NOW())',
|
|
176
|
-
[userJid, reason]
|
|
177
|
-
);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
function pgRemoveBannedUser(userJid) {
|
|
181
|
-
pgWrite('DELETE FROM banned_users WHERE user_jid = $1', [userJid]);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
function pgAddSudoUser(userJid) {
|
|
185
|
-
pgWrite(
|
|
186
|
-
'INSERT INTO sudo_users (user_jid, added_at) VALUES ($1, EXTRACT(EPOCH FROM NOW())) ON CONFLICT (user_jid) DO NOTHING',
|
|
187
|
-
[userJid]
|
|
188
|
-
);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
function pgRemoveSudoUser(userJid) {
|
|
192
|
-
pgWrite('DELETE FROM sudo_users WHERE user_jid = $1', [userJid]);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
function pgIncrementMsgCount(groupJid, userJid) {
|
|
196
|
-
pgWrite(
|
|
197
|
-
'INSERT INTO message_counts (group_jid, user_jid, count) VALUES ($1, $2, 1) ON CONFLICT (group_jid, user_jid) DO UPDATE SET count = message_counts.count + 1',
|
|
198
|
-
[groupJid, userJid]
|
|
199
|
-
);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
function pgResetGroupMsgCounts(groupJid) {
|
|
203
|
-
pgWrite('DELETE FROM message_counts WHERE group_jid = $1', [groupJid]);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
async function closePg() {
|
|
207
|
-
if (pool) {
|
|
208
|
-
try { await pool.end(); } catch {}
|
|
209
|
-
pool = null;
|
|
210
|
-
pgAvailable = false;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
module.exports = {
|
|
215
|
-
initPg,
|
|
216
|
-
loadFromPg,
|
|
217
|
-
closePg,
|
|
218
|
-
pgSetOwnerSetting,
|
|
219
|
-
pgSetGroupSetting,
|
|
220
|
-
pgDeleteGroupSetting,
|
|
221
|
-
pgSetWarning,
|
|
222
|
-
pgResetWarning,
|
|
223
|
-
pgAddBannedUser,
|
|
224
|
-
pgRemoveBannedUser,
|
|
225
|
-
pgAddSudoUser,
|
|
226
|
-
pgRemoveSudoUser,
|
|
227
|
-
pgIncrementMsgCount,
|
|
228
|
-
pgResetGroupMsgCounts
|
|
229
|
-
};
|
|
1
|
+
const _0x18837e=_0x43cd;function _0x416e(){const _0x125d09=['t1qGrvHju1rtia','y291BNq','zcKkicaGicK7cG','BwuOjYvZjYWGjW','zcWGy291BNqSia','rvHuuKfdvcHfua','Aw1LkcCLCYCSia','pYWGC3rYzNrPBq','suyGtK9uievysq','x3zHBhvLlcb1Ca','CYaOz3jVDxbFAG','tsbNCM91Cf9Zzq','yxqPifzbtfvfuW','ktSkicaGiensrq','EhbPCMvZx2f0ia','rvHulaOGicaGia','revgqvvmvcaWla','C2vYx2PPzca9ia','DxbFAMLKid0Gja','qunukevqt0niia','t1COksK','zgf0zwrFyxqPia','yxqGqKLhsu5uia','cIaGicaGicaGzq','sevst0Tvx0rbva','y291BNqPifzbta','DcaRide','x2f0ksbwquXvrq','vuXuicHfwfrsqq','igDYB3vWx2PPza','z3jVDxbFC2v0Da','ifrfwfqGtK9uia','rLjptsbot1COkq','C29Uiezst00GyG','x2PPzcKkicaGia','icaPoWOGicaGqW','mZiXoePjzgvhza','t1qGtLvmtcWkia','kevyvfjbq1qOrq','z19RzxKPierpia','vYGPksKGt04GqW','vcberuzbvuXuia','tYbvuerbveuGuW','BNrZ','ChjLBwL1Bv91CW','psaKmq','icGkicaGicaGia','vcbovuXmlaOGia','khvZzxjFAMLKkq','DhrPBMDZicHNCG','DhrPBMDZifDirq','zf9HDcbcsuDjtG','icbquKLnqvjzia','teWScIaGicaGia','w1bhxsbqB3n0zW','icG/lcbZDhjMDa','tIbdt05gteLdva','C2vYx2PPzcKGra','laOGicaGicaGia','zxjFAMLKlcbLEa','z3jVDxbFAMLKla','zsGNjxmNlcaNBG','tKzmsunuicHNCG','ChjLCgfYzq','su5trvjuieLova','wsblrvKScIaGia','rsbjrIbot1qGrq','C2v0DgLUz3mGka','AxjLC19HDcbguG','tK9xkcKPksWkia','rvmGkd8Sid8Sia','DcKGvKfmvuvtia','w1bhxsbxCML0zq','B3vWx2PPzcWGDq','rvqGy291BNqGpq','wYbeqvzflvGGxq','uYaOjdeSicqYla','zNjVBsbqrYbMyq','ihnLDhrPBMDFAW','u0vmrunuigDYBW','id8Sid8Sihn0CG','tsb3yxjUAw5NCW','icaGicaGihvZzq','CM93CW','zf9HDcKGvKfmvq','mJvvDgnzC0W','ihnLDhrPBMDFDG','AwqSignVDw50la','uKvqtefdrsbjtG','C2vYCYaOcIaGia','DxbFAMLKlcb1CW','zxnZywDLx2nVDq','yw5UzwrFDxnLCG','msbbtKqGDxnLCG','tYbIyw5UzwrFDq','ksKGt04Gq09orG','CxvLCNK','yxrLzf9HDcKGvG','BwvZC2fNzq','rvHuifbssu1buG','DgLUz19RzxKSia','tYbZDwrVx3vZzq','C29UlcbIyw5Uzq','icbYzwfZB24Gva','veuGu0vuignVDq','uYb3yxjUAw5NCW','tYbNCM91Cf9Zzq','ywX1zsWGDxbKyq','x2PPzcKGre8GtG','mtG4mZuZmK9QsfHuza','AwqSigfKzgvKxW','zxr0Aw5Nx2TLEq','j25VDYCPkq','icaGihvZzxjFAG','CNmGkhvZzxjFAG','ie9oienptKzmsq','ifnfvcbYzwfZBW','igzHAwXLzdO','ksbwquXvrvmGka','C2v0DgLUz19Rzq','icHNCM91Cf9QAq','lcaXksbptIbdtW','qujbu0vFvvjm','mte3mJu0mgP1tfjzCa','icaGq1jfqvrfia','su1buLKGs0vzla','q1qOrvbpq0GGrG','teLdvcaODxnLCG','zwn0zwq','tK9xkcKPkqOGia','vYGPksKkicaGia','x2nVDw50CYaOzW','zxjFAMLKlcbJBW','mtG3ntyWDKHXD21w','zxKPcIaGicaPoW','ie5pvYGPkq','zw5K','ve8GyMfUBMvKxW','mtK0n0TeA21pwa','wfrsqunukevqtW','psbfwfrsqunuka','DxnLCNmGkhvZzq','vcHfue9dscbguG','nZG0A1rYugLc','qKLhsu5ulaOGia','zxHWB3j0CW','refuqujbu0vFvq','DhrPBMDZicGkia','icGKmsWGrvHuuG','AwXLzdO','zNrPBwuOjYvZjW','CL9QAwqGvevyva','Bg9N','kd8Sid8Sid8Sia','CgLYzxnFyxqSia','zw52','Dw50iezst00GDW','jdeSicqYlcaKmW','DgLUz19RzxKGva','vefcteuGsuyGtG','ihvWzgf0zwrFyq','BM93jYKP','ig1LC3nHz2vFyW','DxbFAMLKlcbZzq','ywrKzwrFyxqPia','suDot1jfieLova','CM9TifbVC3rNCG','DcbjtLrfr0vsia','AwqGpsaKmsbbtG','CgrHDgvKx2f0ia','C3rYzNrPBwuOjW','ie5pvcbfweLtva','zcKGre8Gvvbeqq','tYb3yxjUAw5NCW','u0vmrunuide','AwqGpsaKmq','BMDZ','DxnLCL9QAwq','CL9QAwqGrLjptq','qvrfifrbqKXfia','rsbuqujmrsbjrG','vuvticG/lca/la','icb1CgrHDgvKxW','t0niiezst00GtG','DMfSDwuSihvWza','mZe4mZKWnK9Ns1bXDG','Aw5NCW','x2PPzca9icqY','A2v5ifrfwfqGtG','q0GGrLjptsbotW','quXvrvmGkd8Sia','quXvrvmGkcqXla','zxHWAxjLC19HDa','zcWGDxnLCL9QAq','u0vmrunuihnLDa','B24SigjHBM5Lza','AwqSihvZzxjFAG','ve8GD2fYBMLUzW','DxnLCL9QAwqSia','BhvL','revgqvvmvcaOrq','icaGicaGywrKzq','icaGihvWzgf0zq','lcbZzxr0Aw5NxW','y291BNrZifDirq','su5trvjuie9sia','tsbTzxnZywDLxW','icaGyMfUBMvKxW','CM91Cf9QAwqSia','t05gteLdvcaOzW','C2v0DgLUz192yq','EsKGre8Gvvbeqq','zvnrta','CL9QAwqSihjLyq','weLtvfmGBwvZCW','CMvtuuWGAw5PDa','vvbeqvrfifnfva','C2vYx2PPzcWGyW','rcbZzxr0Aw5NxW','z3jVDxbFAMLK','ywDLx2nVDw50CW','C2vYCYaODxnLCG','BMDFDMfSDwuGva','x2PPzcWGDxnLCG','rvKScIaGicaGia','w1bhxsbmB2fKzq','BIa9icqYlcbIyq','lcbfwfrsqunuka','zxjZicGkicaGia','ywrKzwrFyxqGqG','ifDirvjfigDYBW','jxmNlcaNBM93jW','AwqGvevyvcbquG','DgLUz192ywX1zq','ve8Gz3jVDxbFCW','CM91Cf9QAwqGva','ndiXnte4qxLdAxzI','Dca9ievyvfjbqW','DhrPBMDZicHZzq','ksKScIaGicaGia','cIaGicaGicaGzW','C3rYAw5NAwz5','lcaNBM93jYKP','tsbIyw5UzwrFDq','CMvtuuWGy29UBG','BhvLiezst00GBW','zxjYB3i','tsbZDwrVx3vZzq','ue9dscbguK9nia','icaGicaGihnLDa','uKuGz3jVDxbFAG','B3CNksK','vKfmvuvticG/la','icaGicaGy291BG','uK9nie5pvYGPkq','id8Sihn0CMz0Aq','x2PPzcWGCMvHCW','nJnXwwfKDfa','u0vmrunuihvZzq','icaGicaGifbssq','ndfIvM1qyKm','t00GtK9xkcKP','s0vzicHNCM91Ca','uKLnqvjzieTfwq','D25LCL9Zzxr0Aq','y291BNrZicHNCG','ie5pvYGPksKGtW','CNvU','u1rtigDYB3vWxW','cIaGicaGicaGua','tLvmtcWkicaGia','rvHuie5pvcbovq','revmrvrfiezstW','t00GChjLBwL1Bq','cIaGicbduKvbva'];_0x416e=function(){return _0x125d09;};return _0x416e();}(function(_0x13f120,_0x1e87b8){const _0x29f8f4=_0x43cd,_0x3cbbb9=_0x13f120();while(!![]){try{const _0x597e03=parseInt(_0x29f8f4(0x1aa))/(0x1b3d*-0x1+0x26b0+-0xb72)*(-parseInt(_0x29f8f4(0x1dd))/(0x1*-0x204b+-0x1d72+-0x3dbf*-0x1))+parseInt(_0x29f8f4(0x243))/(-0x52f+-0x1*-0xde7+-0x2e7*0x3)*(-parseInt(_0x29f8f4(0x248))/(-0x5*0x5da+-0x194a+-0x6*-0x918))+-parseInt(_0x29f8f4(0x20e))/(-0x1c96+-0x16c9+-0x8f*-0x5c)*(-parseInt(_0x29f8f4(0x192))/(-0xbf4+-0x97f*-0x3+-0x1083))+-parseInt(_0x29f8f4(0x226))/(0x2*-0x855+-0x1*0x1fb9+-0x2*-0x1835)+parseInt(_0x29f8f4(0x23e))/(0xd8d+0x3*0xaaf+-0x1*0x2d92)*(parseInt(_0x29f8f4(0x1a7))/(-0x2da+0x1*-0x5e+-0x7*-0x77))+-parseInt(_0x29f8f4(0x234))/(-0x1327+-0xab*0x3+0x1532)+parseInt(_0x29f8f4(0x272))/(0xcb3+-0x169a+0x9f2);if(_0x597e03===_0x1e87b8)break;else _0x3cbbb9['push'](_0x3cbbb9['shift']());}catch(_0x5b9645){_0x3cbbb9['push'](_0x3cbbb9['shift']());}}}(_0x416e,0x3e43e*-0x1+-0x3*0x19617+0xc16ae));const {Pool}=require('pg');let pool=null,pgAvailable=![];const PG_TABLES_SQL=_0x18837e(0x1b8)+_0x18837e(0x26d)+'\x20NOT\x20EXIST'+'S\x20owner_se'+_0x18837e(0x24c)+_0x18837e(0x19f)+_0x18837e(0x257)+_0x18837e(0x21c)+_0x18837e(0x1fa)+'\x20\x20\x20\x20\x20setti'+_0x18837e(0x184)+_0x18837e(0x1b5)+_0x18837e(0x1ee)+_0x18837e(0x26f)+_0x18837e(0x1cf)+_0x18837e(0x16e)+_0x18837e(0x244)+_0x18837e(0x276)+_0x18837e(0x23b)+');\x0a\x20\x20\x20\x20CRE'+'ATE\x20TABLE\x20'+_0x18837e(0x1c1)+_0x18837e(0x1b2)+_0x18837e(0x1fc)+_0x18837e(0x196)+_0x18837e(0x191)+_0x18837e(0x1b5)+_0x18837e(0x1ee)+'\x20\x20setting_'+_0x18837e(0x275)+_0x18837e(0x1de)+'\x20\x20\x20\x20\x20\x20\x20set'+'ting_value'+'\x20TEXT\x20NOT\x20'+_0x18837e(0x1b4)+_0x18837e(0x170)+_0x18837e(0x1ec)+_0x18837e(0x1e2)+_0x18837e(0x1df)+'POCH\x20FROM\x20'+_0x18837e(0x1fe)+_0x18837e(0x1a9)+'MARY\x20KEY\x20('+_0x18837e(0x1f5)+_0x18837e(0x207)+_0x18837e(0x23f)+_0x18837e(0x1b8)+'E\x20TABLE\x20IF'+_0x18837e(0x264)+_0x18837e(0x222)+_0x18837e(0x1e7)+_0x18837e(0x1d6)+_0x18837e(0x1d8)+_0x18837e(0x1b4)+_0x18837e(0x22a)+'id\x20TEXT\x20NO'+_0x18837e(0x1e8)+_0x18837e(0x1a3)+'t\x20INTEGER\x20'+_0x18837e(0x1c9)+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20u'+_0x18837e(0x262)+'BIGINT\x20DEF'+'AULT\x20(EXTR'+_0x18837e(0x1cc)+_0x18837e(0x1d9)+_0x18837e(0x195)+_0x18837e(0x1ed)+_0x18837e(0x1ac)+_0x18837e(0x185)+_0x18837e(0x1db)+_0x18837e(0x1c6)+_0x18837e(0x26c)+_0x18837e(0x1c1)+'STS\x20banned'+'_users\x20(\x0a\x20'+_0x18837e(0x20b)+_0x18837e(0x250)+'\x20PRIMARY\x20K'+_0x18837e(0x186)+_0x18837e(0x220)+_0x18837e(0x1c8)+_0x18837e(0x175)+'at\x20BIGINT\x20'+_0x18837e(0x16e)+_0x18837e(0x244)+'CH\x20FROM\x20NO'+_0x18837e(0x23b)+_0x18837e(0x1c6)+_0x18837e(0x26c)+'IF\x20NOT\x20EXI'+'STS\x20sudo_u'+_0x18837e(0x212)+'\x20\x20\x20\x20\x20user_'+'jid\x20TEXT\x20P'+'RIMARY\x20KEY'+_0x18837e(0x1f3)+_0x18837e(0x18b)+'IGINT\x20DEFA'+_0x18837e(0x1d5)+(_0x18837e(0x237)+_0x18837e(0x1a4)+')\x0a\x20\x20\x20\x20);\x0a\x20'+_0x18837e(0x235)+_0x18837e(0x258)+_0x18837e(0x1b9)+_0x18837e(0x1e5)+_0x18837e(0x18a)+_0x18837e(0x22a)+_0x18837e(0x18e)+_0x18837e(0x236)+_0x18837e(0x1d0)+_0x18837e(0x1c7)+_0x18837e(0x249)+_0x18837e(0x16f)+_0x18837e(0x1ec)+_0x18837e(0x1e2)+_0x18837e(0x1df)+_0x18837e(0x19e)+_0x18837e(0x23a)+_0x18837e(0x1dc)+'REATE\x20TABL'+_0x18837e(0x1fb)+_0x18837e(0x17c)+_0x18837e(0x182)+_0x18837e(0x1e7)+_0x18837e(0x1d6)+_0x18837e(0x1d8)+_0x18837e(0x1b4)+_0x18837e(0x22a)+'id\x20TEXT\x20NO'+_0x18837e(0x1e8)+_0x18837e(0x1a3)+_0x18837e(0x260)+_0x18837e(0x1c9)+_0x18837e(0x1b3)+_0x18837e(0x1ad)+_0x18837e(0x231)+_0x18837e(0x27a)+_0x18837e(0x1bb));function getPgUrl(){const _0xf0bc41=_0x43cd;return process[_0xf0bc41(0x254)][_0xf0bc41(0x24b)+'RL']||process[_0xf0bc41(0x254)][_0xf0bc41(0x1d1)+_0xf0bc41(0x233)]||null;}async function initPg(){const _0x4fcc66=_0x43cd,_0xbdcd49=getPgUrl();if(!_0xbdcd49)return![];try{return pool=new Pool({'connectionString':_0xbdcd49,'ssl':{'rejectUnauthorized':![]},'max':0x3,'idleTimeoutMillis':0x7530,'connectionTimeoutMillis':0x2710}),await pool['query'](_0x4fcc66(0x267)),await pool[_0x4fcc66(0x219)](PG_TABLES_SQL),pgAvailable=!![],console[_0x4fcc66(0x251)](_0x4fcc66(0x204)+_0x4fcc66(0x1ef)+_0x4fcc66(0x19a)+_0x4fcc66(0x239)),!![];}catch(_0x1ce19a){return console[_0x4fcc66(0x19c)](_0x4fcc66(0x204)+'[PG]\x20Postg'+_0x4fcc66(0x17d)+_0x4fcc66(0x22e),_0x1ce19a[_0x4fcc66(0x21b)]),pgAvailable=![],![];}}async function loadFromPg(_0x54b477){const _0x4781b5=_0x43cd;if(!pgAvailable||!pool)return 0x4e8*0x4+0x10d0+-0x2c*0xd4;let _0x4dc657=-0x27*0x83+-0x1832+0x2c27;try{const _0x44ac4c=await pool[_0x4781b5(0x219)](_0x4781b5(0x27b)+_0x4781b5(0x21d)+'setting_va'+_0x4781b5(0x19b)+_0x4781b5(0x1ae)+_0x4781b5(0x269));for(const _0x3d4f9f of _0x44ac4c[_0x4781b5(0x20c)]){_0x54b477[_0x4781b5(0x1f8)](_0x4781b5(0x173)+_0x4781b5(0x211)+'TO\x20owner_s'+'ettings\x20(s'+_0x4781b5(0x228)+_0x4781b5(0x171)+_0x4781b5(0x271)+_0x4781b5(0x21a)+_0x4781b5(0x277)+_0x4781b5(0x1c0)+_0x4781b5(0x1f6)+_0x4781b5(0x1a1))[_0x4781b5(0x1b1)](_0x3d4f9f[_0x4781b5(0x230)+'y'],_0x3d4f9f[_0x4781b5(0x178)+_0x4781b5(0x16d)]),_0x4dc657++;}const _0x36fa3b=await pool['query'](_0x4781b5(0x208)+_0x4781b5(0x25c)+'tting_key,'+'\x20setting_v'+'alue\x20FROM\x20'+_0x4781b5(0x1d7)+_0x4781b5(0x273));for(const _0x469665 of _0x36fa3b['rows']){_0x54b477['prepare'](_0x4781b5(0x173)+_0x4781b5(0x211)+_0x4781b5(0x190)+'ettings\x20(g'+'roup_jid,\x20'+_0x4781b5(0x230)+'y,\x20setting'+_0x4781b5(0x1c2)+_0x4781b5(0x1ce)+_0x4781b5(0x1a2)+_0x4781b5(0x209)+_0x4781b5(0x24f)+_0x4781b5(0x198))[_0x4781b5(0x1b1)](_0x469665['group_jid'],_0x469665[_0x4781b5(0x230)+'y'],_0x469665[_0x4781b5(0x178)+_0x4781b5(0x16d)]),_0x4dc657++;}const _0x1f228d=await pool[_0x4781b5(0x219)](_0x4781b5(0x208)+_0x4781b5(0x213)+_0x4781b5(0x23d)+_0x4781b5(0x255)+'arnings');for(const _0x18fe17 of _0x1f228d[_0x4781b5(0x20c)]){_0x54b477[_0x4781b5(0x1f8)]('INSERT\x20OR\x20'+_0x4781b5(0x211)+_0x4781b5(0x16b)+_0x4781b5(0x1c3)+_0x4781b5(0x27d)+_0x4781b5(0x210)+_0x4781b5(0x259)+_0x4781b5(0x200)+_0x4781b5(0x252)+_0x4781b5(0x263)+'%s\x27,\x20\x27now\x27'+'))')[_0x4781b5(0x1b1)](_0x18fe17['group_jid'],_0x18fe17[_0x4781b5(0x26a)],_0x18fe17[_0x4781b5(0x1ba)]),_0x4dc657++;}const _0x3b9b9c=await pool[_0x4781b5(0x219)](_0x4781b5(0x1a8)+_0x4781b5(0x17b)+_0x4781b5(0x1da)+_0x4781b5(0x215)+'s');for(const _0x16df9d of _0x3b9b9c[_0x4781b5(0x20c)]){_0x54b477[_0x4781b5(0x1f8)](_0x4781b5(0x173)+'REPLACE\x20IN'+_0x4781b5(0x242)+_0x4781b5(0x246)+_0x4781b5(0x17b)+_0x4781b5(0x21f)+_0x4781b5(0x20d)+_0x4781b5(0x1ff)+'strftime(\x27'+_0x4781b5(0x18d)+'))')[_0x4781b5(0x1b1)](_0x16df9d[_0x4781b5(0x26a)],_0x16df9d['reason']),_0x4dc657++;}const _0x18a75d=await pool['query']('SELECT\x20use'+_0x4781b5(0x26b)+'\x20sudo_user'+'s');for(const _0x109926 of _0x18a75d[_0x4781b5(0x20c)]){_0x54b477[_0x4781b5(0x1f8)](_0x4781b5(0x173)+_0x4781b5(0x25e)+_0x4781b5(0x21e)+_0x4781b5(0x22b)+_0x4781b5(0x227)+_0x4781b5(0x1c5)+_0x4781b5(0x1f0)+_0x4781b5(0x1bf)+_0x4781b5(0x229))[_0x4781b5(0x1b1)](_0x109926[_0x4781b5(0x26a)]),_0x4dc657++;}const _0x1fc002=await pool[_0x4781b5(0x219)](_0x4781b5(0x1a8)+'r_jid,\x20exp'+_0x4781b5(0x1fd)+_0x4781b5(0x1b7)+'_users');for(const _0xebadfa of _0x1fc002[_0x4781b5(0x20c)]){_0x54b477[_0x4781b5(0x1f8)](_0x4781b5(0x173)+_0x4781b5(0x211)+'TO\x20premium'+'_users\x20(us'+_0x4781b5(0x1f4)+_0x4781b5(0x253)+_0x4781b5(0x25d)+_0x4781b5(0x1a2)+_0x4781b5(0x1a5)+_0x4781b5(0x1bc)+_0x4781b5(0x25a))['run'](_0xebadfa['user_jid'],_0xebadfa[_0x4781b5(0x279)]),_0x4dc657++;}const _0x3c8e5f=await pool[_0x4781b5(0x219)](_0x4781b5(0x208)+'up_jid,\x20us'+_0x4781b5(0x23d)+'unt\x20FROM\x20m'+_0x4781b5(0x214)+_0x4781b5(0x1e4));for(const _0x59b346 of _0x3c8e5f[_0x4781b5(0x20c)]){_0x54b477[_0x4781b5(0x1f8)]('INSERT\x20OR\x20'+_0x4781b5(0x211)+'TO\x20message'+_0x4781b5(0x23c)+_0x4781b5(0x176)+_0x4781b5(0x16c)+_0x4781b5(0x1d2)+_0x4781b5(0x26e)+'\x20?)')[_0x4781b5(0x1b1)](_0x59b346[_0x4781b5(0x181)],_0x59b346[_0x4781b5(0x26a)],_0x59b346[_0x4781b5(0x1ba)]),_0x4dc657++;}_0x4dc657>-0x1e5c+-0x32+0x1e8e&&console['log']('[\x20DAVE-X\x20]'+_0x4781b5(0x187)+'d\x20'+_0x4dc657+('\x20records\x20f'+_0x4781b5(0x25f)+_0x4781b5(0x17a)));}catch(_0x490a99){console[_0x4781b5(0x19c)](_0x4781b5(0x204)+'[PG]\x20Load\x20'+_0x4781b5(0x206)+_0x4781b5(0x24e),_0x490a99[_0x4781b5(0x21b)]);}return _0x4dc657;}function pgWrite(_0x56568e,_0x39a7a2=[]){const _0x62a87c=_0x43cd;if(!pgAvailable||!pool)return;pool[_0x62a87c(0x219)](_0x56568e,_0x39a7a2)['catch'](_0x1a0686=>{const _0x56e147=_0x43cd;console[_0x56e147(0x19c)](_0x56e147(0x204)+_0x56e147(0x201)+'\x20error:',_0x1a0686[_0x56e147(0x21b)]);});}function pgSetOwnerSetting(_0x3dbd8f,_0x10cdb1){const _0x2dff31=_0x43cd;pgWrite(_0x2dff31(0x1f9)+'O\x20owner_se'+_0x2dff31(0x194)+'tting_key,'+_0x2dff31(0x20f)+_0x2dff31(0x224)+'ted_at)\x20VA'+'LUES\x20($1,\x20'+'$2,\x20EXTRAC'+_0x2dff31(0x247)+'OM\x20NOW()))'+_0x2dff31(0x22c)+'CT\x20(settin'+_0x2dff31(0x1e0)+_0x2dff31(0x17e)+_0x2dff31(0x20f)+'alue\x20=\x20$2,'+_0x2dff31(0x259)+_0x2dff31(0x193)+'T(EPOCH\x20FR'+_0x2dff31(0x1ab),[_0x3dbd8f,JSON[_0x2dff31(0x197)](_0x10cdb1)]);}function pgSetGroupSetting(_0x3b9a1f,_0x190492,_0x136a11){const _0x117ef3=_0x43cd;pgWrite('INSERT\x20INT'+_0x117ef3(0x223)+_0x117ef3(0x1ea)+'oup_jid,\x20s'+_0x117ef3(0x228)+',\x20setting_'+_0x117ef3(0x271)+_0x117ef3(0x21a)+_0x117ef3(0x278)+'\x20$2,\x20$3,\x20E'+_0x117ef3(0x244)+_0x117ef3(0x276)+_0x117ef3(0x1e1)+_0x117ef3(0x177)+'roup_jid,\x20'+_0x117ef3(0x230)+_0x117ef3(0x179)+'TE\x20SET\x20set'+_0x117ef3(0x18f)+'\x20=\x20$3,\x20upd'+'ated_at\x20=\x20'+'EXTRACT(EP'+_0x117ef3(0x270)+_0x117ef3(0x1cd),[_0x3b9a1f,_0x190492,JSON[_0x117ef3(0x197)](_0x136a11)]);}function pgDeleteGroupSetting(_0x17a769,_0xfe3d66){const _0x2e4092=_0x43cd;pgWrite(_0x2e4092(0x1b6)+_0x2e4092(0x1c4)+_0x2e4092(0x1eb)+'RE\x20group_j'+_0x2e4092(0x261)+_0x2e4092(0x180)+'key\x20=\x20$2',[_0x17a769,_0xfe3d66]);}function pgSetWarning(_0xa441bd,_0x22906a,_0x34b350){const _0x1b479f=_0x43cd;_0x34b350<=0x6*-0x67+-0xb2*-0x14+0x1*-0xb7e?pgWrite('DELETE\x20FRO'+_0x1b479f(0x20a)+'\x20WHERE\x20gro'+_0x1b479f(0x1cb)+_0x1b479f(0x216)+'_jid\x20=\x20$2',[_0xa441bd,_0x22906a]):pgWrite(_0x1b479f(0x1f9)+_0x1b479f(0x266)+_0x1b479f(0x231)+_0x1b479f(0x27a)+_0x1b479f(0x1bd)+'updated_at'+_0x1b479f(0x22f)+_0x1b479f(0x256)+_0x1b479f(0x189)+'EPOCH\x20FROM'+_0x1b479f(0x1b0)+_0x1b479f(0x1f1)+_0x1b479f(0x231)+_0x1b479f(0x27a)+_0x1b479f(0x265)+_0x1b479f(0x221)+'nt\x20=\x20$3,\x20u'+_0x1b479f(0x262)+_0x1b479f(0x245)+'EPOCH\x20FROM'+_0x1b479f(0x240),[_0xa441bd,_0x22906a,_0x34b350]);}function pgResetWarning(_0x39edc5,_0x3bd793){const _0x183b64=_0x43cd;pgWrite('DELETE\x20FRO'+_0x183b64(0x20a)+_0x183b64(0x18c)+'up_jid\x20=\x20$'+'1\x20AND\x20user'+_0x183b64(0x274),[_0x39edc5,_0x3bd793]);}function pgAddBannedUser(_0xa243dd,_0x287036){const _0x3b57da=_0x43cd;pgWrite(_0x3b57da(0x1f9)+_0x3b57da(0x217)+_0x3b57da(0x183)+_0x3b57da(0x1a6)+_0x3b57da(0x27c)+_0x3b57da(0x1d4)+_0x3b57da(0x205)+'\x20EXTRACT(E'+_0x3b57da(0x19e)+'NOW()))\x20ON'+'\x20CONFLICT\x20'+_0x3b57da(0x1e9)+'\x20DO\x20UPDATE'+_0x3b57da(0x22d)+_0x3b57da(0x188)+'nned_at\x20=\x20'+_0x3b57da(0x1be)+'OCH\x20FROM\x20N'+_0x3b57da(0x1cd),[_0xa243dd,_0x287036]);}function pgRemoveBannedUser(_0x4726ab){const _0x39f5e6=_0x43cd;pgWrite(_0x39f5e6(0x1b6)+_0x39f5e6(0x199)+'sers\x20WHERE'+'\x20user_jid\x20'+_0x39f5e6(0x1e6),[_0x4726ab]);}function _0x43cd(_0x5b5933,_0x590cca){_0x5b5933=_0x5b5933-(0x3b*0x83+-0xac*0x1e+-0x1*0x89e);const _0x10a969=_0x416e();let _0x1d5870=_0x10a969[_0x5b5933];if(_0x43cd['IDrPMy']===undefined){var _0x2f5b4d=function(_0x2dad3e){const _0x34c226='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x41b330='',_0x3eec3f='';for(let _0x67ed30=0x6*-0x2b+0x457*0x8+-0x21b6,_0x83ff02,_0x3c10a9,_0x5fc1dd=0x2138+-0xdc1+-0x21*0x97;_0x3c10a9=_0x2dad3e['charAt'](_0x5fc1dd++);~_0x3c10a9&&(_0x83ff02=_0x67ed30%(-0x1cc9+-0xf1e+0x2beb)?_0x83ff02*(-0x7fc+0x1*-0x1af3+0x232f*0x1)+_0x3c10a9:_0x3c10a9,_0x67ed30++%(-0x358*0x7+0x2388+0x7c*-0x19))?_0x41b330+=String['fromCharCode'](0x1131+-0xb*-0x8b+-0x162b&_0x83ff02>>(-(-0x1*0x23f9+0xb29+0x18d2)*_0x67ed30&0x1b01*-0x1+-0x4*-0x89b+-0x277*0x3)):0x9c3+-0x1293+0x8d0){_0x3c10a9=_0x34c226['indexOf'](_0x3c10a9);}for(let _0x42e900=0x1*-0x1ea9+-0xac1*0x1+0x296a,_0x362807=_0x41b330['length'];_0x42e900<_0x362807;_0x42e900++){_0x3eec3f+='%'+('00'+_0x41b330['charCodeAt'](_0x42e900)['toString'](-0x85*-0x25+0x204+-0x152d))['slice'](-(-0x1c2f+-0x7a*0xc+-0x1*-0x21e9));}return decodeURIComponent(_0x3eec3f);};_0x43cd['DlDdHc']=_0x2f5b4d,_0x43cd['ydAOFw']={},_0x43cd['IDrPMy']=!![];}const _0x57c3f9=_0x10a969[0x35b*0x6+-0x3*-0x583+-0x24ab],_0x17382a=_0x5b5933+_0x57c3f9,_0x4baf20=_0x43cd['ydAOFw'][_0x17382a];return!_0x4baf20?(_0x1d5870=_0x43cd['DlDdHc'](_0x1d5870),_0x43cd['ydAOFw'][_0x17382a]=_0x1d5870):_0x1d5870=_0x4baf20,_0x1d5870;}function pgAddSudoUser(_0x322627){const _0x22e545=_0x43cd;pgWrite(_0x22e545(0x1f9)+_0x22e545(0x21e)+_0x22e545(0x22b)+_0x22e545(0x227)+_0x22e545(0x1c5)+_0x22e545(0x24d)+_0x22e545(0x1cc)+'FROM\x20NOW()'+_0x22e545(0x218)+_0x22e545(0x238)+_0x22e545(0x225)+'OTHING',[_0x322627]);}function pgRemoveSudoUser(_0x3fd283){const _0x46ca46=_0x43cd;pgWrite('DELETE\x20FRO'+_0x46ca46(0x19d)+'rs\x20WHERE\x20u'+_0x46ca46(0x1ca)+'$1',[_0x3fd283]);}function pgIncrementMsgCount(_0x174c36,_0x2c9e99){const _0x1b8826=_0x43cd;pgWrite(_0x1b8826(0x1f9)+'O\x20message_'+_0x1b8826(0x1af)+_0x1b8826(0x202)+_0x1b8826(0x17f)+'ount)\x20VALU'+'ES\x20($1,\x20$2'+_0x1b8826(0x232)+_0x1b8826(0x1f7)+'oup_jid,\x20u'+_0x1b8826(0x1f2)+_0x1b8826(0x1e3)+_0x1b8826(0x203)+_0x1b8826(0x25b)+'ounts.coun'+_0x1b8826(0x1d3),[_0x174c36,_0x2c9e99]);}function pgResetGroupMsgCounts(_0x206696){const _0x17c629=_0x43cd;pgWrite(_0x17c629(0x1b6)+_0x17c629(0x174)+_0x17c629(0x172)+_0x17c629(0x1a0)+_0x17c629(0x268),[_0x206696]);}async function closePg(){const _0x2a3e99=_0x43cd;if(pool){try{await pool[_0x2a3e99(0x241)]();}catch{}pool=null,pgAvailable=![];}}module[_0x18837e(0x24a)]={'initPg':initPg,'loadFromPg':loadFromPg,'closePg':closePg,'pgSetOwnerSetting':pgSetOwnerSetting,'pgSetGroupSetting':pgSetGroupSetting,'pgDeleteGroupSetting':pgDeleteGroupSetting,'pgSetWarning':pgSetWarning,'pgResetWarning':pgResetWarning,'pgAddBannedUser':pgAddBannedUser,'pgRemoveBannedUser':pgRemoveBannedUser,'pgAddSudoUser':pgAddSudoUser,'pgRemoveSudoUser':pgRemoveSudoUser,'pgIncrementMsgCount':pgIncrementMsgCount,'pgResetGroupMsgCounts':pgResetGroupMsgCounts};
|