/**
* 微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();