Files
Applications/smkxttgzxrqbzdsmwy.js
T
2023-11-04 04:01:05 +00:00

179 lines
3.8 KiB
JavaScript

// 等待获取无障碍权限
auto.waitFor()
TrafficStats = android.net.TrafficStats;
importClass(android.graphics.Paint);
Canvas = android.graphics.Canvas;
importClass(android.graphics.Bitmap);
function textpaint(str) {
str = str.split("\n");
var bitmap = Bitmap.createBitmap(200, 110, Bitmap.Config.ARGB_8888);
var canvas = new Canvas(bitmap);
//background-color
//(Alpha,Red,Green,Blue)
canvas.drawARGB(255, 255, 0, 0);
var paint = new Paint();
//圆盘背景???
paint.setARGB(255, 0, 255, 0); //白色画笔
paint.setStyle(Paint.Style.FILL); //空心样式
paint.setFilterBitmap(true); //抗锯齿
paint.setFakeBoldText(true); //加粗
paint.setHinting(16); //字体微调
paint.setTextSize(22);
for (i = 0; i < str.length; i++) {
// paint.setARGB(255, random(0, 255), random(0, 255), random(0, 255)); //眼睛快瞎了
canvas.drawText(str[i], 0, (i + 1) * 25, paint);
}
// canvas.drawText(str, 0, (i + 1) * 25, paint);
canvas.save(Canvas.ALL_SAVE_FLAG);
canvas.restore();
return bitmap;
}
var window = floaty.window(
<frame>
<vertical>
/*circle="true",两端裁剪为circle,其他圆角风格可以参考https://easydoc.net/doc/84873548/LvEnNZ0d/DuI3kIia */
<img id="img" w="auto" h="auto"/>
</vertical>
</frame>
);
var x = 0,
y = 0;
//记录按键被按下时的悬浮窗位置
var windowX, windowY;
//记录按键被按下的时间以便判断长按等动作 疑似有点幽默了
var downTime;
window.img.setOnTouchListener(function (view, event) {
switch (event.getAction()) {
//手指落下
case event.ACTION_DOWN:
x = event.getRawX();
y = event.getRawY();
windowX = window.getX();
windowY = window.getY();
downTime = new Date().getTime();
return true;
//移动
case event.ACTION_MOVE:
//移动手指时调整悬浮窗位置
window.setPosition(windowX + (event.getRawX() - x), windowY + (event.getRawY() - y));
return true;
//抬起
case event.ACTION_UP:
//手指弹起时如果偏移很小则判断为点击
if (Math.abs(event.getRawY() - y) < 5 && Math.abs(event.getRawX() - x) < 5) {
threads.start(function () {
onClick();
});
}
return true;
}
return true;
});
function onClick(){
// var str = prompt('kxnmsl')
toast('有病')
exit()
}
//nmsl
str = "";
zss = ozs();
zxs = ozx();
swsl = 0;
swxl = 0;
zwss = 0;
zwxs = 0;
threads.start(function () {
swsl = ozs();
swxl = ozx();
while (true) {
sleep(1000);
xwsl = ozs();
xwxl = ozx();
zwss = xwsl - swsl;
zwxs = xwxl - swxl;
swsl = xwsl;
swxl = xwxl;
}
});
//log(Object.keys(TrafficStats));
threads.start(function () {
while (true) {
str = "流量↑:" + sz(lzs()) + "\n流量↓:" + sz(lzx()) + "\n网速↑:" + sz(zwss) + "/s" + "\n网速↓:" + sz(zwxs) + "/s";
tu = textpaint(str);
ui.run(function () {
window.img.setImageBitmap(tu);
});
sleep(1000);
}
});
function ozs() {
return TrafficStats.getTotalTxBytes();
}
function ozx() {
return TrafficStats.getTotalRxBytes();
}
function lzs() {
return ozs() - zss;
}
function lzx() {
return ozx() - zxs;
}
//你家天河二号?
function sz(num) {
if (num < 1024) {
return num.toFixed(2) + "by";
} else {
num /= 1024;
}
if (num < 1024) {
return num.toFixed(2) + "Kb";
} else {
num /= 1024;
}
if (num < 1024) {
return num.toFixed(2) + "Mb";
} else {
num /= 1024;
}
if (num < 1024) {
return num.toFixed(2) + "Gb";
} else {
num /= 1024;
}
if (num < 1024) {
return num.toFixed(2) + "Tb";
} else {
num /= 1024;
}
if (num < 1024) {
return num.toFixed(2) + "Pb";
} else {
num /= 1024;
}
return num.toFixed(2) + "Eb";
}
log(TrafficStats.getTotalRxBytes());
while (true) {
sleep(1000);
}