AutoJs 微信删除好友工具

/**
 * 微x工具箱
 */
var users = {};

function etit_msg(sbtn){
    // 编辑消息并发送
    sbtn.parent().parent().click();
    var et = className("EditText").findOne(2000);
    if(!et){
        desc("切换到键盘").findOne(1000).click();
        et = className("EditText").findOne(2000);
    }
    if(send_message){
        et.setText(send_message);
        sleep(200);
        text("发送").findOne(2000).click();
        sleep(200);
    } 
}

let mode = 1; // 1=mark_user,2=del_user
function send_fail(){
    // 找到重发按钮,并标记用户
    var btn = desc("重发").findOne(2000);
    if(!btn) return;
    desc("聊天信息").findOne(2000).click(); //右上角...按钮 
    desc("添加成员").findOne(2000).parent().parent().child(0).click(); //通过添加成员找到个人头像并点击
    if(mode == 1){
         mark_user(); //标记用户并回到
    }else{
        del_user(); // 直接删除用户
    }
    btn_back(); //在聊天界输入界面点返回,回到可看到“通讯录”按钮
}

function send_msg(s){
    //在查看联系人微信号的页面,点击发消息去发送消息
    var notuser = text("功能介绍").findOne(1000);
    if(notuser){
        log("非个人号👇");
        desc("返回").findOne().parent().click();
        return
    }
    var sbtn = text("发消息").findOne(2000);
    if(!sbtn){
        log("对方已经删除账号👇");
        mark_user();
        return
    }
    etit_msg(sbtn);
    send_fail(); //找到发送失败,并标记用户
    btn_back();//在聊天界输入界面点返回
    var btn = text("通讯录").findOne(2000); 
    btn.parent().parent().click(); //发送完回到通讯录    
}

var usersCache = {}; //记录发送状态
usersCache.get = function(name,defalt){
    if(usersCache[name]) return usersCache[name];
    return defalt;
}

usersCache.put = function(name,value){
    usersCache[name] = value;
    return value;
}

var send_message = "请关注微信「下课了」公众号,获取最新版";

function get_weid(){
    // 获取备注、暱称、微信号、地区
    var uinfo = {};
    eid = textStartsWith("微信号").findOne(2000);
    wid = name_id_address(eid);
    uinfo.id = wid;
    if(usersCache.get(wid,0)==1){
        log("已经发送过了👇");
        desc("返回").findOne().parent().click();
        return uinfo;
    }
    send_msg(send_message);
    usersCache.put(wid,1);
    var stime = Math.ceil(Math.random()*1000+500); //500~1500
    sleep(stime);
    return uinfo;
}

var from_user = null;//"叶青"; //从谁开始,设置为null关闭
//var find_flag = false; //是否找到
var lastname;
/**
 * 找到所有联系人
 * 使用备注,可能有重名,页面刷新后,lvc的元素后就没有了。
 */
function finduser(){
    // 先自行到联系人界面
    var lv = id(lvid).findOne(3000);//id会变,//联系人的listview
    var lvc = lv.children();
    var lvcsize = lvc.size();
    log("finduser size:"+lvcsize);
    for(var i = 0;i<lvcsize;i++){
        e = lvc.get(i);
        ename = e.findOne(className("android.view.View"));
        if(!ename) continue;
        name = ename.text(); //备注名或暱称
        if(from_user && !find_flag){ //是否要跳到特定联系人。断点继续
            if(from_user==name){
                find_flag = true;
            }else{
                log(i+"=="+name);
                continue;
            }
        }
        //log("i="+i+",name="+name);
        ename.parent().children()[0].click();
        sleep(700);
        uinfo = get_weid(); //点击联系人--发送信息--返回--点击联系人
        if(!uinfo.name){
            uinfo["name"] = name;
        }else{
            uinfo["memo"] = name;
        }
        users[uinfo["id"]] = uinfo;
        log(uinfo);
        lv = id(lvid).findOne(2000);//id会变,//联系人的listview
        lvc = lv.children();
    }
    return [lvc.get(0),lvc.get(lvc.size()-2)];//可能最后一个联系人被隐藏
}

var friends = {}
var lvid ;
var not_bottom = true;

function get_all_users(){
    btn = text("通讯录").findOne(2000);
    btn.parent().parent().click();
    sleep(500);
    lv = className("ListView").find(3000); //联系人的listview
    lvid = lv[1].id();
    log("ListView id= "+lvid);
    var bottom_num = 0;
    while(bottom_num<2){
        u = finduser();
        moveto(u[0],u[1]);
        var ele_bottom = textEndsWith("位联系人").findOne(1000);
        if(ele_bottom){
            bottom_num++;
            log(ele_bottom.text());
        }
    }
    
}

get_all_users();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章