Постинг
19.12.2018 09:30 -
Как да изтрием Discord съобщенията си / хисторито
Автор: deletediscordhistory
Категория: Технологии
Прочетен: 3315 Коментари: 1 Гласове:
Последна промяна: 19.12.2018 09:38
Прочетен: 3315 Коментари: 1 Гласове:
-1
Последна промяна: 19.12.2018 09:38
За да изтрием съобщенията си в Discord, са ни необходими 3 неща, които после ще добавим към кратък код, който съм пейстнал по-долу. Тези 3 неща са:
1. authToken (поредица от числа и букви, които не трябва да показваме на никого)
2. ID номера на сървъра, в който искаме да изтрием съобщенията си
3. ID номера на акаунта ни
2 и 3 се намират за секунди с десен клик върху иконата на сървъра / нашия акаунт -> copy ID
За да намерим authToken-а:
- Отиваме на discordapp.com/channels/@me
- Влизаме в акаунта си и цъкаме на сървъра, в който искаме да трием съобщения
- Влизаме в Settings -> Appearance и отключваме Developer Mode, за да може да отворим конзолата:
- Натискаме CTRL + SHIFT + I за да се отвори конзолата
- Горе вдясно избираме Network
- Натискаме F5 или CTRL+R, за да се презареди страницата
- Във филтри въвеждаме /api/, избираме applications -> headers и скролваме надолу докато не намерим думата authorization. Това е authToken-а ни. Копираме го.
- С десен клик върху иконата на сървъра -> copy ID
- С десен клик върху нашия акаунт в сървъра -> copy ID
- В скрипта, пейстнат долу, заменяме 1111111111 с authToken-а, 2222222222 с ID-то на сървъра, и 3333333333 с ID-то на акаунта ни (намират се към края)
clearMessages = function (guild_id, author_id, authToken, deleted = new Set()) {
/*
* Discord: Don"t copy stuff into this box
* Me: dOn"T COpy sTuFf iNtO tHIs bOx
*/
const searchURL = `https://discordapp.com/api/v6/guilds/${guild_id}/messages/search?author_id=${author_id}&include_nsfw=true`
const headers = { Authorization: authToken }
let clock = 0
interval = 500
function delay(duration) {
return new Promise((resolve, reject) => {
setTimeout(resolve, duration)
})
}
function loadMessages() {
return fetch(searchURL, { headers })
}
function tryDeleteMessage(message) {
// RAce coNDItiOn
if (message.author.id == author_id && !deleted.has(message.id)) { // skip already deleted messages
console.log(`Deleting message ${message.id} from ${message.author.username} (${message.content}...)`)
return fetch(`https://discordapp.com/api/v6/channels/${message.channel_id}/messages/${message.id}`, { headers, method: "DELETE" })
}
}
let messagesStore = []
loadMessages()
.then(resp => resp.json())
.then(messages => {
messages = messages.messages
if (messages === undefined || messages === null || messages.length == 0) {
console.log(`Couldn"t load messages. Check guild id, author id, and auth token.`)
return
}
messages = messages.filter(m => m) // clean undefined
messages = [].concat.apply([], messages); // flatten
messages = messages.filter(m => m) // clean undefined
if (messages.length === 0) {
console.log(`Couldn"t load messages. Check guild id, author id, and auth token.`)
return
}
//filter by author
messages = messages.filter(m => m.author.id == author_id)
// unique by id
messages = messages.filter((e, i) => messages.findIndex(a => a.id === e.id) === i);
beforeId = messages[messages.length-1].id
messagesStore = messagesStore.concat(messages)
return Promise.all(messagesStore.map(message => {
return delay(clock += interval)
.then(() => tryDeleteMessage(message))
.then(resp => {
if (resp) {
if (resp.status == 429) {
interval += 10
console.log(`Too fast; bumping interval to ${interval}`)
} else if (resp.status === 204) {
deleted.add(message.id) // mark deleted
return resp.text()
}
}
})
}))
})
.then(function() {
if (messagesStore.length !== 0) {
clearMessages(guild_id, author_id, authToken, deleted)
} else {
console.log(`We have loaded all messages in this chat.`)
}
})
}
var authToken = "1111111111"
if (authToken.length === 0) {
var localToken = document.body.appendChild(document.createElement(`iframe`)).contentWindow.localStorage.token
if (localToken === undefined) {
console.log(`Getting the auth token from localStorage isn"t supported on Chrome or the desktop client. Use Firefox or grab it from a network request"s headers.`)
console.log(`To do that go to the Network tab of your inspector and copy the Authorization header of a request. There are detailed instructions in the tutorial.`)
} else {
authToken = JSON.parse(localToken)
}
}
if (authToken.length !== 0) {
clearMessages("2222222222", "3333333333", authToken)
}
- Отново отваряме конзолата с CTRL + SHIFT + I и пействаме вече завършения код долу вдясно.
- Чакаме скрипта да си свърши работата. Трие по 2-3 съобщения в секунда и по някой път дава грешки, затова се налага да го пейстнем отново и да рестартираме процеса.
Надявам се да сте разбрали процеса. На 19 декември 2018-та е тестван и все още работи.
1. authToken (поредица от числа и букви, които не трябва да показваме на никого)
2. ID номера на сървъра, в който искаме да изтрием съобщенията си
3. ID номера на акаунта ни
2 и 3 се намират за секунди с десен клик върху иконата на сървъра / нашия акаунт -> copy ID
За да намерим authToken-а:
- Отиваме на discordapp.com/channels/@me
- Влизаме в акаунта си и цъкаме на сървъра, в който искаме да трием съобщения
- Влизаме в Settings -> Appearance и отключваме Developer Mode, за да може да отворим конзолата:
- Натискаме CTRL + SHIFT + I за да се отвори конзолата
- Горе вдясно избираме Network
- Натискаме F5 или CTRL+R, за да се презареди страницата
- Във филтри въвеждаме /api/, избираме applications -> headers и скролваме надолу докато не намерим думата authorization. Това е authToken-а ни. Копираме го.
- С десен клик върху иконата на сървъра -> copy ID
- С десен клик върху нашия акаунт в сървъра -> copy ID
- В скрипта, пейстнат долу, заменяме 1111111111 с authToken-а, 2222222222 с ID-то на сървъра, и 3333333333 с ID-то на акаунта ни (намират се към края)
clearMessages = function (guild_id, author_id, authToken, deleted = new Set()) {
/*
* Discord: Don"t copy stuff into this box
* Me: dOn"T COpy sTuFf iNtO tHIs bOx
*/
const searchURL = `https://discordapp.com/api/v6/guilds/${guild_id}/messages/search?author_id=${author_id}&include_nsfw=true`
const headers = { Authorization: authToken }
let clock = 0
interval = 500
function delay(duration) {
return new Promise((resolve, reject) => {
setTimeout(resolve, duration)
})
}
function loadMessages() {
return fetch(searchURL, { headers })
}
function tryDeleteMessage(message) {
// RAce coNDItiOn
if (message.author.id == author_id && !deleted.has(message.id)) { // skip already deleted messages
console.log(`Deleting message ${message.id} from ${message.author.username} (${message.content}...)`)
return fetch(`https://discordapp.com/api/v6/channels/${message.channel_id}/messages/${message.id}`, { headers, method: "DELETE" })
}
}
let messagesStore = []
loadMessages()
.then(resp => resp.json())
.then(messages => {
messages = messages.messages
if (messages === undefined || messages === null || messages.length == 0) {
console.log(`Couldn"t load messages. Check guild id, author id, and auth token.`)
return
}
messages = messages.filter(m => m) // clean undefined
messages = [].concat.apply([], messages); // flatten
messages = messages.filter(m => m) // clean undefined
if (messages.length === 0) {
console.log(`Couldn"t load messages. Check guild id, author id, and auth token.`)
return
}
//filter by author
messages = messages.filter(m => m.author.id == author_id)
// unique by id
messages = messages.filter((e, i) => messages.findIndex(a => a.id === e.id) === i);
beforeId = messages[messages.length-1].id
messagesStore = messagesStore.concat(messages)
return Promise.all(messagesStore.map(message => {
return delay(clock += interval)
.then(() => tryDeleteMessage(message))
.then(resp => {
if (resp) {
if (resp.status == 429) {
interval += 10
console.log(`Too fast; bumping interval to ${interval}`)
} else if (resp.status === 204) {
deleted.add(message.id) // mark deleted
return resp.text()
}
}
})
}))
})
.then(function() {
if (messagesStore.length !== 0) {
clearMessages(guild_id, author_id, authToken, deleted)
} else {
console.log(`We have loaded all messages in this chat.`)
}
})
}
var authToken = "1111111111"
if (authToken.length === 0) {
var localToken = document.body.appendChild(document.createElement(`iframe`)).contentWindow.localStorage.token
if (localToken === undefined) {
console.log(`Getting the auth token from localStorage isn"t supported on Chrome or the desktop client. Use Firefox or grab it from a network request"s headers.`)
console.log(`To do that go to the Network tab of your inspector and copy the Authorization header of a request. There are detailed instructions in the tutorial.`)
} else {
authToken = JSON.parse(localToken)
}
}
if (authToken.length !== 0) {
clearMessages("2222222222", "3333333333", authToken)
}
- Отново отваряме конзолата с CTRL + SHIFT + I и пействаме вече завършения код долу вдясно.
- Чакаме скрипта да си свърши работата. Трие по 2-3 съобщения в секунда и по някой път дава грешки, затова се налага да го пейстнем отново и да рестартираме процеса.
Надявам се да сте разбрали процеса. На 19 декември 2018-та е тестван и все още работи.
ДСБ иска вето върху Закона за електронни...
Лични съобщения в Snimka.bg
Верижни съобщения (Chain letters)
Лични съобщения в Snimka.bg
Верижни съобщения (Chain letters)
Търсене
За този блог
Гласове: 0
Архив