satanic-release 0.0.0-stage → 2.4.0
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/RUN NODE 20 - 21 +0 -0
- package/assets/fishing/LICENSE.txt +1 -0
- package/assets/fishing/SOURCES.md +8 -0
- package/assets/fishing/angler.svg +16 -0
- package/assets/fishing/background.svg +1 -0
- package/assets/fishing/bait.svg +1 -0
- package/assets/fishing/birds.svg +1 -0
- package/assets/fishing/boat.svg +1 -0
- package/assets/fishing/bobber.svg +1 -0
- package/assets/fishing/cloud.svg +1 -0
- package/assets/fishing/coin.svg +1 -0
- package/assets/fishing/coral.svg +1 -0
- package/assets/fishing/crate.svg +1 -0
- package/assets/fishing/fish-bass.svg +1 -0
- package/assets/fishing/fish-catfish.svg +1 -0
- package/assets/fishing/fish-koi.svg +1 -0
- package/assets/fishing/fish-perch.svg +1 -0
- package/assets/fishing/fish-trout.svg +1 -0
- package/assets/fishing/hook.svg +1 -0
- package/assets/fishing/lilypad.svg +1 -0
- package/assets/fishing/manifest.json +48 -0
- package/assets/fishing/net.svg +1 -0
- package/assets/fishing/reeds.svg +1 -0
- package/assets/fishing/rod.svg +1 -0
- package/assets/fishing/spark.svg +1 -0
- package/assets/fishing/splash.svg +5 -0
- package/assets/fishing/watergrass.svg +1 -0
- package/assets/fonts/qiro-nulis.ttf +0 -0
- package/assets/rpg/CC0_SOURCES.txt +23 -0
- package/assets/rpg/cc0/SOURCES.md +18 -0
- package/assets/rpg/items/antidote.svg +1 -0
- package/assets/rpg/items/armor.svg +1 -0
- package/assets/rpg/items/axe.svg +1 -0
- package/assets/rpg/items/bag.svg +1 -0
- package/assets/rpg/items/bear.svg +1 -0
- package/assets/rpg/items/boar.svg +1 -0
- package/assets/rpg/items/book.svg +1 -0
- package/assets/rpg/items/bow.svg +1 -0
- package/assets/rpg/items/car.svg +1 -0
- package/assets/rpg/items/cherry.svg +1 -0
- package/assets/rpg/items/chest.svg +1 -0
- package/assets/rpg/items/coal.svg +1 -0
- package/assets/rpg/items/coin.svg +1 -0
- package/assets/rpg/items/compass.svg +1 -0
- package/assets/rpg/items/crate.svg +1 -0
- package/assets/rpg/items/deer.svg +1 -0
- package/assets/rpg/items/demon.svg +1 -0
- package/assets/rpg/items/diamond.svg +5 -0
- package/assets/rpg/items/diamondchest.svg +1 -0
- package/assets/rpg/items/dice.svg +1 -0
- package/assets/rpg/items/dice1.svg +1 -0
- package/assets/rpg/items/dice2.svg +1 -0
- package/assets/rpg/items/dice3.svg +1 -0
- package/assets/rpg/items/dice4.svg +1 -0
- package/assets/rpg/items/dice5.svg +1 -0
- package/assets/rpg/items/dice6.svg +1 -0
- package/assets/rpg/items/dragon.svg +1 -0
- package/assets/rpg/items/dumbbell.svg +1 -0
- package/assets/rpg/items/egg.svg +1 -0
- package/assets/rpg/items/elixir.svg +1 -0
- package/assets/rpg/items/emerald.svg +1 -0
- package/assets/rpg/items/fish.svg +1 -0
- package/assets/rpg/items/fishingrod.svg +1 -0
- package/assets/rpg/items/flower.svg +1 -0
- package/assets/rpg/items/food.svg +1 -0
- package/assets/rpg/items/fox.svg +1 -0
- package/assets/rpg/items/frost.svg +1 -0
- package/assets/rpg/items/gold.svg +1 -0
- package/assets/rpg/items/goldchest.svg +1 -0
- package/assets/rpg/items/grape.svg +1 -0
- package/assets/rpg/items/hammer.svg +1 -0
- package/assets/rpg/items/helmet.svg +1 -0
- package/assets/rpg/items/herb.svg +1 -0
- package/assets/rpg/items/house.svg +1 -0
- package/assets/rpg/items/iron.svg +1 -0
- package/assets/rpg/items/key.svg +1 -0
- package/assets/rpg/items/kraken.svg +1 -0
- package/assets/rpg/items/kunai.svg +1 -0
- package/assets/rpg/items/leather.svg +1 -0
- package/assets/rpg/items/lemon.svg +1 -0
- package/assets/rpg/items/lion.svg +1 -0
- package/assets/rpg/items/map.svg +1 -0
- package/assets/rpg/items/meat.svg +1 -0
- package/assets/rpg/items/mpotion.svg +1 -0
- package/assets/rpg/items/octopus.svg +1 -0
- package/assets/rpg/items/orange.svg +1 -0
- package/assets/rpg/items/ore.svg +1 -0
- package/assets/rpg/items/parking.svg +1 -0
- package/assets/rpg/items/pearl.svg +1 -0
- package/assets/rpg/items/pet.svg +1 -0
- package/assets/rpg/items/pickaxe.svg +1 -0
- package/assets/rpg/items/potion.svg +1 -0
- package/assets/rpg/items/prawn.svg +1 -0
- package/assets/rpg/items/rabbit.svg +1 -0
- package/assets/rpg/items/ramen.svg +1 -0
- package/assets/rpg/items/rice.svg +1 -0
- package/assets/rpg/items/rock.svg +1 -0
- package/assets/rpg/items/scroll.svg +1 -0
- package/assets/rpg/items/seven.svg +1 -0
- package/assets/rpg/items/shark.svg +1 -0
- package/assets/rpg/items/shield.svg +1 -0
- package/assets/rpg/items/shuriken.svg +1 -0
- package/assets/rpg/items/slot.svg +1 -0
- package/assets/rpg/items/staminapotion.svg +1 -0
- package/assets/rpg/items/sword.svg +1 -0
- package/assets/rpg/items/tent.svg +1 -0
- package/assets/rpg/items/thunder.svg +1 -0
- package/assets/rpg/items/titan.svg +1 -0
- package/assets/rpg/items/trash.svg +1 -0
- package/assets/rpg/items/undead.svg +1 -0
- package/assets/rpg/items/whale.svg +1 -0
- package/assets/rpg/items/wheat.svg +1 -0
- package/assets/rpg/items/wood.svg +1 -0
- package/assets/rpg/ui/SOURCES.md +12 -0
- package/assets/rpg/ui/compass.svg +1 -0
- package/assets/rpg/ui/diamond.svg +1 -0
- package/assets/rpg/ui/soft-frame.svg +6 -0
- package/buypanel.js +37 -0
- package/cara ambil apikey.js +26 -0
- package/data/assets/Caveat-Bold.ttf +0 -0
- package/data/assets/FontsFree-Net-SFProDisplay-Bold.ttf +0 -0
- package/data/assets/FontsFree-Net-SFProDisplay-Regular.ttf +0 -0
- package/data/assets/Indie-Flower.ttf +0 -0
- package/database/absen.json +1 -0
- package/database/absen_status.json +1 -0
- package/database/admin.json +1 -0
- package/database/adminvip.json +1 -0
- package/database/afk.json +1 -0
- package/database/antiaudio.json +1 -0
- package/database/antibadword.json +1 -0
- package/database/antibot-settings.json +1 -0
- package/database/antibot.json +1 -0
- package/database/antidelete.json +3 -0
- package/database/antiig.json +1 -0
- package/database/antiimage.json +1 -0
- package/database/antilink.json +1 -0
- package/database/antilinkall.json +1 -0
- package/database/antilinkkick.json +1 -0
- package/database/antirvo.json +1 -0
- package/database/antispam-counter.json +1 -0
- package/database/antispam-groups.json +1 -0
- package/database/antispam-warn.json +1 -0
- package/database/antisticker.json +1 -0
- package/database/antiswgc.json +1 -0
- package/database/antitagsw.json +1 -0
- package/database/antitoxic.json +1 -0
- package/database/antitt.json +1 -0
- package/database/antivideo.json +1 -0
- package/database/antiyt.json +1 -0
- package/database/autojoingc.json +1 -0
- package/database/autosholat.json +3 -0
- package/database/bad.json +73 -0
- package/database/badword.json +7 -0
- package/database/banchat.json +1 -0
- package/database/bannedfitur.json +1 -0
- package/database/banuser.json +1 -0
- package/database/blacklist.json +1 -0
- package/database/blacklistgroup.json +1 -0
- package/database/broadcast.json +3 -0
- package/database/chatsNotif.json +1 -0
- package/database/config.json +1 -0
- package/database/database.json +1 -0
- package/database/expiredpanel.json +1 -0
- package/database/expiredpanel2.json +1 -0
- package/database/fiturmember.json +1 -0
- package/database/groupadd.json +1 -0
- package/database/groups.json +6 -0
- package/database/gruplist.json +5 -0
- package/database/idgrup.json +1 -0
- package/database/jpmgroup.json +1 -0
- package/database/kata-kata.json +28309 -0
- package/database/left.json +1 -0
- package/database/list-message.json +51 -0
- package/database/maintenance.json +4 -0
- package/database/mutegc.json +1 -0
- package/database/nilai.json +3 -0
- package/database/onlyadmin.json +1 -0
- package/database/onlygc.json +6 -0
- package/database/onlyprivate.json +3 -0
- package/database/openaigc.json +3 -0
- package/database/owner.json +1 -0
- package/database/panelexpired2.json +1 -0
- package/database/payment.json +1 -0
- package/database/pending.json +1 -0
- package/database/pendingSewa.json +1 -0
- package/database/prefix.json +4 -0
- package/database/premium.json +1 -0
- package/database/qris.json +3 -0
- package/database/registered.json +2 -0
- package/database/schedule.json +1 -0
- package/database/set_done.json +1 -0
- package/database/set_left.json +1 -0
- package/database/set_proses.json +1 -0
- package/database/set_welcome.json +1 -0
- package/database/setting.json +1 -0
- package/database/sewa.json +1 -0
- package/database/sewabot.json +3 -0
- package/database/transaksi.json +1 -0
- package/database/uservip.json +1 -0
- package/database/warning.json +2 -0
- package/database/welcome.json +1 -0
- package/helper.js +461 -0
- package/index.js +19 -0
- package/lib/AGENCYB.TTF +0 -0
- package/lib/CallDur.ttf +0 -0
- package/lib/CallName.ttf +0 -0
- package/lib/DanaFont.otf +0 -0
- package/lib/DevFont.ttf +0 -0
- package/lib/antidelete.js +196 -0
- package/lib/arialnarrow.ttf +0 -0
- package/lib/cekban.js +14 -0
- package/lib/color.js +19 -0
- package/lib/connection.js +12 -0
- package/lib/converter.js +85 -0
- package/lib/exif.js +171 -0
- package/lib/function.js +407 -0
- package/lib/gemmy.js +433 -0
- package/lib/groupManager.js +75 -0
- package/lib/helper-bails.js +19 -0
- package/lib/myfunction.js +384 -0
- package/lib/respon-list.js +95 -0
- package/lib/sambungkata.js +117 -0
- package/lib/savetube.js +1 -0
- package/lib/setwelcome.js +66 -0
- package/lib/sewa.js +109 -0
- package/lib/sewabot.js +40 -0
- package/lib/store.js +94 -0
- package/lib/surprisedeal.js +120 -0
- package/lib/thumb.jpg +0 -0
- package/lib/tictactoe.js +94 -0
- package/lib/tiktoksearch.js +83 -0
- package/lib/uploader.js +324 -0
- package/lib/videothumb.mp4 +0 -0
- package/lib/welcome.js +129 -0
- package/license.md +17 -0
- package/no developer.js +2 -0
- package/package.json +61 -5
- package/plugins/crm.js +309 -0
- package/plugins/douyinsearch.js +166 -0
- package/plugins/runcrm.js +124 -0
- package/plugins/spotifylirik.js +130 -0
- package/satanic.js +37922 -0
- package/settings.js +173 -0
- package/README.md +0 -3
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
const axios = require('axios');
|
|
2
|
+
|
|
3
|
+
async function getLyrics(queryOrTrack, artist) {
|
|
4
|
+
let trackName = queryOrTrack;
|
|
5
|
+
let artistName = artist || '';
|
|
6
|
+
|
|
7
|
+
if (queryOrTrack.includes('spotify.com/track/')) {
|
|
8
|
+
const match = queryOrTrack.match(/track\/([a-zA-Z0-9]+)/);
|
|
9
|
+
if (match) {
|
|
10
|
+
try {
|
|
11
|
+
const oembed = await axios.get(
|
|
12
|
+
`https://open.spotify.com/oembed?url=https://open.spotify.com/track/${match[1]}`,
|
|
13
|
+
{ timeout: 5000 }
|
|
14
|
+
);
|
|
15
|
+
trackName = oembed.data?.title?.replace(/\(feat\..*?\)/i, '').trim() || trackName;
|
|
16
|
+
const resEmbed = await axios.get(`https://open.spotify.com/embed/track/${match[1]}`, { timeout: 5000 });
|
|
17
|
+
const matchArtist = resEmbed.data.match(/"artists":\[\{"name":"([^"]+)"/);
|
|
18
|
+
if (matchArtist) {
|
|
19
|
+
artistName = matchArtist[1];
|
|
20
|
+
}
|
|
21
|
+
} catch (_) {}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
const res = await axios.get('https://lrclib.net/api/get', {
|
|
27
|
+
params: {
|
|
28
|
+
track_name: trackName,
|
|
29
|
+
artist_name: artistName,
|
|
30
|
+
},
|
|
31
|
+
timeout: 10000,
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
if (res.data && (res.data.plainLyrics || res.data.syncedLyrics)) {
|
|
35
|
+
return {
|
|
36
|
+
status: true,
|
|
37
|
+
trackName: res.data.trackName || trackName,
|
|
38
|
+
artistName: res.data.artistName || artistName,
|
|
39
|
+
albumName: res.data.albumName,
|
|
40
|
+
duration: res.data.duration,
|
|
41
|
+
plainLyrics: res.data.plainLyrics,
|
|
42
|
+
syncedLyrics: res.data.syncedLyrics,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
} catch (_) {}
|
|
46
|
+
|
|
47
|
+
try {
|
|
48
|
+
const searchRes = await axios.get('https://lrclib.net/api/search', {
|
|
49
|
+
params: {
|
|
50
|
+
q: `${trackName} ${artistName}`.trim(),
|
|
51
|
+
},
|
|
52
|
+
timeout: 10000,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
if (Array.isArray(searchRes.data) && searchRes.data.length > 0) {
|
|
56
|
+
const best = searchRes.data[0];
|
|
57
|
+
return {
|
|
58
|
+
status: true,
|
|
59
|
+
trackName: best.trackName,
|
|
60
|
+
artistName: best.artistName,
|
|
61
|
+
albumName: best.albumName,
|
|
62
|
+
duration: best.duration,
|
|
63
|
+
plainLyrics: best.plainLyrics,
|
|
64
|
+
syncedLyrics: best.syncedLyrics,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
} catch (err) {
|
|
68
|
+
return {
|
|
69
|
+
status: false,
|
|
70
|
+
message: err.message || 'Gagal mengambil lirik',
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return {
|
|
75
|
+
status: false,
|
|
76
|
+
message: 'Lirik lagu tidak ditemukan',
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
let handler = async (m, { satanic, text, prefix, command }) => {
|
|
81
|
+
if (!text) return m.reply(`Contoh: ${prefix + command} https://open.spotify.com/track/xxx`);
|
|
82
|
+
|
|
83
|
+
await satanic.sendMessage(m.chat, {
|
|
84
|
+
react: { text: '⏳', key: m.key },
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
try {
|
|
88
|
+
const result = await getLyrics(text);
|
|
89
|
+
|
|
90
|
+
if (!result.status) {
|
|
91
|
+
await satanic.sendMessage(m.chat, {
|
|
92
|
+
react: { text: '❌', key: m.key },
|
|
93
|
+
});
|
|
94
|
+
return m.reply(result.message || 'Lirik tidak ditemukan.');
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
await satanic.sendMessage(m.chat, {
|
|
98
|
+
react: { text: '✅', key: m.key },
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
let caption = `🎵 ${result.trackName} - ${result.artistName}`;
|
|
102
|
+
if (result.albumName) caption += `\n💽 Album: ${result.albumName}`;
|
|
103
|
+
if (result.duration) {
|
|
104
|
+
const menit = Math.floor(result.duration / 60);
|
|
105
|
+
const detik = String(Math.floor(result.duration % 60)).padStart(2, '0');
|
|
106
|
+
caption += `\n⏱ Durasi: ${menit}:${detik}`;
|
|
107
|
+
}
|
|
108
|
+
caption += '\n\n--- LIRIK ---\n';
|
|
109
|
+
caption += result.syncedLyrics || result.plainLyrics || 'Tidak ada lirik.';
|
|
110
|
+
|
|
111
|
+
if (caption.length > 4096) {
|
|
112
|
+
caption = caption.slice(0, 4096) + '\n\n... (terpotong)';
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
satanic.sendMessage(m.chat, { text: caption }, { quoted: m });
|
|
116
|
+
|
|
117
|
+
} catch (err) {
|
|
118
|
+
await satanic.sendMessage(m.chat, {
|
|
119
|
+
react: { text: '⚠️', key: m.key },
|
|
120
|
+
});
|
|
121
|
+
m.reply('Error: ' + err.message);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
handler.help = ['spotifylirik <link spotify>'];
|
|
126
|
+
handler.tags = ['music'];
|
|
127
|
+
handler.command = /^(spotifylirik|spotifylyrics)$/i;
|
|
128
|
+
handler.limit = false;
|
|
129
|
+
|
|
130
|
+
module.exports = handler;
|