add some scripts
This commit is contained in:
@@ -9,8 +9,8 @@ android {
|
||||
applicationId "com.stardust.scriptdroid"
|
||||
minSdkVersion 19
|
||||
targetSdkVersion 23
|
||||
versionCode 125
|
||||
versionName "2.0.9 Beta"
|
||||
versionCode 126
|
||||
versionName "2.0.10 Beta"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
multiDexEnabled true
|
||||
ndk {
|
||||
|
||||
@@ -14,7 +14,9 @@ function 显示更多(){
|
||||
}
|
||||
}
|
||||
|
||||
toast("请打开点赞自己的人的界面");
|
||||
toast("请打开自己的资料页,点击点赞图标");
|
||||
sleep(100);
|
||||
|
||||
while(notStopped()){
|
||||
for(let i = 0; i < 10; i++){
|
||||
赞();
|
||||
17
app/src/main/assets/sample/QQ与微信/QQ循环发送图片.js
Normal file
17
app/src/main/assets/sample/QQ与微信/QQ循环发送图片.js
Normal file
@@ -0,0 +1,17 @@
|
||||
"auto";
|
||||
|
||||
launchApp("QQ");
|
||||
toast("请打开一个聊天窗口,将会循环发送第一张图片100次");
|
||||
|
||||
while(!id("ivTitleBtnRightImage").exists());
|
||||
|
||||
var listParent = className("AbsListView").findOne().parent();
|
||||
var icons = listParent.child(listParent.childCount() - 2);
|
||||
icons.child(1).click();
|
||||
sleep(200);
|
||||
|
||||
for(i = 0; i < 100;i++){
|
||||
className("CheckBox").untilFindOne().click();
|
||||
sleep(200);
|
||||
id("send_btn").click();
|
||||
}
|
||||
27
app/src/main/assets/sample/QQ与微信/取关全部公众号.js
Normal file
27
app/src/main/assets/sample/QQ与微信/取关全部公众号.js
Normal file
@@ -0,0 +1,27 @@
|
||||
"auto";
|
||||
|
||||
if (confirm("将会取关所有公众号,是否继续")) {
|
||||
unfollowAll();
|
||||
}
|
||||
|
||||
function unfollowAll() {
|
||||
launchApp("微信");
|
||||
sleep(1000);
|
||||
while (!click("通讯录"));
|
||||
while (!click("公众号"));
|
||||
sleep(500);
|
||||
while (true) {
|
||||
className("ListView").findOne().children().each(function(item) {
|
||||
if (item.longClickable()) {
|
||||
unfollow(item);
|
||||
sleep(400);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function unfollow(item) {
|
||||
item.longClick();
|
||||
while (!click("取消关注"));
|
||||
while (!click("不再关注"));
|
||||
}
|
||||
54
app/src/main/assets/sample/QQ与微信/好友列表名片点赞(不完美).js
Normal file
54
app/src/main/assets/sample/QQ与微信/好友列表名片点赞(不完美).js
Normal file
@@ -0,0 +1,54 @@
|
||||
"auto";
|
||||
|
||||
//漏赞过多请稍微调大延迟
|
||||
var 延迟 = 200;
|
||||
|
||||
launchApp("QQ");
|
||||
//点击联系人图标
|
||||
className("TabWidget").findOne().child(1).click();
|
||||
toast("请展开要点赞的分组");
|
||||
var fail = 0;
|
||||
|
||||
while(true){
|
||||
|
||||
var list = id("elv_buddies").className("AbsListView").findOne();
|
||||
var count = list.childCount();
|
||||
print("count" + list.childCount());
|
||||
|
||||
for(let i = 0; i < count; i++){
|
||||
try{
|
||||
let child = list.child(i);
|
||||
print(i);
|
||||
if(isFriend(child)){
|
||||
//点进好友名片
|
||||
child.click();
|
||||
fav(10);
|
||||
backToList();
|
||||
sleep(延迟);
|
||||
}
|
||||
}catch(e){
|
||||
fail++;
|
||||
toast("可能漏赞:" + fail);
|
||||
}
|
||||
}
|
||||
list.scrollForward();
|
||||
}
|
||||
|
||||
//点赞
|
||||
function fav(times){
|
||||
var i = 0;
|
||||
var btn = descEndsWith("点击可赞").findOne();
|
||||
while(i < times){
|
||||
i += btn.click()? 1 : 0;
|
||||
}
|
||||
}
|
||||
|
||||
//判断是否是好友的视图
|
||||
function isFriend(child){
|
||||
return child && child.className().endsWith("LinearLayout") && child.childCount() == 2 && child.child(0).className().endsWith("FrameLayout");
|
||||
}
|
||||
|
||||
//返回好友列表
|
||||
function backToList(){
|
||||
id("ivTitleBtnLeft").click();
|
||||
}
|
||||
10
app/src/main/assets/sample/QQ与微信/循环发送消息.js
Normal file
10
app/src/main/assets/sample/QQ与微信/循环发送消息.js
Normal file
@@ -0,0 +1,10 @@
|
||||
"auto";
|
||||
|
||||
toast("请打开一个聊天窗口");
|
||||
sleep(500);
|
||||
|
||||
while(true){
|
||||
input("我喜欢你");
|
||||
click("发送");
|
||||
sleep(200);
|
||||
}
|
||||
@@ -3,6 +3,6 @@
|
||||
while(true){
|
||||
if(id("i4").untilFindOne().parent().parent().click()){
|
||||
sleep(700);
|
||||
id("gf").click();
|
||||
back();
|
||||
}
|
||||
}
|
||||
18
app/src/main/assets/sample/QQ与微信/批量删除微信好友.js
Normal file
18
app/src/main/assets/sample/QQ与微信/批量删除微信好友.js
Normal file
@@ -0,0 +1,18 @@
|
||||
"auto";
|
||||
|
||||
launchApp("微信");
|
||||
while(!click("通讯录"));
|
||||
|
||||
toast("在好友列表中点谁删谁。被删除的好友将在日志中记录。");
|
||||
while(true){
|
||||
if(desc("更多").exists()){
|
||||
var weChatId = textContains("微信号").find();
|
||||
if(weChatId && weChatId.size()){
|
||||
console.log(weChatId.get(0).text());
|
||||
}
|
||||
while(!desc("更多").click());
|
||||
while(!click("删除"));
|
||||
while(!click("删除"));
|
||||
sleep(200);
|
||||
}
|
||||
}
|
||||
29
app/src/main/assets/sample/QQ与微信/批量删除朋友圈.js
Normal file
29
app/src/main/assets/sample/QQ与微信/批量删除朋友圈.js
Normal file
@@ -0,0 +1,29 @@
|
||||
"auto";
|
||||
|
||||
launchApp("微信");
|
||||
sleep(500);
|
||||
while(!click("发现"));
|
||||
while(!click("朋友圈"));
|
||||
descContains("我的头像").click();
|
||||
toast("请点击要删除的朋友圈");
|
||||
|
||||
while(true){
|
||||
deletePost();
|
||||
sleep(200);
|
||||
}
|
||||
|
||||
|
||||
function deletePost(){
|
||||
var isPhoto = desc("更多").exists();
|
||||
if(isPhoto){
|
||||
desc("更多").click();
|
||||
}
|
||||
if(click("删除")){
|
||||
while(!click("确定"));
|
||||
sleep(200);
|
||||
if(isPhoto){
|
||||
while(!back());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
25
app/src/main/assets/sample/QQ与微信/批量取关公众号.js
Normal file
25
app/src/main/assets/sample/QQ与微信/批量取关公众号.js
Normal file
@@ -0,0 +1,25 @@
|
||||
"auto";
|
||||
launchApp("微信");
|
||||
enterOfficialAccounts();
|
||||
sleep(200);
|
||||
toast("请点击要取关的公众号");
|
||||
while(true){
|
||||
//点击右上角小人图标
|
||||
desc("聊天信息").findOne().click();
|
||||
//获取微信号并记录
|
||||
var weChatId = textContains("微信号").findOne();
|
||||
console.log("取关: " + weChatId.text());
|
||||
//点击右上角三个小点儿
|
||||
desc("更多").findOne().click();
|
||||
while(!click("不再关注"));
|
||||
sleep(200);
|
||||
while(!click("不再关注"));
|
||||
sleep(200);
|
||||
enterOfficialAccounts();
|
||||
}
|
||||
|
||||
//进入公众号界面
|
||||
function enterOfficialAccounts(){
|
||||
while(!click("通讯录"));
|
||||
while(!click("公众号"));
|
||||
}
|
||||
23
app/src/main/assets/sample/QQ与微信/朋友圈点赞.js
Normal file
23
app/src/main/assets/sample/QQ与微信/朋友圈点赞.js
Normal file
@@ -0,0 +1,23 @@
|
||||
"auto";
|
||||
|
||||
//下滑
|
||||
function scroll(){
|
||||
className("ListView").scrollForward();
|
||||
}
|
||||
|
||||
//尝试点赞
|
||||
function tryFav(btn){
|
||||
btn.click();
|
||||
sleep(300);
|
||||
if(!click("赞")){
|
||||
btn.click();
|
||||
}
|
||||
}
|
||||
|
||||
while(true){
|
||||
var c = className("ImageView").desc("评论").untilFind();
|
||||
c.each(function(btn){
|
||||
tryFav(btn);
|
||||
});
|
||||
scroll();
|
||||
}
|
||||
34
app/src/main/assets/sample/其他应用/网易云音乐批量点赞.js
Normal file
34
app/src/main/assets/sample/其他应用/网易云音乐批量点赞.js
Normal file
@@ -0,0 +1,34 @@
|
||||
"auto";
|
||||
|
||||
launchApp("网易云音乐");
|
||||
toast("打开一个歌曲的评论页面");
|
||||
|
||||
//循环直至当前为评论页面
|
||||
waitActivity("com.netease.cloudmusic.activity.ResourceCommentActivity");
|
||||
|
||||
|
||||
while(true){
|
||||
var list = className("ListView").findOne();
|
||||
list.find(className("RelativeLayout")).each(function(item){
|
||||
if(item && item.childCount() >= 3){
|
||||
//点赞按钮
|
||||
var fav = item.child(2);
|
||||
if(fav){
|
||||
//获取点赞次数
|
||||
var favCount = parseInt(fav.text());
|
||||
fav.click();
|
||||
sleep(100);
|
||||
fav.refresh();
|
||||
//如果点了以后点赞数减少了,那么说明赞被取消了,再点一次
|
||||
if(parseInt(fav.text()) < favCount){
|
||||
fav.click();
|
||||
}
|
||||
sleep(100);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
//下滑
|
||||
list.scrollForward();
|
||||
}
|
||||
|
||||
6
app/src/main/assets/sample/其他应用/网易云音乐签到.js
Normal file
6
app/src/main/assets/sample/其他应用/网易云音乐签到.js
Normal file
@@ -0,0 +1,6 @@
|
||||
"auto";
|
||||
|
||||
launchApp("网易云音乐");
|
||||
sleep(500);
|
||||
classNameEndsWith("DrawerLayout").findOne().child(0).child(1).child(0).child(0).click();
|
||||
text("签到").className("TextView").click();
|
||||
40
app/src/main/assets/sample/其他应用/贴吧一键签到.js
Normal file
40
app/src/main/assets/sample/其他应用/贴吧一键签到.js
Normal file
@@ -0,0 +1,40 @@
|
||||
"auto";
|
||||
|
||||
launchApp("百度贴吧");
|
||||
sleep(1000);
|
||||
while(!click("进吧"));
|
||||
toast("开始签到");
|
||||
var signed = {};
|
||||
|
||||
while(true){
|
||||
var list = id("fragment_pager").findOne().findOne(id("listview"));
|
||||
list.children().each(function(child){
|
||||
if(child && child.className().endsWith("RelativeLayout")){
|
||||
if(child.childCount() > 1){
|
||||
sign(child);
|
||||
}
|
||||
}
|
||||
});
|
||||
list.scrollForward();
|
||||
}
|
||||
|
||||
function sign(child){
|
||||
var li = child.child(1);
|
||||
if(li && li.childCount() > 0){
|
||||
var name = li.child(0).text();
|
||||
if(signed[name]){
|
||||
return;
|
||||
}
|
||||
child.click();
|
||||
sleep(400);
|
||||
for(var i = 0; i < 3; i ++){
|
||||
if(click("签到")){
|
||||
break;
|
||||
}
|
||||
sleep(200);
|
||||
}
|
||||
sleep(400);
|
||||
while(!back());
|
||||
signed[name] = true;
|
||||
}
|
||||
}
|
||||
5
app/src/main/assets/sample/应用/强制停止应用.js
Normal file
5
app/src/main/assets/sample/应用/强制停止应用.js
Normal file
@@ -0,0 +1,5 @@
|
||||
"auto";
|
||||
|
||||
var appName = rawInput("请输入应用名称");
|
||||
openAppSetting(getPackageName(appName));
|
||||
while(!click("强制停止"));
|
||||
@@ -16,7 +16,9 @@ container.addView(btnOk);
|
||||
activity.setContentView(container);
|
||||
|
||||
btnOk.setOnClickListener(function(view){
|
||||
activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("mqqwpa://im/chat?chat_type=wpa&uin=" + qq.getText()))
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
app.startActivity({
|
||||
action: "android.intent.action.VIEW",
|
||||
data: "mqqwpa://im/chat?chat_type=wpa&uin=" + qq.getText()
|
||||
});
|
||||
activity.finish();
|
||||
});
|
||||
@@ -1,24 +0,0 @@
|
||||
"auto";
|
||||
|
||||
function 打开正在运行的服务(){
|
||||
launch("com.android.settings");
|
||||
var i = 0;
|
||||
while(!click("开发者选项")){
|
||||
i++;
|
||||
if(i == 10){
|
||||
toast("开发者选项未开启");
|
||||
return;
|
||||
}
|
||||
scrollDown();
|
||||
}
|
||||
while(!click("正在运行的服务"));
|
||||
}
|
||||
|
||||
|
||||
importClass(android.os.Build);
|
||||
|
||||
if(Build.VERSION.SDK_INT < 23){
|
||||
toast("本代码只适用于Android6.0以上");
|
||||
}else{
|
||||
打开正在运行的服务();
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
"auto";
|
||||
|
||||
launchApp("QQ");
|
||||
toast("打开一个聊天窗口,并点击下面的图片按钮");
|
||||
for(i = 0; i < 100;i++){
|
||||
className("CheckBox").untilFindOne().click();
|
||||
id("send_btn").click();
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
"auto";
|
||||
|
||||
function 取消关注(){
|
||||
id("af9").longClickable().longClick();
|
||||
click("取消关注");
|
||||
click("不再关注");
|
||||
}
|
||||
|
||||
toast("请在10秒内打开订阅号界面");
|
||||
toast("10秒后如果没有反应请稍微滑动一下页面");
|
||||
sleep(10 * 1000);
|
||||
|
||||
while(true){
|
||||
取消关注();
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
function 下滑(){
|
||||
className("ListView").scrollForward();
|
||||
}
|
||||
|
||||
function 尝试点赞(btn){
|
||||
btn.click();
|
||||
sleep(300);
|
||||
if(!click("赞"))
|
||||
btn.click();
|
||||
}
|
||||
|
||||
while(true){
|
||||
var c = className("ImageView").desc("评论").untilFind();
|
||||
c.each(function(btn){
|
||||
尝试点赞(btn);
|
||||
});
|
||||
下滑();
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
"auto";
|
||||
|
||||
launchApp("网易云音乐");
|
||||
id("kp").click();
|
||||
text("签到").className("TextView").click();
|
||||
Reference in New Issue
Block a user