
X-Twitter’da takip etmeyenleri belirlemek ve düzenlemek, hesap yönetiminde zaman zaman ihtiyaç duyulan bir işlemdir. Bu süreci otomatikleştirmek için çeşitli kodlar ve araçlar geliştirilmiştir. Aşağıda bazı kodlar sunulmuştur. Ancak, bu tür kodların kullanımı Twitter’ın Hizmet Şartları ile uyumlu olmalı ve API limitlerine dikkat edilmelidir. Aksi takdirde, hesabın geçici veya kalıcı olarak kısıtlanması riski doğabilir.
1 Twitter Takip Etmeyenleri Takipten Çıkma Kodu
var LANGUAGE = "TR"; //NOT: Kullanılan dili değiştirmek için burayı güncelleyin!
var WORDS =
{
//Türkçe dil:
TR:
{
followsYouText: "Seni takip ediyor", //Sizi takip ediyor ibaresi.
followingButtonText: "Takip ediliyor", //“Takip ediliyor” düğmesinin metni.
confirmationButtonText: "Takibi bırak" //Onay düğmesinin metni. Emin değilim.
}
}
var UNFOLLOW_FOLLOWERS = false; //true olarak ayarlanırsa, takipçiler de kaldırılacaktır (atlanmamışlarsa).
var MS_PER_CYCLE = 10; //Her döngüdeki milisaniyeler (her 'performUnfollow' çağrısında).
var MAXIMUM_UNFOLLOW_ACTIONS_PER_CYCLE = null; //Her döngüdeki maksimum takipten çıkarma işlem sayısı (her 'performUnfollow' çağrısında). Sınır olmaması için 'null' ayarlayın.
var MAXIMUM_UNFOLLOW_ACTIONS_TOTAL = null; //Toplamda maksimum takipten çıkarma işlem sayısı (tüm 'performUnfollow' çağrıları arasında). Sınır olmaması için 'null' ayarlayın.
var SKIP_USERS = //Takipten çıkarmak istemediğimiz kullanıcılar (takip etmeseler bile):
[
//Buraya atlamak istediğiniz kullanıcı adlarını yerleştirin (takipten çıkarılmayacaklardır):
"user_name_to_skip_example_1",
"user_name_to_skip_example_2",
"user_name_to_skip_example_3"
];
SKIP_USERS.forEach(function(value, index) { SKIP_USERS[index] = value.toLowerCase(); }); //Tüm kullanıcı adlarını küçük harfe dönüştürür (büyük/küçük harf duyarlı olmadığı için).
var _UNFOLLOWED_TOTAL = 0; //Yapılan toplam takipten çıkarma işlem sayısını tutar. Salt okunur (değiştirmeyin).
//Twitter'da takipçi olmayanları takipten çıkarma işlevi:
var performUnfollow = function(followsYouText, followingButtonText, confirmationButtonText, unfollowFollowers, maximumUnfollowActionsPerCycle, maximumUnfollowActionsTotal)
{
var unfollowed = 0;
followsYouText = followsYouText || WORDS.TR.followsYouText; //Sizi takip ediyor ibaresi.
followingButtonText = followingButtonText || WORDS.TR.followingButtonText; //“Takip ediliyor” düğmesinin metni.
confirmationButtonText = confirmationButtonText || WORDS.TR.confirmationButtonText; //Onay düğmesinin metni.
unfollowFollowers = typeof(unfollowFollowers) === "undefined" || unfollowFollowers === null ? UNFOLLOW_FOLLOWERS : unfollowFollowers;
maximumUnfollowActionsTotal = maximumUnfollowActionsTotal === null || !isNaN(parseInt(maximumUnfollowActionsTotal)) ? maximumUnfollowActionsTotal : MAXIMUM_UNFOLLOW_ACTIONS_TOTAL || null;
maximumUnfollowActionsTotal = !isNaN(parseInt(maximumUnfollowActionsTotal)) ? parseInt(maximumUnfollowActionsTotal) : null;
maximumUnfollowActionsPerCycle = maximumUnfollowActionsPerCycle === null || !isNaN(parseInt(maximumUnfollowActionsPerCycle)) ? maximumUnfollowActionsPerCycle : MAXIMUM_UNFOLLOW_ACTIONS_PER_CYCLE || null;
maximumUnfollowActionsPerCycle = !isNaN(parseInt(maximumUnfollowActionsPerCycle)) ? parseInt(maximumUnfollowActionsPerCycle) : null;
//Tüm kullanıcı konteynerlerini kontrol eder:
var totalLimitReached = false;
var localLimitReached = false;
var userContainers = document.querySelectorAll('[data-testid=UserCell]');
Array.prototype.filter.call
(
userContainers,
function(userContainer)
{
//Önceden bir sınıra ulaştıysak sessizce çıkarız:
if (totalLimitReached || localLimitReached) { return; }
//Toplam istenilen takipten çıkarma işlem sayısına ulaştıysak, çıkarız:
else if (maximumUnfollowActionsTotal !== null && _UNFOLLOWED_TOTAL >= maximumUnfollowActionsTotal) { console.log("Çıkış! Toplam takipten çıkarma işlemi sınırına ulaşıldı: " + maximumUnfollowActionsTotal); totalLimitReached = true; return; }
//...aksi takdirde, her döngüdeki maksimum istenilen takipten çıkarma işlem sayısına ulaştıysak, çıkarız:
else if (maximumUnfollowActionsPerCycle !== null && unfollowed >= maximumUnfollowActionsPerCycle) { console.log("Çıkış! Döngü başına maksimum takipten çıkarma işlem sınırına ulaşıldı: " + maximumUnfollowActionsPerCycle); localLimitReached = true; return; }
//Kullanıcının sizi takip etmediğini kontrol eder:
if (!unfollowFollowers)
{
var followsYou = false;
Array.from(userContainer.querySelectorAll("*")).find
(
function(element)
{
if (element.textContent === followsYouText) { followsYou = true; }
}
);
}
else { followsYou = false; } //Eğer takipçileri de kaldırmak istiyorsak, takipçi olmadığı kabul edilir.
//Eğer kullanıcı sizi takip etmiyorsa (veya takipçileri de kaldırmak istiyorsak):
if (!followsYou)
{
//Kullanıcı adını bulur ve bu kullanıcıyı atlamak isteyip istemediğimizi kontrol ederiz:
var skipUser = false;
var userName = "";
Array.from(userContainer.querySelectorAll("[href^='/']")).find
(
function (element)
{
if (skipUser) { return; }
if (element.href.indexOf("search?q=") !== -1 || element.href.indexOf("/") === -1) { return; }
userName = element.href.substring(element.href.lastIndexOf("/") + 1).toLowerCase();
Array.from(element.querySelectorAll("*")).find
(
function (subElement)
{
if (subElement.textContent.toLowerCase() === "@" + userName)
{
if (SKIP_USERS.indexOf(userName) !== -1)
{
console.log("Atlamak istiyoruz: " + userName);
skipUser = true;
}
}
}
);
}
);
//Eğer kullanıcıyı atlamak istemiyorsak:
if (!skipUser)
{
//Takipten çıkma düğmesini bulur:
Array.from(userContainer.querySelectorAll('[role=button]')).find
(
function(element)
{
//Takipten çıkma düğmesi bulunursa, tıklarız:
if (element.textContent === followingButtonText)
{
console.log("* Takipten çıkılıyor: " + userName);
element.click();
unfollowed++;
_UNFOLLOWED_TOTAL++;
}
}
);
}
}
}
);
//Eğer bir onay iletişim kutusu varsa, otomatik olarak basın:
Array.from(document.querySelectorAll('[role=button]')).find //Onay düğmesini bulur.
(
function(element)
{
//Onay düğmesi bulunursa, tıklarız:
if (element.textContent === confirmationButtonText)
{
element.click();
}
}
);
return totalLimitReached ? null : unfollowed; //Toplam sınırına ulaşıldıysa, null döndürür. Aksi takdirde, takipten çıkarılan kullanıcı sayısını döndürür.
}
//Kaydırır ve takipçi olmayanları takipten çıkarır, sürekli:
var scrollAndUnfollow = function()
{
window.scrollTo(0, document.body.scrollHeight);
var unfollowed = performUnfollow(WORDS[LANGUAGE].followsYouText, WORDS[LANGUAGE].followingButtonText, WORDS[LANGUAGE].confirmationButtonText, UNFOLLOW_FOLLOWERS, MAXIMUM_UNFOLLOW_ACTIONS_PER_CYCLE, MAXIMUM_UNFOLLOW_ACTIONS_TOTAL); //İngilizce için parametresiz çağırmayı deneyebilirsiniz.
if (unfollowed !== null && unfollowed !== undefined) {
setTimeout(scrollAndUnfollow, MS_PER_CYCLE);
} else {
console.log("Toplam istenen takipten çıkarma işlemi tamamlandı!");
}
};
scrollAndUnfollow();2 Nasıl Çalışır?
Twitter (X) üzerinde console kodlarını kullanmak için temel adımlar kısaca şöyledir:
- Masaüstü bir tarayıcı açın ve Twitter hesabınıza giriş yapın.
- F12 veya Ctrl + Shift + I (macOS: Cmd + Option + I) ile geliştirici araçlarını açın.
- Console sekmesine geçin.
- Kullanacağınız kodu dikkatlice inceleyin ve console’a yapıştırın.
- Enter tuşuna basarak çalıştırın.
- Çıktıları ve olası hata mesajlarını console üzerinden takip edin.
- Sayfa yenilendiğinde işlemlerin sıfırlanacağını unutmayın.
- Twitter’ın Hizmet Şartları ve kullanım limitlerine mutlaka uyun.



