TG.WXCRM.V4/WxService/TS/WebChatManagerv2.2.lua

295 lines
12 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local function trimRN(str) --linux 上去除\r换行符,读取问题多是有符号和空格的原因
if str == nil then
return nil,"the string parameter is nil"
end
-- str = string.gsub(str, " ", "")
str = string.gsub(str,"\r","")
str = string.gsub(str,"\n","")
return str
end
function readFile(path)--读取txt文档
local file = io.open(path,"r");
if file then
local _list = {};
for line in file:lines() do
str = string.gsub(line,"\r","")
str = string.gsub(str,"\n","")
if str~=nil and str~="" and str~="\r\n" then
table.insert(_list,trimRN(str))
--nLog('++'..trimRN(line)..'--');
nLog("数据正常:"..str.."###")
else
nLog("数据为空:"..str)
end
end
file:close();
return _list
end
end
function ButtonClick(x,y,name)--按钮点击
if x>-1 and y>-1 then
nLog("--------已找到:"..name..",x:"..x.." y:"..y);
touchDown(x, y); --在 (150, 550) 按下
mSleep(30);
touchUp(x, y);
else
nLog("--------找不到按钮:"..name..",x:"..x.." y:"..y);
end
end
function FindNeedAddCustomer()--添加按钮点击
--查找添加按钮
--mSleep(1 * 1000);
x3,y3 = findMultiColorInRegionFuzzy( 0xdfdfdf, "8|-19|0xdfdfdf,116|-15|0xf5f5f5,116|39|0xdfdfdf,53|40|0xdfdfdf,47|29|0xf8f8f8,45|6|0x353535,52|5|0xf8f8f8,63|11|0x9e9e9e,67|14|0xf8f8f8", 90, 0, 0, 719, 1279)
nLog("x3:"..x3.." y3:"..y3);
ButtonClick(x3,y3,"添加好友");
end
local function writeFile(fileName,content) --输出文本到txt
local f = assert(io.open(fileName,'a'))
f:write(content.."\r\n")
f:close()
end
---返回到微信的home界面
function backHome()--返回至主界面
mSleep(500)
b=1;
while(b>0)
do
b=0
xQue,yQue = findMultiColorInRegionFuzzy( 0xffffff, "6|7|0xcfeecf,10|10|0x1aad19,16|11|0x83d383,25|9|0xffffff,25|0|0xffffff,34|3|0xa5dfa5,35|9|0xffffff,35|19|0x32b631,39|18|0xfbfdfa", 90, 0, 0, 719, 1279)
if xQue>-1 and yQue>-1 then
b=b+1;
ButtonClick(xQue,yQue,"确定按钮");--如果有确定按钮就确定
end
mSleep(3000)
xBack,yBack=findMultiColorInRegionFuzzy( 0xffffff, "-5|0|0xdadadb,2|-2|0xdadbdc,6|-2|0x393a3f,8|0|0xffffff,23|1|0xffffff,26|1|0xceced0,27|0|0x393a3f,11|15|0xf3f3f4,11|16|0x5e5f63", 90, 0, 0, 719, 1279)
if xBack>-1 and yBack>-1 then
b=b+1;
ButtonClick(xBack,yBack,"返回按钮");--如果有返回按钮点击返回
end
mSleep(500)
xBack,yBack=findMultiColorInRegionFuzzy( 0xffffff, "-5|0|0xdadadb,2|-2|0xdadbdc,6|-2|0x393a3f,8|0|0xffffff,23|1|0xffffff,26|1|0xceced0,27|0|0x393a3f,11|15|0xf3f3f4,11|16|0x5e5f63", 90, 0, 0, 719, 1279)
if xBack>-1 and yBack>-1 then
b=b+1;
ButtonClick(xBack,yBack,"返回按钮");--如果有返回按钮点击返回
end
end
mSleep(3 * 1000);
end
function Split(szFullString, szSeparator)
local nFindStartIndex = 1
local nSplitIndex = 1
local nSplitArray = {}
while true do
local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex)
if not nFindLastIndex then
nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString))
break
end
nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1)
nFindStartIndex = nFindLastIndex + string.len(szSeparator)
nSplitIndex = nSplitIndex + 1
end
return nSplitArray
end
function unloackJM()
flag = deviceIsLock(); --如果要在设备自启动时解锁屏幕直接使用 unlockDevice 函数即可
if flag == 0 then
nLog("未锁定")
else
nLog("锁定了,正在解锁屏幕")
unlockDevice(); --解锁屏幕
nLog("解锁OK。。。")
end
end
function unloackLM()
unlockDevice(); --解锁屏幕
end
local function urlEncode(s)
s = string.gsub(s, "([^%w%.%- ])", function(c) return string.format("%%%02X", string.byte(c)) end)
return string.gsub(s, " ", "+")
end
local function urlDecode(s)
s = string.gsub(s, '%%(%x%x)', function(h) return string.char(tonumber(h, 16)) end)
return s
end
list = readFile('/storage/emulated/0/WeiXinCrmLua/ResPhone.txt');
if list ==nil then
nLog("====找不到文件,退出脚本=====")
lua_exit(); --否则退出脚本
mSleep(10)
return
end;
addPhone={};
addPhone2={};
mlgb=0;
time = getNetTime();
nLog(os.date("%Y-%m-%d %H:%M:%S",time))
for key, var in ipairs(list) do
mlgb=mlgb+1;
if mlgb<11 then
--nLog('通讯录+++key:'..key..",var:"..var)
alist=Split(var,",")
vailmsg=alist[4]
x={lastname="",firstname=alist[3],mobile=alist[2]};
y={pici=alist[1],vailmsg=vailmsg,firstname=alist[3],mobile=alist[2]};
table.insert(addPhone,mlgb,x)
table.insert(addPhone2,mlgb,y)
end
end
if mlgb==0 then
nLog("====无数据,退出脚本=====")
lua_exit(); --否则退出脚本
mSleep(10)
return
end;
mSleep(3000)
--removeAllContactsFromAB();--清除通讯录
mSleep(5000)
time2 = getNetTime();
nLog(os.date("%Y-%m-%d %H:%M:%S",time2))
for _,v in ipairs(addPhone) do
--nLog("通讯录添加:"..v)
addContactToAB(v)
nLog(v.firstname)
end
nLog("通讯录添加成功!")
mSleep(5000)
---通讯录添加成功
nLog("=======解锁屏幕1========")
unloackJM()
mSleep(2000)
nLog("=======解锁屏幕2========")
unloackLM()--再次判定是否锁屏
r = runApp("com.tencent.mm") --启动微信
nLog("启动微信")
logfile="/storage/emulated/0/WeiXinCrmLua/phonelog.txt";
i=0;
backHome();---返回到主界面
mSleep(300)
firstx,firsty = findMultiColorInRegionFuzzy( 0xafafaf, "1|7|0x979797,0|3|0xefefef,1|3|0xfcfcfc,4|11|0xfdfdfd,12|29|0x999999,6|28|0xfdfdfd,4|24|0xa9a9a9,13|40|0x9c9c9c,24|24|0x989898", 90, 0, 0, 719, 1279)
ButtonClick(firstx,firsty,"微信栏");--点击主界面的微信栏目
mSleep(500)
xisC,yisC = findMultiColorInRegionFuzzy( 0xf4b4b2, "1|0|0xe26865,0|9|0xe4736f,-1|13|0xfff8f8,2|23|0xffe8e5,17|2|0xffe7e5,42|-1|0x5e5c5d,41|14|0x94908f,48|10|0xebe1e0,55|8|0x5c5b59", 90, 0, 0, 719, 1279)
if xisC>-1 and yisC>-1 then
nLog("========毛网络,脚本退出========")
lua_exit(); --否则退出脚本
mSleep(10)
end
mSleep(5000)
--ax,ay = findMultiColorInRegionFuzzy( 0x9f9f9f, "-1|6|0xfcfcfc,13|12|0x999999,21|10|0xfcfcfc,22|12|0x999999,15|-15|0xfcfcfc,18|-20|0xbebebe,26|0|0x999999,26|-5|0xfcfcfc,26|-8|0x999999", 90, 0, 0, 719, 1279)
ax,ay = findMultiColorInRegionFuzzy( 0xd5d5d5, "-3|0|0xafafaf,8|1|0xfefefe,9|2|0x969696,19|2|0x969696,19|5|0xfefefe,-9|23|0xcccccc,-13|19|0x9a9a9a,-11|31|0xaeaeae,-4|30|0xfcfcfc", 90, 0, 0, 719, 1279)
ButtonClick(ax,ay,"通讯录");--点击主界面的通讯录栏目,然后等待一分钟
mSleep(60*1000)
unloackJM()--如果一分钟内界面锁定,自行解锁
x1,y1=findMultiColorInRegionFuzzy( 0xffffff, "-7|-8|0x393a3f,-19|-1|0xceced0,-19|1|0xa9a9ab,18|0|0xceced0,1|3|0xffffff,2|-3|0x393a3f,-4|2|0x393a3f,-3|-18|0x393a3f,-1|-2|0xffffff", 90, 0, 0, 719, 1279)
ButtonClick(x1,y1,"右上角加号");--点击右上角加号
mSleep(1000)
x2,y2=findMultiColorInRegionFuzzy( 0xceced0, "8|0|0xffffff,14|3|0x393a3f,15|16|0xffffff,18|11|0xe6e6e7,19|5|0x393a3f,20|-1|0xcdcdcf,31|-1|0xcdcdcf,32|2|0xfefefe,32|5|0x393a3f", 90, 0, 0, 719, 1279)
ButtonClick(x2,y2,"添加朋友菜单");--点击添加朋友
mSleep(1000);
x3,y3 = findMultiColorInRegionFuzzy( 0xfa9d3b, "22|1|0xffffff,34|-2|0xfa9d3b,33|13|0xfdd5aa,35|17|0xfa9d3b,47|26|0xfa9d3b,43|29|0xffffff,52|1|0xfa9d3b,46|21|0xffffff,43|34|0xfeeddb", 90, 0, 0, 719, 1279)
ButtonClick(x3,y3,"手机联系人按钮");--点击手机联系人
mSleep(1000);
--x4,y4 = findMultiColorInRegionFuzzy( 0x4ec326, "0|4|0x4ec326,-1|25|0xffffff,18|21|0xffffff,22|28|0xd2f0c8,31|38|0xa6e192,39|33|0xffffff,39|30|0xffffff,0|18|0x58c632,-1|12|0x4ec326", 90, 0, 0, 719, 1279)
--ButtonClick(x4,y4,"手机联系人??");--点击添加手机联系人
mSleep(10000);--停顿10s显示手机联系人可能会久一点
--switchTSInputMethod(true);
for key, nn in ipairs(addPhone2) do
var=nn.firstname
pici=nn.pici
vailmsgx=urlDecode(nn.vailmsg)
nLog('key='..key.. ',value='..var..'--')
mSleep(3000)
x5,y5 = findMultiColorInRegionFuzzy( 0x393a3f, "-11|-1|0xd9dadb,-13|4|0xffffff,-11|6|0xfefefe,-3|16|0xffffff,20|24|0x848487,17|20|0xffffff,13|11|0x45464b,-4|8|0x393a3f,11|-1|0x848487", 90, 0, 0, 719, 1279)
ButtonClick(x5,y5,"放大镜搜索");--点击放大镜,搜索联系人
mSleep(1000)
x6,y6 = findMultiColorInRegionFuzzy( 0x6b6b6f, "-3|-4|0x4c4d51,-9|-10|0x4c4d51,2|-1|0x6b6b6f,6|-1|0x4c4d51,11|1|0x393a3f,12|7|0x6b6b6f,12|11|0x4c4d51,1|3|0x4c4d51,3|3|0x393a3f", 90, 0, 0, 719, 1279)
ButtonClick(x6,y6,"删除文字");--点击删除文字
-- mSleep(500);--延迟 1 秒以便获取焦点,注意某些应用不获取焦点无法输入
-- for var = 1,15 do
-- inputText("\b") --删除输入框中的文字(假设输入框中已存在文字)
-- end
mSleep(1000);
inputText(var); --在输入框中输入字符串"Welcome."并回车;此函数在某些应用中无效,如支付宝、密码输入框等位置,甚至可能会导致目标应用闪退
mSleep(3000);--等待搜索
--switchTSInputMethod(false);
--无结果
x7,y7 = findMultiColorInRegionFuzzy( 0x888888, "13|2|0x979798,17|1|0xadafb2,47|-2|0xb3b5b8,54|10|0xced2d7,56|2|0xced2d7,77|8|0x888888,88|13|0x888888,77|-11|0x888888,75|-5|0x888888", 90, 0, 0, 719, 1279)
--有添加按钮
x8,y8 = findMultiColorInRegionFuzzy( 0xffffff, "-3|8|0x2ab329,11|8|0x6cca6b,12|10|0x4abe49,29|11|0xffffff,33|9|0x6fcc6f,40|13|0x26b125,41|15|0xffffff,-56|33|0x7cc87b,-54|34|0x56b855", 90, 0, 0, 719, 1279)
--已添加
x9,y9 = findMultiColorInRegionFuzzy( 0x777777, "-2|-14|0xb1b1b1,1|-11|0xb9b9b9,2|1|0xb9b9b9,19|4|0xb1b1b1,22|1|0xa8a8a8,44|-6|0xa7a7a7,49|-2|0x8c8c8c,68|8|0x777777,70|-10|0xf3f3f3", 90, 0, 0, 719, 1279)
if x7==-1 and y7==-1 and x8>-1 and y8>-1 then--有添加按钮
ButtonClick(x8, y8,"添加按钮");--点击添加按钮
nLog("找到添加按钮。。。添加数据");
mSleep(2000)
x10,y10 = findMultiColorInRegionFuzzy( 0x1aad19, "14|4|0x1aad19,20|2|0xffffff,22|2|0x1aad19,23|-4|0x7dd07c,30|1|0x1aad19,41|6|0xffffff,42|5|0xbee8be,48|4|0x1aad19,51|10|0x1aad19", 90, 0, 0, 719, 1279)
if x10>-1 and y10>-1 then
--如果验证信息为空,就使用微信的默认验证消息
if vailmsgx~=nil and vailmsgx~="" then
x11,y11 = findMultiColorInRegionFuzzy( 0xbfbfbf, "-5|4|0xffffff,-5|-2|0xbfbfbf,-7|-2|0xe7e7e7,1|-10|0xe7e7e7,8|-12|0xbfbfbf,2|-5|0xe7e7e7,-2|0|0xe7e7e7,0|2|0xe7e7e7,1|2|0xbfbfbf", 90, 0, 0, 719, 1279)
ButtonClick(x11, y11,"清除验证消息");--点击备注界面
mSleep(500)
inputText(vailmsgx);--填入备注信息
end
--输入备注
ButtonClick(684, 483,"备注界面");--点击备注界面
mSleep(500)
--switchTSInputMethod(true);
inputText("@"..var.."@");
mSleep(500)
--switchTSInputMethod(false);
ButtonClick(x10, y10,"发生按钮");--点击发送按钮
writeFile(logfile,pici..","..var..",2")
nLog(var.." 已发送添加")
else
writeFile(logfile,pici..","..var..",2")--已发送添加
end
elseif x9>-1 and y9>-1 then --已经添加
writeFile(logfile,pici..","..var..",1")--已经添加
else
writeFile(logfile,pici..","..var..",3")--找不到
end
end
backHome();---返回到主界面
--执行成功,进行删除操作
local xn = assert(io.open('/storage/emulated/0/WeiXinCrmLua/ResPhone.txt','w'))
for key, var in ipairs(list) do
wv=0;
for ckey, nn in ipairs(addPhone2) do
nLog("var:"..var)
linetxt=nn.pici..","..nn.mobile..","..nn.firstname..","..nn.vailmsg;
nLog("linetxt:"..linetxt)
if linetxt==var then
wv=1
nLog("数据相等!"..linetxt)
end
end
if wv==0 then
xn:write(var.."\r\n")
end
end
xn:close();--关闭文档写入