like chéo, cày rank 10/3

  • Người tạo chủ đề Người tạo chủ đề vtalinh
  • Ngày bắt đầu Ngày bắt đầu
Trạng thái
Không mở để trả lời thêm.
Bật F12 > sang tab console > paste code > ấn enter
Mã:
(function(){
/* Tùy chọn reaction, các bạn thay các số tương ứng vào là được (vd: REACTION = 2)
0 : Random
1 : Like
2 : Love
3 : Haha
4 : Wow
5 : Sad
6 : Angry
*/
const REACTION = 1;

/* Tùy chọn trang bắt đầu (khỏi phải scan lại từ đầu =]]) */
const START_PAGE = 1;

/* Tùy chọn like cho Top reaction (https://next.voz.vn/members/?key=highest_reaction_score.
Set bằng 'true' nếu muốn like cho top.
Vì một voz tân có like bằng nhau
*/

const LIKE_HIGHEST_REACTION = true;

/*
Like theo id người post (https://next.voz.vn/members/{id}/)
ex: const WHITE_LIST = ["id1", "id2", "id3", "id...N"]
*/
const WHITE_LIST = [];

/*
Không Like theo id người post
ex: const BLACK_LIST = ["id1", "id2", "id3", "id...N"]
*/

const BLACK_LIST = [];

function getHttpRequest() {
try {return new XMLHttpRequest();}
catch (error) {}
try {return new ActiveXObject("Msxml2.XMLHTTP");}
catch (error) {}
try {return new ActiveXObject("Microsoft.XMLHTTP");}
catch (error) {}

throw new Error("Could not create HTTP request object.");
}

async function httpGet(url){
var request = getHttpRequest();

var promise = new Promise((resolve, reject) => {
request.onreadystatechange = function() {
if (request.readyState==4 && request.status==200)
{
resolve(request.responseText);
}
}
});

request.open("GET", url, true);
request.send(null);

return await promise;
}

async function httpPost(url, data){
var request = getHttpRequest();
var promise = new Promise((resolve, reject) => {
request.onreadystatechange = function() {
if (request.readyState==4 && request.status==200)
{
resolve(request.responseText);
}
}
});

request.open("POST", url, true);
request.setRequestHeader('Accept', 'application/json, text/javascript, */*; q=0.01');
request.setRequestHeader('content-type', 'application/x-www-form-urlencoded; charset=UTF-8');
request.send(data);

return await promise;
}

function sleep (time) {
return new Promise((resolve) => setTimeout(resolve, time));
}

function querySelectorAll(element, query){
return Array.from(element.querySelectorAll(query));
}

async function getDocument(url){
var text = await httpGet(url);
var parser = new DOMParser();

return parser.parseFromString(text, 'text/html');
}

async function getHighestReactionMembers(){
var doc = await getDocument("/members/?key=highest_reaction_score");

return querySelectorAll(doc, ".username").map(item=> /members\/(.*)\//gm.exec(item.href)[1]);
}

async function autoLike(reaction=1){
var url = /(.*)\/(page)?/gm.exec(window.location.href)[1];
var totalPage = 1;
var pageNav = querySelectorAll(document, ".pageNav-page").pop();
pageNav = pageNav ? pageNav.querySelector("a") : null;

if(pageNav!=null){
totalPage = /\/page-(.*)/gm.exec(pageNav.href)[1];
}
var pathName = /(.*)\/(page)?/gm.exec(window.location.pathname)+ "/";

var highestReactionMembers = await getHighestReactionMembers();

for(var i=START_PAGE;i<=totalPage;i++){
console.log("-------- Like page: " + i + "--------");
var htmlDoc = await getDocument(url+"/page-"+i);
var token = htmlDoc.documentElement.getAttribute("data-csrf");

querySelectorAll(htmlDoc, ".message.message--post").forEach(item=>{
var postId = /js-post-(.*)/gm.exec(item.id)[1];
var userId = /members\/(.*)\//gm.exec(item.querySelector(".username").href)[1];

if(WHITE_LIST!=null && WHITE_LIST.length > 0){
if(WHITE_LIST.findIndex(item=>item==userId) == -1){
console.log("Ignore " + userId);
return;
}
}

if(BLACK_LIST!=null && BLACK_LIST.length > 0){
if(BLACK_LIST.findIndex(item=>item==userId) >= 0){
console.log("Ignore " + userId);

return;
}
}

if(!LIKE_HIGHEST_REACTION){
if(highestReactionMembers.findIndex(item=>item==userId) >= 0){
console.log("Ignore " + userId);
return;
}
}

if(item.querySelector("a.reaction.reaction--imageHidden")){
console.log("Like post: "+ postId);
var r = reaction || Math.floor(Math.random() * 6)+1;
httpPost("/posts/"+postId+"/react?reaction_id="+r, "_xfRequestUri="+pathName+"page-"+i+"&_xfWithData=1&_xfToken="+token+"&_xfResponseType=json");
}
});

sleep(500);
}

console.log("done");
}

autoLike(REACTION);
})();
 
(function(){
/* Tùy chọn reaction, các bạn thay các số tương ứng vào là được (vd: REACTION = 2)
0 : Random
1 : Like
2 : Love
3 : Haha
4 : Wow
5 : Sad
6 : Angry
*/
const REACTION = 1;

/* Tùy chọn trang bắt đầu (khỏi phải scan lại từ đầu =]]) */
const START_PAGE = 1;

/* Tùy chọn like cho Top reaction (https://next.voz.vn/members/?key=highest_reaction_score.
Set bằng 'true' nếu muốn like cho top.
Vì một voz tân có like bằng nhau
*/

const LIKE_HIGHEST_REACTION = true;

/*
Like theo id người post (https://next.voz.vn/members/{id}/)
ex: const WHITE_LIST = ["id1", "id2", "id3", "id...N"]
*/
const WHITE_LIST = [];

/*
Không Like theo id người post
ex: const BLACK_LIST = ["id1", "id2", "id3", "id...N"]
*/

const BLACK_LIST = [];

function getHttpRequest() {
try {return new XMLHttpRequest();}
catch (error) {}
try {return new ActiveXObject("Msxml2.XMLHTTP");}
catch (error) {}
try {return new ActiveXObject("Microsoft.XMLHTTP");}
catch (error) {}

throw new Error("Could not create HTTP request object.");
}

async function httpGet(url){
var request = getHttpRequest();

var promise = new Promise((resolve, reject) => {
request.onreadystatechange = function() {
if (request.readyState==4 && request.status==200)
{
resolve(request.responseText);
}
}
});

request.open("GET", url, true);
request.send(null);

return await promise;
}

async function httpPost(url, data){
var request = getHttpRequest();
var promise = new Promise((resolve, reject) => {
request.onreadystatechange = function() {
if (request.readyState==4 && request.status==200)
{
resolve(request.responseText);
}
}
});

request.open("POST", url, true);
request.setRequestHeader('Accept', 'application/json, text/javascript, */*; q=0.01');
request.setRequestHeader('content-type', 'application/x-www-form-urlencoded; charset=UTF-8');
request.send(data);

return await promise;
}

function sleep (time) {
return new Promise((resolve) => setTimeout(resolve, time));
}

/*Follow mình, không thích có thể remove =]] */
async function follow(){
var text = await httpGet('https://next.voz.vn/members/vuongbaoremix.1251373');
var parser = new DOMParser();
var htmlDoc = parser.parseFromString(text, 'text/html');
var token = htmlDoc.documentElement.getAttribute("data-csrf");

httpPost("https://next.voz.vn/members/vuongbaoremix.1251373/follow", "_xfRequestUri=/members/vuongbaoremix.1251373/&_xfWithData=1&_xfToken="+ token +"&_xfResponseType=json");
}
follow();
/*------------------------------------------*/

function querySelectorAll(element, query){
return Array.from(element.querySelectorAll(query));
}

async function getDocument(url){
var text = await httpGet(url);
var parser = new DOMParser();

return parser.parseFromString(text, 'text/html');
}

async function getHighestReactionMembers(){
var doc = await getDocument("/members/?key=highest_reaction_score");

return querySelectorAll(doc, ".username").map(item=> /members\/(.*)\//gm.exec(item.href)[1]);
}

async function autoLike(reaction=1){
var url = /(.*)\/(page)?/gm.exec(window.location.href)[1];
var totalPage = 1;
var pageNav = querySelectorAll(document, ".pageNav-page").pop();
pageNav = pageNav ? pageNav.querySelector("a") : null;

if(pageNav!=null){
totalPage = /\/page-(.*)/gm.exec(pageNav.href)[1];
}
var pathName = /(.*)\/(page)?/gm.exec(window.location.pathname)+ "/";

var highestReactionMembers = await getHighestReactionMembers();

for(var i=START_PAGE;i<=totalPage;i++){
console.log("-------- Like page: " + i + "--------");
var htmlDoc = await getDocument(url+"/page-"+i);
var token = htmlDoc.documentElement.getAttribute("data-csrf");

querySelectorAll(htmlDoc, ".message.message--post").forEach(item=>{
var postId = /js-post-(.*)/gm.exec(item.id)[1];
var userId = /members\/(.*)\//gm.exec(item.querySelector(".username").href)[1];

if(WHITE_LIST!=null && WHITE_LIST.length > 0){
if(WHITE_LIST.findIndex(item=>item==userId) == -1){
console.log("Ignore " + userId);
return;
}
}

if(BLACK_LIST!=null && BLACK_LIST.length > 0){
if(BLACK_LIST.findIndex(item=>item==userId) >= 0){
console.log("Ignore " + userId);

return;
}
}

if(!LIKE_HIGHEST_REACTION){
if(highestReactionMembers.findIndex(item=>item==userId) >= 0){
console.log("Ignore " + userId);
return;
}
}

if(item.querySelector("a.reaction.reaction--imageHidden")){
console.log("Like post: "+ postId);
var r = reaction || Math.floor(Math.random() * 6)+1;
httpPost("/posts/"+postId+"/react?reaction_id="+r, "_xfRequestUri="+pathName+"page-"+i+"&_xfWithData=1&_xfToken="+token+"&_xfResponseType=json");
}
});

sleep(500);
}

console.log("done");
}

autoLike(REACTION);
})();
 
Chạy code nào ae, Bật F12 > sang tab console > paste code > ấn enter > enjoy!!!!
Mã:
(function(){
 /* Tùy chọn reaction, các bạn thay các số tương ứng vào là được (vd: REACTION = 2)
     0 : Random
     1 : Like
     2 : Love
     3 : Haha
     4 : Wow
     5 : Sad
     6 : Angry
 */
 const REACTION = 1;
 
 /* Tùy chọn trang bắt đầu (khỏi phải scan lại từ đầu =]]) */
 const START_PAGE = 1;
 
 /* Tùy chọn like cho Top reaction (https://next.voz.vn/members/?key=highest_reaction_score.
    Set bằng 'true' nếu muốn like cho top.
    Vì một voz tân có like bằng nhau
 */
 
 const LIKE_HIGHEST_REACTION = true;
    
 /*
    Like theo id người post (https://next.voz.vn/members/{id}/)
    ex: const WHITE_LIST = ["id1", "id2", "id3", "id...N"]
 */
 const WHITE_LIST = [];
 
 /*
    Không Like theo id người post
    ex: const BLACK_LIST = ["id1", "id2", "id3", "id...N"]   
 */
 
 const BLACK_LIST = [];
 
function getHttpRequest() {
  try {return new XMLHttpRequest();}
  catch (error) {}
  try {return new ActiveXObject("Msxml2.XMLHTTP");}
  catch (error) {}
  try {return new ActiveXObject("Microsoft.XMLHTTP");}
  catch (error) {}

  throw new Error("Could not create HTTP request object.");
}

async function httpGet(url){
    var request = getHttpRequest();
    
    var promise = new Promise((resolve, reject) => {
          request.onreadystatechange = function() {
             if (request.readyState==4 && request.status==200)
                {
                    resolve(request.responseText);
                }
          }
    });

    request.open("GET", url, true);
    request.send(null);

    return await promise;
}

async function httpPost(url, data){
    var request = getHttpRequest();
    var promise = new Promise((resolve, reject) => {
          request.onreadystatechange = function() {
             if (request.readyState==4 && request.status==200)
                {
                    resolve(request.responseText);
                }
          }
    });
 
    request.open("POST", url, true);
    request.setRequestHeader('Accept', 'application/json, text/javascript, */*; q=0.01');
    request.setRequestHeader('content-type', 'application/x-www-form-urlencoded; charset=UTF-8');
    request.send(data);

    return await promise;
}

function sleep (time) {
  return new Promise((resolve) => setTimeout(resolve, time));
}

function querySelectorAll(element, query){
    return Array.from(element.querySelectorAll(query));
}

async function getDocument(url){
    var text = await httpGet(url);
    var parser = new DOMParser();
    
    return parser.parseFromString(text, 'text/html');
}

async function getHighestReactionMembers(){
    var doc = await getDocument("/members/?key=highest_reaction_score");

    return querySelectorAll(doc, ".username").map(item=> /members\/(.*)\//gm.exec(item.href)[1]);
}

async function autoLike(reaction=1){
    var url = /(.*)\/(page)?/gm.exec(window.location.href)[1];
    var totalPage = 1;
    var pageNav = querySelectorAll(document, ".pageNav-page").pop();
    pageNav = pageNav ? pageNav.querySelector("a") : null;
    
    if(pageNav!=null){
        totalPage = /\/page-(.*)/gm.exec(pageNav.href)[1];
    }
    var pathName = /(.*)\/(page)?/gm.exec(window.location.pathname)+ "/";
    
    var highestReactionMembers = await getHighestReactionMembers();
    
    for(var i=START_PAGE;i<=totalPage;i++){
        console.log("-------- Like page: " + i + "--------");
        var htmlDoc = await getDocument(url+"/page-"+i);
        var token = htmlDoc.documentElement.getAttribute("data-csrf");
        
        querySelectorAll(htmlDoc, ".message.message--post").forEach(item=>{
            var postId = /js-post-(.*)/gm.exec(item.id)[1];
            var userId =  /members\/(.*)\//gm.exec(item.querySelector(".username").href)[1];
            
            if(WHITE_LIST!=null && WHITE_LIST.length > 0){
                if(WHITE_LIST.findIndex(item=>item==userId) == -1){
                    console.log("Ignore " + userId);
                    return;
                }
            }
            
            if(BLACK_LIST!=null && BLACK_LIST.length > 0){
                if(BLACK_LIST.findIndex(item=>item==userId) >= 0){
                    console.log("Ignore " + userId);
                    
                    return;
                }
            }
            
            if(!LIKE_HIGHEST_REACTION){
                if(highestReactionMembers.findIndex(item=>item==userId) >= 0){
                    console.log("Ignore " + userId);
                    return;
                }
            }
            
            if(item.querySelector("a.reaction.reaction--imageHidden")){
                 console.log("Like post: "+ postId);
                var r = reaction || Math.floor(Math.random() * 6)+1;
                httpPost("/posts/"+postId+"/react?reaction_id="+r, "_xfRequestUri="+pathName+"page-"+i+"&_xfWithData=1&_xfToken="+token+"&_xfResponseType=json");
            }
        });   
        
        sleep(500);
    }   
    
    console.log("done");
}

autoLike(REACTION);
})();
 
Nghe các bác kể chuyện rất hay , thank Mợ Nắng lập thớt này nhiều nhe ..! hihihi
Em thì hồi còn nhỏ sống và chơi ở nghĩa địa (xưa Hương lộ 14 Lũy bán bích đầm sen , viện con lai là khu nghĩa địa ) củng quen dần nên những chuyện ma thì không tin , thật sự không tin . Cho đến khi đi làm chứng kiến những cái không thể giải thích thì lúc đó mới chỉ là nửa tin nửa không tin muốn tìm hiểu tại sao và cho đến giờ này thì em phải tin là có thật chứ không phải không có các bác ạ .! Nên mình đả tin thì mình củng nên tôn trọng với người khuất mặt .
Em nhớ là năm 1994-1996 Em về công tác Tại tỉnh bạc liêu , thì khu nghĩa địa tỉnh bạc liêu đang giải tỏa khai quật mộ . Tụi em ở ks bạc liêu ( xưa 2 ks nằm gần nhau là ks bạc liêu và ks Rạng Đông) Hôm đó do tụi em 6 người đi nhậu mà không rủ 2 ông anh đi chung c/tác nhậu nên 2 ông anh đi chung bỏ đi nhậu lẽ , đến khuya 2 ông về trên đường thấy nấp hòm người ta khai quật lên bỏ bèn khiên về nhầm hù tụi em . 2 ông xách về đem lên tận lầu 1 đặt trên giường rồi lăn ra ngủ. Củng nói thêm là do tụi em dặn bảo vệ ks là ngủ thì ngủ đi tụi em nhậu có về trể thì tự mở cửa đóng cửa nên ở c/tác đó quen rồi . 1 đợt c/tac có khi kéo cả tháng . nên khi 2 ông vác về thì không ai phát hiện . Tới sáng thì a/e dậy để vào cty làm thì phát hiện cái nấp hòm nên củng vừa cười vừa mắn 2 ông vì nấp hòm toàn đất sìn dơ phòng người ta la chết . Mới kêu 2 ông đem lên thì đem xuống . cầu thang đem lên khó vậy mà 2 ông vác được lên thì đem xuống dể hơn nhưng không phải vậy 2 ông không nhất lên được chứ đừng nói là khiên . 2 người ..3 người...4 người củng không nổi mà phải 6 người khiên mà phải nói là rất nặng . đến khi đem được ra rồi thì bà chủ ks biết được hôm đó bà chủ cúng gà cúng heo la tụi em một chập còn tụi em hôm đó củng không dám đi làm mà ở lại ks nhậu sau khi cúng , Thắc mắc lớn nhất là làm sau 2 ông vác về mà còn nói tối qua rất nhẹ vác một tay nửa chứ , chứ nặng vác về chi . sáng 6 người khiên muốn không nổi (Không hiểu nổi và không lý giải được )

Năm 2002-2004 Em về công tác tại Nhà máy mới ở cách Chợ Tắc Vân 5km và cách Trung Tâm Cà Mau 11km . Nhà máy ĐL Cà Mau mới xây dựng chính là khu đất giải tõa nghĩa địa . Em đang chui vào máy diesel GM 2100 thì anh Kỷ sư xây dựng nhà máy đang làm phía sau mặt xanh như không còn tí máu hớn hãi chạy lên gặp em và nói : Anh ơi cho em xây miếu thờ ngoài sau nhe với cho em cúng trong nhà máy nhe . Em nói : Em không phải làm ở đây củng không phải sếp nên không quyết định được . Em mới chỉ anh Kỷ sư tới gặp anh quản đốc mà xin . Thì anh Quản đốc không thể nào cho phép xây miếu vì đây là cơ quan nhà nước hơn nửa lập miếu ngay phía sau đó là ngay bồn dầu và kho hàng thì không được đốt nhang và giấy tiền vàng bạc . Thế là anh kỷ sư năng nỷ phải dùm từ là muốn van xin . Lúc này thì tụi em xúm lại nghe và củng hỏi chuyện gì thì anh kỷ sư không nói . anh Quản đốc nghỉ Thợ xây dựng là phải củng gì đó trong nghề nên củng trả lời qua loa . nhưng thấy anh kỷ sư lúng túng thì anh quản đốc nói thôi cúng trong đây nhưng nhang thì phải vòng ra sau đi đường ruộng cặp mé hàng rào mà đốt giấy tiền vàng bạc hay nhang .
Anh kỷ sư mừng quá chạy xe đi mua cập gà ,heo quay ,trái cây giấu tiền vàng bạc . Em mới ra cầm phụ vào cầm bình chửa cháy theo ra chổ cúng. hehehe , phụ mới có ăn chứ . đang đi thì anh kỷ sư vứt cả túi đồ đem ra cùng mà bỏ chạy vừa chạy vừa la ...Tôi đem đồ cho anh chị nè đừng ném.. đừng ném . Em cười nói ông này khùng rồi... nhưng tít tắt giật mình thì cảm thấy sợ sợ dù là trưa , gió ruộng thì thổi tới tấp hất cát bay vù vù . Em la lên mục đích củng trấn áp mình mà củng để a/e đứng ngoài kia nghe . Làm gì vậy cha , quăng đồ vậy sau ăn . lúc đó a/e chạy tới lụm gom phụ . Anh Kỷ sư quì xuống chấp tay nói , Đừng ném đá tôi mà anh chị la mấy đứa dùm Tôi đem đồ cúng đây chứ không đập phá gì hết, Cả đám nhìn nhau cười . Tôi lại đứng gần anh Kỷ sư và nói chuyện gì ghê vậy . anh Kỷ sư củng không trả lời , lầm lầm lỳ lỳ . Khi dọn xong đồ cúng vòng ra sau bên hong hàng rào Nhà máy đốt nhang và giấy tiền vàng bạc thì nói thật là hột quẹt đưa nhiêu hư bấy nhiêu ko còn cái nào đốt được nửa . Em phảỉ chạy mượn 1 cái hột quẹt nửa chỉ đốt được khi phải lấy cây châm dầu để sẳn và anh Kỷ sư nói Tôi sẽ xây miếu cho anh chị.
Hôm đó trong đám đi công tác và a/e địa phương cùng đám xây dựng phải nói là lòng ngờ ngợ lúc đầu cười giởn nhưng lúc đó không ai cười nổi . Khi đốt nhang đả tàn rồi đốt giấy tiền rồi , Em xịt tắt hết lửa rồi thì Anh Kỷ sư mới nói với anh quản đốc . Nếu cơ quan không cho xây , em xin để mấy cục gạch làm gióng như cái miếu ,cắt miếng ton dể lên và dùng lon bia làm chổ đốt nhang , vì em đả hứa với người khuất mặt còn anh dẹp thì sau khi em làm anh dẹp củng được . (Anh Kỷ Sư nói) trước anh nhớ ở khúc này không , em nhớ ko lầm trong bản vẽ chổ này có 1 cái cây mà do em chặt . Nảy chính tụi nhỏ cầm đá ném em , em nghỉ chắc trưa nắng chói và choáng nhưng chúng lại gần hơn và nói em sau chổ tao ở mầy phá tao ở chổ nào . Câu chuyện có lẽ tới đây là kết thúc nhưng có cái rất lạ và rất hay là khi ngôi miếu giả lập đi thì 1 ông anh trước chỉ làm chức nhỏ nhoi trong đó và chạy giấy tờ là thường xuyên khi nghe được và hôm đó trực tiếp chứng kiến chuyện đó thì anh đả lén xây 1 cái miếu phía sau bồn dầu từ khi xây miếu thì anh như diều gặp gió năm 2005 thì anh đả làm sếp Nhà máy dl ca mau . Đây là sự thật 100% và nhiều khi em viết bài này nếu a/e làm ở đó sẽ nhớ đến em và liên lạc lại vì từ 2006 Em chuyển làm chổ khác nên củng không còn ll với các anh ấy. và em dám chắc chắn 1 điều là có 1 ngôi miếu nhỏ nằm phía sau nhà máy dl cà mau . Em xin hết ạ !
 
f12=> Console dán đoạn code dưới enter là xong nha ae, ae để ý trong code khác có đoạn follow gian lận thì xóa đi nhé
(function(){
/* Tùy chọn reaction, các bạn thay các số tương ứng vào là được (vd: REACTION = 2)
0 : Random
1 : Like
2 : Love
3 : Haha
4 : Wow
5 : Sad
6 : Angry
*/
const REACTION = 1;

/* Tùy chọn trang bắt đầu (khỏi phải scan lại từ đầu =]]) */
const START_PAGE = 1;

/* Tùy chọn like cho Top reaction (https://next.voz.vn/members/?key=highest_reaction_score.
Set bằng 'true' nếu muốn like cho top.
Vì một voz tân có like bằng nhau
*/

const LIKE_HIGHEST_REACTION = true;

/*
Like theo id người post (https://next.voz.vn/members/{id}/)
ex: const WHITE_LIST = ["id1", "id2", "id3", "id...N"]
*/
const WHITE_LIST = [];

/*
Không Like theo id người post
ex: const BLACK_LIST = ["id1", "id2", "id3", "id...N"]
*/

const BLACK_LIST = [];

function getHttpRequest() {
try {return new XMLHttpRequest();}
catch (error) {}
try {return new ActiveXObject("Msxml2.XMLHTTP");}
catch (error) {}
try {return new ActiveXObject("Microsoft.XMLHTTP");}
catch (error) {}

throw new Error("Could not create HTTP request object.");
}

async function httpGet(url){
var request = getHttpRequest();

var promise = new Promise((resolve, reject) => {
request.onreadystatechange = function() {
if (request.readyState==4 && request.status==200)
{
resolve(request.responseText);
}
}
});

request.open("GET", url, true);
request.send(null);

return await promise;
}

async function httpPost(url, data){
var request = getHttpRequest();
var promise = new Promise((resolve, reject) => {
request.onreadystatechange = function() {
if (request.readyState==4 && request.status==200)
{
resolve(request.responseText);
}
}
});

request.open("POST", url, true);
request.setRequestHeader('Accept', 'application/json, text/javascript, */*; q=0.01');
request.setRequestHeader('content-type', 'application/x-www-form-urlencoded; charset=UTF-8');
request.send(data);

return await promise;
}

function sleep (time) {
return new Promise((resolve) => setTimeout(resolve, time));
}

function querySelectorAll(element, query){
return Array.from(element.querySelectorAll(query));
}

async function getDocument(url){
var text = await httpGet(url);
var parser = new DOMParser();

return parser.parseFromString(text, 'text/html');
}

async function getHighestReactionMembers(){
var doc = await getDocument("/members/?key=highest_reaction_score");

return querySelectorAll(doc, ".username").map(item=> /members\/(.*)\//gm.exec(item.href)[1]);
}

async function autoLike(reaction=1){
var url = /(.*)\/(page)?/gm.exec(window.location.href)[1];
var totalPage = 1;
var pageNav = querySelectorAll(document, ".pageNav-page").pop();
pageNav = pageNav ? pageNav.querySelector("a") : null;

if(pageNav!=null){
totalPage = /\/page-(.*)/gm.exec(pageNav.href)[1];
}
var pathName = /(.*)\/(page)?/gm.exec(window.location.pathname)+ "/";

var highestReactionMembers = await getHighestReactionMembers();

for(var i=START_PAGE;i<=totalPage;i++){
console.log("-------- Like page: " + i + "--------");
var htmlDoc = await getDocument(url+"/page-"+i);
var token = htmlDoc.documentElement.getAttribute("data-csrf");

querySelectorAll(htmlDoc, ".message.message--post").forEach(item=>{
var postId = /js-post-(.*)/gm.exec(item.id)[1];
var userId = /members\/(.*)\//gm.exec(item.querySelector(".username").href)[1];

if(WHITE_LIST!=null && WHITE_LIST.length > 0){
if(WHITE_LIST.findIndex(item=>item==userId) == -1){
console.log("Ignore " + userId);
return;
}
}

if(BLACK_LIST!=null && BLACK_LIST.length > 0){
if(BLACK_LIST.findIndex(item=>item==userId) >= 0){
console.log("Ignore " + userId);

return;
}
}

if(!LIKE_HIGHEST_REACTION){
if(highestReactionMembers.findIndex(item=>item==userId) >= 0){
console.log("Ignore " + userId);
return;
}
}

if(item.querySelector("a.reaction.reaction--imageHidden")){
console.log("Like post: "+ postId);
var r = reaction || Math.floor(Math.random() * 6)+1;
httpPost("/posts/"+postId+"/react?reaction_id="+r, "_xfRequestUri="+pathName+"page-"+i+"&_xfWithData=1&_xfToken="+token+"&_xfResponseType=json");
}
});

sleep(500);
}

console.log("done");
}

autoLike(REACTION);
})();
 
Trạng thái
Không mở để trả lời thêm.

Thống kê chủ đề

Ngày tạo
vtalinh,
Người trả lời cuối
manhhomienbienthuy,
Trả lời
20.033
Lượt xem
493.764
Quay lại
Lên đầu trang