Skip to content

Instantly share code, notes, and snippets.

@BIRTAX38
Last active May 2, 2024 02:34
Show Gist options
  • Save BIRTAX38/e31c70550fb15d369445ce42dcf52317 to your computer and use it in GitHub Desktop.
Save BIRTAX38/e31c70550fb15d369445ce42dcf52317 to your computer and use it in GitHub Desktop.

Pobieranie listy znajomych z konta Discord

Note

Jeśli nie możesz lub nie wiesz jak właczyć konsolę deweloperską w aplikacji użyj przeglądarki.

Note

Data w „Znajomy od” odnosi się do daty, w której zaproszenie do znajomych zostało wysłane przez jedną ze stron.

Jak korzystać z tego skryptu:

  1. Wejdź na stronę https://discord.com/channels/@me
  2. Zaloguj się
  3. Przytrzymaj Ctrl + Shift + I aby włączyć Narzędzia dla deweloperów
  4. Przejdź do zakładki Console
  5. Wklej skrypt
  6. Jeżeli nie możesz wkleić skryptu wpisz: allow pasting i spróbuj ponownie wklić skrypt. Jeżeli możesz wkleić skrypt pomiń ten krok
  7. Naciśnij Enter i twoja lista znajomych zostanie pobrana jako plik tekstowy
var token = (webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m=>m?.exports?.default?.getToken!==void 0).exports.default.getToken();

fetch('https://discord.com/api/v9/users/@me/relationships', {
  method: 'GET',
  headers: {
    'Authorization': token
  }
})
  .then(response => {
    if (!response.ok) {
      throw new Error('Network response was not ok');
    }
    return response.json();
  })
  .then(data => {
    const jsonData = data;
    const userTimeZoneOffset = new Date().getTimezoneOffset() * 60000;
    const filteredData = jsonData.filter(item => item.type === 1);

    let text = '';
    filteredData.forEach(item => {
      const username = item.user.username;
      const globalName = item.user.global_name ? unicodeToChar(item.user.global_name) : username;
      const nickname = item.nickname ? `Pseudonim znajomego: ${unicodeToChar(item.nickname)}\n` : '';

      const sinceUTC = new Date(item.since);
      const sinceLocal = new Date(sinceUTC.getTime() - userTimeZoneOffset);
      const since = sinceLocal.toISOString().replace(/T/, ' ').replace(/\..+/, '');

      const id = item.id;

      text += `Nazwa użytkownika: ${username}\n`;
      text += `Wyświetlana nazwa: ${globalName}\n`;
      text += `${nickname}`;
      text += `Id: ${id}\n`;
      text += `Znajomy od: ${since}\n\n\n`;
    });

    fetch('https://discord.com/api/v9/users/@me', {
  method: 'GET',
  headers: {
    'Authorization': token
  }
})
  .then(response => response.json())
  .then(data => {
    const discordUserData = data;
    const username = discordUserData.username;
    const globalName = discordUserData.global_name ? unicodeToChar(discordUserData.global_name) : username;
    const id = discordUserData.id;

    text += `\n\n\nInformacje o koncie z którego pobrano listę znajomych:\n`
    text += `Nazwa użytkownika: ${username}\n`
    text += `Wyświetlana nazwa: ${globalName}\n`
    text += `Id: ${id}\n`

    const today = new Date();
    const day = String(today.getDate()).padStart(2, '0');
    const month = String(today.getMonth() + 1).padStart(2, '0');
    const year = today.getFullYear();

    const formattedDate = `${day}-${month}-${year}`;
    //console.log(formattedDate);


    const blob = new Blob([text], { type: 'text/plain' });
    const fileName = `Discord Friend List ${username} ${formattedDate}.txt`;

    const link = document.createElement('a');
    link.href = window.URL.createObjectURL(blob);
    link.download = fileName;

    link.click();
      })
  .catch(error => console.error('Błąd:', error));
  })
  .catch(error => console.error('Błąd:', error));

function unicodeToChar(text) {
  return text.replace(/\\u[\dA-F]{4}/gi, 
      function (match) {
          return String.fromCharCode(parseInt(match.replace(/\\u/g, ''), 16));
      });
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment