Skip to content

Instantly share code, notes, and snippets.

@cometothed4rkside
Created January 3, 2024 17:00
Show Gist options
  • Select an option

  • Save cometothed4rkside/5d58f7ddd2d59a21f1e08faebc3ff8d7 to your computer and use it in GitHub Desktop.

Select an option

Save cometothed4rkside/5d58f7ddd2d59a21f1e08faebc3ff8d7 to your computer and use it in GitHub Desktop.
Twitter export blocked accounts 2024
var USERS_PER_FILE = 3000; // Dosya başına toplanacak kullanıcı sayısı
var _USERS = []; // Toplanan kullanıcıların saklandığı dizi
var SCROLL_DELAY = 2000; // Sayfa kaydırma arasındaki bekleme süresi (milisaniye)
var WAIT_AFTER_BATCH = 60000; // Her 3000 kullanıcıdan sonra bekleme süresi (milisaniye)
var batchCount = 0; // Toplanan kullanıcı bloklarının sayısı
var collectUsers = function() {
var userContainers = document.querySelectorAll('[data-testid=UserCell]');
Array.prototype.forEach.call(userContainers, function(userContainer) {
var userName = "";
Array.from(userContainer.querySelectorAll("[href^='/']")).forEach(function(element) {
if (element.href.indexOf("search?q=") === -1 && element.href.indexOf("/") !== -1) {
userName = element.href.substring(element.href.lastIndexOf("/") + 1).toLowerCase();
if (_USERS.indexOf(userName) === -1) {
_USERS.push(userName);
}
}
});
});
if (_USERS.length >= USERS_PER_FILE * (batchCount + 1)) {
console.log("Batch " + (batchCount + 1) + " Toplanan Kullanıcılar:", _USERS.slice(batchCount * USERS_PER_FILE));
saveUsersToFile(_USERS.slice(batchCount * USERS_PER_FILE), batchCount);
batchCount++;
setTimeout(scrollAndCollect, WAIT_AFTER_BATCH); // Bekleme süresi
return;
}
}
var saveUsersToFile = function(users, batchNumber) {
var blob = new Blob([users.join("\n")], { type: 'text/plain' });
var url = window.URL.createObjectURL(blob);
var a = document.createElement('a');
a.style.display = 'none';
a.href = url;
a.download = 'users_batch_' + (batchNumber + 1) + '.txt';
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
document.body.removeChild(a);
}
var scrollAndCollect = function() {
if (_USERS.length < USERS_PER_FILE * (batchCount + 1)) {
window.scrollTo(0, document.body.scrollHeight);
setTimeout(function() {
collectUsers();
if (_USERS.length < USERS_PER_FILE * (batchCount + 1)) {
scrollAndCollect();
}
}, SCROLL_DELAY);
}
};
scrollAndCollect();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment