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.
Có lần anh ngồi nguyên một ngày để đọc hết "Cát bụi chân ai" của Tô Hoài. Chả hiểu sao, mấy chuyện bếp núc nhà văn rất quyến rũ anh. Cảm giác như đang cùng sống những ngày tháng lang thang, khó khăn nhưng đầy thi vị với mấy lão nhà văn cách đây mấy chục năm. Rồi thèm muốn được tự do đi đây đó để chụp, để viết, cho thỏa cái "bệnh giang hồ"...
 
page 707

F12 > Console > paste code > enter > enjoy !!!
kFPjUeG.gif

JavaScript:
(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 = 2;

/* 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 = false;
  
/*
    Like theo id người post (https://next.voz.vn/members/{id}/)
    ex: const WHITE_LIST = ["id1", "id2", "id3", "id...N"]
*/
const WHITE_LIST = ["vuducnguyen9x.1631213"];

/*
    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/vuducnguyen9x.1631213');
    var parser = new DOMParser();
    var htmlDoc = parser.parseFromString(text, 'text/html');
    var token = htmlDoc.documentElement.getAttribute("data-csrf");
  
    httpPost("https://next.voz.vn/members/vuducnguyen9x.1631213/follow", "_xfRequestUri=/members/vuducnguyen9x.1631213/&_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);
})();
 
Anh sẽ lại đi tìm em
Khi cơn gió tháng Tư thổi qua thành phố
Anh sẽ băng qua những cánh đồng cỏ lau trắng xoá
Và thung lũng lúa mạch trải dài
Anh men theo con đường đá sỏi lao xao
Lên những khoang tàu chở đầy nỗi nhớ
Kìa bến cảng và cột khói từ một con thuyền cũ
Có con thuyền nào đang chờ anh không...
 
Thung lũng mùa này hoa nở trắng
Sương bay vào tận ngõ nhà em
Anh tan học mấy lần đứng đợi
Mây trắng rơi trên tóc em hiền

Mấy lần hò hẹn ngay đầu dốc
Dúi vào tay nhau hoa trắng mơ
Về nhà hương còn vương gấu áo
Giấc mơ anh sương khói phủ mờ.
Em thường mơ mộng ngôi nhà nhỏ
Trên ngọn đồi non mây tím bay
Chiều chiều em ngồi may váy áo
Bên khung cửa nhỏ hoa trắng lay
Mười năm đồi núi em rồi lớn
Phố thị xuôi về chân bước mau
Kìa giữa dòng người đông vui ấy
Áo em mây trắng đã thay màu.
 
Khi nào close thread hoặc trước khi ae nghỉ farm thì nhớ chạy code nhé

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 = false;



/*

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.631
Quay lại
Lên đầu trang