Herkese merhabalar, bugün sizlere Whatsapp Web ile son görülmesi kapalı olan kişilerin ne zaman çevrimiçi olup ne zaman çevrimdışı olduğunu takip etmenin yolunu anlatacağım. Bu adımları uygulamak için önceden telefonunuz ile Whatsapp Web'e bağlanmanız gerekmektedir.
Öncelikle yapmanız gereken, ne zaman çevrimiçi olduğunu takip edeceğiniz kişinin sohbet penceresini aşağıdaki şekilde açınız. Ardından Geliştirici Araçları'ndan Console kısmını açınız.
Eğer Geliştirici Araçları nasıl açılır bilmiyorsanız, Chrome üzerinden aşağıdaki ekran görüntüsündeki gibi sağ üst kısımdan adımları takip ederek açabilirsiniz. Windows bilgisayarlarda kısayolu CTRL+SHIFT+I (bazı tarayıcılarda büyük ı yerine, büyük i olabiliyor), Mac OSX bilgisayarlarda ALT+CMD+İ olarak belirtilmiştir. Kısayol üzerinden de geliştirici araçlarını açabilirsiniz.
Hedef kişinin sohbet penceresini ve Console kısmını açtıktan sonra aşağıda yazmış olduğum javascript kodlarını console kısmına yapıştırıyoruz.
Not: 4. satırdaki "docu*ment" arasındaki * işaretini kaldırmayı unutmayınız. (Konu içerisinde kelime sansürleniyor.)
Konsola yapıştırılacak kodlar:
Kod:
function memberIsOnline() {
let isOnline = false;
let now = new Date();
let source = docu*ment.getElementsByClassName('NuujD')[0].innerHTML; // DOCU*MENT ARASINDAKİ (*) İŞARETİNİ KALDIRIN.
let time = now.getHours() + "." + (now.getMinutes()<10?'0':'') + now.getMinutes();
if (source.indexOf('online') > 0 || source.indexOf('çevrimiçi') > 0) {
isOnline = true;
} else {
if (source.indexOf('typing...') > 0 || source.indexOf('yazıyor...') > 0) {
isOnline = true;
}
}
return {
response: isOnline,
time: time,
};
}
var isOnline = false, isOnlineData, printType = 'console';
setInterval(function () {
isOnlineData = memberIsOnline();
if (isOnline === false) {
if (isOnlineData.response === true) {
printType == 'console' ? console.log('çevrimiçi:' + isOnlineData.time) : alert('çevrimiçi:' + isOnlineData.time);
isOnline = true;
}
} else {
if (isOnlineData.response === false) {
printType == 'console' ? console.log('son görülme: ' + isOnlineData.time) : alert('son görülme: ' + isOnlineData.time);
isOnline = false;
}
}
}, 1000);
Not: sadece yukarıdaki kodları yapıştırmanız yeterlidir. Bundan sonraki kısım anlatım kısmıdır.
Bir adet de opsiyonel özellik ekledim.
bu satırdaki printType değişkeni karşısındaki 'console' değerini 'alert' olarak değiştirirseniz console çıktısı yerine pencerede alert/uyarı çıkacaktır.var isOnline = false, lastTime, isOnlineData, printType = 'console';
Şimdi biraz da yazdığım kodların nasıl işlediğinden bahsedeceğim. Sohbet penceresini açmaktaki gerekçe, kişinin adının altında çevrimiçi/online yazıp yazmadığını kontrol ediyoruz. Kimisinde ingilizce, kimisinde türkçe dil olabileceği için iki durumu da göz önünde bulundurarak denetim yapıyoruz. Html taglarının içinden gerekli kısmı filtreleyip filtrelediğim kısım içerisinden 'çevrimiçi' veya 'online' kelimesini arıyorum. Eğer kelime var/yok ise tarih ile birlikte fonksiyon bize iki değer dönüyor. response değeri, çevrimiçi ise true, değilse false şeklinde dönüyor. Diğer değer de 00.00 olarak değer dönüyor. Tabi ki göz önünde bulundurmamız gereken bir diğer durum ise çevrimiçi iken size yazıyor ise yazıyor olabilme ihtimali var.
Kod:
function memberIsOnline() {
let isOnline = false;
let now = new Date();
let source = docu*ment.getElementsByClassName('NuujD')[0].innerHTML; // DOCU*MENT ARASINDAKİ (*) İŞARETİNİ KALDIRIN.
let time = now.getHours() + "." + (now.getMinutes()<10?'0':'') + now.getMinutes();
if (source.indexOf('online') > 0 || source.indexOf('çevrimiçi') > 0) {
isOnline = true;
} else {
if (source.indexOf('typing...') > 0 || source.indexOf('yazıyor...') > 0) {
isOnline = true;
}
}
return {
response: isOnline,
time: time,
};
}
Aşağıdaki kısımda da yaptığımız şey, saniye başı kontrol gerçekleştirmeliyiz. Her saniyede 1 kez fonksiyonu çağırmalıyız ve çevrimiçi mi kontrol etmeliyiz. Diyelim ki kontrol ettik, peki her saniye başında "çevrimiçi mi" yazdıracak? 1 dakika bile çevrimiçi olsa, 60 tane alert/console çıktısı anlamına gelir. Bunun önüne geçmek için isOnline değişkeni tanımladım. Eğer hedef kişi aktif olursa değişkene true değerini verip bir daha kontrol edildiği zaman eğer true ve çevrimiçi ise alert/console çıktısı basmamasını, göz ardı etmesini sağladım.
Kod:
var isOnline = false, isOnlineData, printType = 'console';
setInterval(function () {
isOnlineData = memberIsOnline();
if (isOnline === false) {
if (isOnlineData.response === true) {
printType == 'console' ? console.log('çevrimiçi:' + isOnlineData.time) : alert('çevrimiçi:' + isOnlineData.time);
isOnline = true;
}
} else {
if (isOnlineData.response === false) {
printType == 'console' ? console.log('son görülme: ' + isOnlineData.time) : alert('son görülme: ' + isOnlineData.time);
isOnline = false;
}
}
}, 1000);
Önerilere, seviyeli eleştirilere, tavsiyelere açığım. Aklında bu tarz benzer/farklı yapılabilecek fikirleri olanlar, açıklayıcı bir şekilde aşağıdan belirtebilir.
Son düzenleme: