2021Autojs实战自动聊天挂机编程实战分享

此代码由日赚3万网autojs开发交流群整理提供,欢迎大家一起技术交流,查看更多脚本和源码: 点击一键加群。如有侵权,请联系我删除!

// 单机收入30+,长期稳定。包含 (恋恋_红心、恋恋_他她、巧遇_老、果聊、恋夜等几十种聊天平台)
function 检查重名app(例外app) {
    if (例外app == "恋恋_红心") {
        let 临时app名 = app.getAppName("com.imdw.lianlian")
        if (临时app名 != null) {
            ui.详情.setText(例外app + "(已安装)");
            ui.下载app.attr("w", "0dp");
            return
        }
    } else if (例外app == "恋恋_他她") {
        let 临时app名 = app.getAppName("com.oos.greenface.app")
        if (临时app名 != null) {
            ui.详情.setText(例外app + "(已安装)");
            ui.下载app.attr("w", "0dp");
            return
        }
    } else if (例外app == "巧遇_老") {
        let 临时app名 = app.getAppName("com.lanhu.qiaoyu")
        if (临时app名 != null) {
            ui.详情.setText(例外app + "(已安装)");
            ui.下载app.attr("w", "0dp");
            return
        }
    } else if (例外app == "果聊") {
        let 临时app名 = app.getAppName("company.newchat.coquettish.android")
        if (临时app名 != null) {
            ui.详情.setText(例外app + "(已安装)");
            ui.下载app.attr("w", "0dp");
            return
        }
    } else if (例外app == "恋夜") {
        let 临时app名 = app.getAppName("com.qiaoyu.chat")
        if (临时app名 != null) {
            ui.详情.setText(例外app + "(已安装)");
            ui.下载app.attr("w", "0dp");
            return
        }
    } else if (例外app == "知心_原知己") {
        let 临时app名 = app.getAppName("com.qianqianonechart.online")
        if (临时app名 != null) {
            ui.详情.setText(例外app + "(已安装)");
            ui.下载app.attr("w", "0dp");
            return
        }
    } else if (例外app == "小月亮新") {
        let 临时app名 = app.getAppName("com.smallmoon.app")
        if (临时app名 != null) {
            ui.详情.setText(例外app + "(已安装)");
            ui.下载app.attr("w", "0dp");
            return
        }
    } else if (例外app == "新魅聊") {
        let 临时app名 = app.getAppName("com.meiliao.chat")
        if (临时app名 != null) {
            ui.详情.setText(例外app + "(已安装)");
            ui.下载app.attr("w", "0dp");
            return
        }
    } else if (例外app == "红颜新") {
        let 临时app名 = app.getAppName("com.chaodong.fate.android")
        if (临时app名) {
            ui.详情.setText(例外app + "(已安装)");
            ui.下载app.attr("w", "0dp");
            return
        }
    }
    ui.详情.setText(例外app + "(未安装)");
    ui.下载app.attr("w", "40dp");
    //有重名app才要改
}

function 更改图标(app记录) {
    ui.app图片.attr("src", 软件[app记录].src)
    // ui.app名字.setText(app记录)
    if (getPackageName(app记录)) {//通过app名字找报名
        ui.详情.setText(app记录 + "(已安装)");
        ui.下载app.attr("w", "0dp");
    } else {
        检查重名app(app记录)
    }
}

function 文本ui(标题名称, 文本, 返回ui) {
    ui.layout(
        '<vertical>\
            <appbar bg="#1C1C1C" >\
                <horizontal>\
                    <img id="返回" w="50" h="50" tint="#F5F5F5" src="@drawable/ic_keyboard_arrow_left_black_48dp" />\
                    <text id="标题名称" layout_gravity="center" text="" textColor="#FFFAFA" textSize="20sp" textStyle="bold" marginLeft="80" />\
                </horizontal>\
            </appbar>\
            <text id="文本" text="" textColor="#000000" textSize="15sp" />\
        </vertical>'
    );
    ui.标题名称.setText(标题名称);

    ui.返回.on("click", () => {
        if (返回ui == "登陆ui") {
            登陆ui();
        } else if (返回ui == "首页ui") {
            首页ui();
        }
    })
}


//开发者ID  (后台 左上角头像下方的ID)
var DeveloperID = "13417";
//API 密码 (后台 设置中的 接口安全密码)
var ApiPassword = "786744";
//软件名称
var SoftwareName = "zdyqfd";
//本地存储空间 对象
var LocalStorage = storages.create("QQ_296617805");




/**
 * CDK登陆
 */
function CDKLogin() {
   CDK = storage.get("CDK");
  //退出上一次的Needle
  var logoutResult = LogoutNeedle();
  console.log(logoutResult[1]);
  var loginResult = SendQLRequest(
    "apiv3/card_login",
    "card=" + CDK + "&software=" + SoftwareName
  );
  if (loginResult[0]) {
    var successData = loginResult[1];
    var endTime = successData["endtime"];
    var lessTime = successData["less_time"];
    var needle = successData["needle"];

    PutSt("oldNeedle", needle); //存储本次 的Needle

    console.log(needle + "登陆成功");
	loginResults = true;
	toast(lessTime);
    threads.start(function() {
		SendHeartbeat(needle);
    });
  } else {
    var failResult = loginResult[1];
    console.warn("CDKLogin FailMsg:" + failResult);
    console.warn("所有线程已经停止!");
    threads.shutDownAll(); //停止所有线程
  }
}

/**
 * 退出上一次的Needle
 */
function LogoutNeedle() {
  var oldNeedle = GetSt("oldNeedle", "");
  if (oldNeedle != "") {
    var logoutResult = SendQLRequest(
      "apiv3/card_logout",
      "card=" + CDK + "&needle=" + oldNeedle
    );
    if (logoutResult[0]) {
      return [true, oldNeedle + " 退出成功!"];
    } else {
      return [false, oldNeedle & " 退出失败!"];
    }
  } else {
    return [true, "上次无存储的Needle"];
  }
}

/**
 * 卡密心跳
 * @param {string} cdkNeedle
 */
function SendHeartbeat(cdkNeedle) {
  do {
    var heartbeatResult = SendQLRequest(
      "apiv3/card_ping",
      "card=" + CDK + "&software=" + SoftwareName + "&needle=" + cdkNeedle
    );

    if (heartbeatResult[0]) {
      var successData = heartbeatResult[1];

      var endTime = successData["endtime"];

      var lessTime = successData["less_time"];
      console.warn("心跳正常. 剩余时间:" + lessTime);
    
      sleep(5 * 60 * 1000); //休息5分钟
    } else {
      var failResult = heartbeatResult[1];

      console.warn("Heartbeat FailMsg:" + failResult);
      console.warn("所有线程已经停止!");
      threads.shutDownAll(); //停止所有线程
    }
  } while (true);
}

/**
 * 访问权朗api
 * @param {string}} api
 * @param {string} apiParams
 */
function SendQLRequest(api, apiParams) {
  var qlHostArray = [
    "https://napi.2cccc.cc/",
    "https://api2.2cccc.cc/",
    "https://api3.2cccc.cc/"
  ];
  var connectTimes = 0;
  var taoBaoTimeStamp = "";

  do {
    connectTimes = connectTimes + 1;

    taoBaoTimeStamp = http
      .get("http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp")
      .body.string();

    if (connectTimes > 10) {
      console.log("淘宝时间戳超时");
      return [false, "连接淘宝时间戳服务器失败"];
    }
  } while (taoBaoTimeStamp.substring(2, 5) != "api");

  taoBaoTimeStamp = JSON.parse(taoBaoTimeStamp);
  var timeStamp = taoBaoTimeStamp["data"]["t"].substring(0, 10);
  var sign = HexMd5(ApiPassword + "" + timeStamp);
  var common_params =
    "center_id=" + DeveloperID + "&timestamp=" + timeStamp + "&sign=" + sign;
  connectTimes = 0;
  var qlResult = "";

  do {
    connectTimes = connectTimes + 1;

    qlResult = http
      .get(
        qlHostArray[Math.floor(Math.random() * (3 - 0) + 0)] +
          api +
          "?" +
          common_params +
          "&" +
          apiParams
      )
      .body.string();

    if (connectTimes > 10) {
      return [false, "权朗回执超时"];
    }
  } while (qlResult.substring(2, 6) != "code");

  qlResult = JSON.parse(qlResult);

  if (qlResult["code"] == "1") {
    if (
      HexMd5(qlResult["timestamp"] + ApiPassword).toUpperCase() ==
        qlResult["sign"].toUpperCase() &&
      Math.abs(timeStamp - qlResult["timestamp"]) < 700
    ) {
      return [true, qlResult["data"]];
    } else {
      return [false, "请检查API密码是否填写正确"];
    }
  } else {
    return [false, qlResult["msg"]];
  }
}

//--------Helper---------

/**
 * 判断是否 不是 空
 * @param {any}} content 内容
 */
function IsNotNullOrEmpty(content) {
  return (
    content != null &&
    content != undefined &&
    content != "" &&
    content != " " &&
    content != "  "
  );
}

/**
 * 存储空间 存入 键值数据
 * @param {string} key 键名
 * @param {any} value 值
 */
function PutSt(key, value) {
  //   cw(key + " : " + value);
  if (IsNotNullOrEmpty(value)) {
    LocalStorage.put(key, value);
  } else {
    //cw("key:" + key + "----> value为空,跳过保存");
  }
}

/**
 * 获取 存储控件中的 数据
 * @param {string} key 键名
 * @param {any} defaultValue 默认值
 */
function GetSt(key, defaultValue) {
  var data = LocalStorage.get(key);
  // cw(key + " : " + data);
  if (IsNotNullOrEmpty(data)) {
    return data;
  } else {
    if (defaultValue == undefined) {
      defaultValue = "";
    }
    //cw(key + " : 返回默认值->>" + defaultValue);
    return defaultValue;
  }
}
//-------------------------------------

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 随着互联网的不断发展和成熟,越来越多的游戏和网站采用自动化操作和挂机的方式来提高游戏体验和网站效率。而python编写的自动挂机脚本则成为了一个非常热门的话题。 Python是一种高级编程语言,具有简单易于学习、灵活、可扩展性等特点,被广泛应用于自动化操作,包括自动测试,爬虫等。Python的高效能使其成为自动挂机脚本的理想语言。 在编写自动挂机脚本时,需要明确挂机的目的和实现方式。一般说来,挂机脚本需要输入一些参数,如登录信息、要执行的操作等,然后模拟人的操作,完成一系列自动化任务。这一过程需要使用Python的库和模块,实现自动的登陆、自动化操作、定时和循环执行等功能。 具体操作步骤为:首先需要安装模拟浏览器的模块,配置Python的环境,使用官方API进行爬取、模拟登陆等。根据不同的任务,编写不同的脚本。例如,自动化刷网站签到、刷论坛发帖、刷粉丝等,都可以用Python实现。 总之,Python编写自动挂机脚本可以使得我们的生活便捷化和效率提高,同时提高自己的编程水平,但是请注意遵守游戏和网站的相关规定和法律法规,切勿使用脚本进行非法操作。 ### 回答2: Python作为一种高级编程语言,由于其简单易用和强大的功能而受到广泛的欢迎。除了可以用它来进行数据分析、机器学习和Web开发之外,Python还可以用来编写自动挂机脚本,以便在没有人员干预的情况下执行一系列任务。 编写自动挂机脚本的步骤如下: 1. 确定要执行的任务 在编写自动挂机脚本之前,首先要确定需要挂机的任务。这可能包括收集信息、文件下载、爬虫等等任务。可以根据需求编写Python代码来实现这些任务,以便可以自动化执行。 2. 编写脚本 一旦确定了要执行的任务,就可以开始编写Python脚本了。开始时,需要导入所需的库比如Selenium、Pandas和numpy等等,来扩展Python的功能。然后,需要编写脚本来完成任务,这可能包括通过模拟登陆网站、控制鼠标和键盘、打开/关闭浏览器窗口等等的操作。 在编写脚本时,需要注意到一些陷进。比如要避免编写过于简单和容易被检测到的代码,以及要注意使用合适的休眠时间和等待时间。因为过快的执行脚本可能会被检测到并禁止使用。 3. 测试和调试代码 一旦编写脚本完成,就可以进行测试和调试了。测试通过以后,可以在线上传、后台运行等等,确保脚本可以自动化执行任务。 总之,Python是一种强大的编程语言,适用于各种编程任务。借助Python,可以轻松编写自动挂机脚本,以便实现各种任务自动化执行。 ### 回答3: 最近,在一些游戏、论坛和社交媒体应用中,使用自动挂机脚本的趋势越来越流行。这些脚本可以帮助玩家在游戏中轻松获得经验和奖励,或者在论坛和社交媒体中增加自己的活跃度。Python是一种非常适合编写自动挂机脚本编程语言,因为它具有许多用于简化Web自动化的库。 Python中最受欢迎的用于自动化的库之一是Selenium。它可以模拟用户在浏览器中的行为,包括单击按钮、填写表单和导航到不同的页面。使用Selenium,可以轻松地编写一个能够自动登录、自动完成任务、自动退出的挂机程序。为了更好的模拟人类行为,可以添加一些等待时间,模拟用户使用键盘和鼠标等操作,从而减小被识别为机器人的概率。 除了Selenium,还有一些其他的库也可以用于自动化,例如Requests、BeautifulSoup和Scrapy等等。无论使用何种库,编写自动挂机脚本需要对Web开发和网络请求有基本的了解。自动化程序需要访问网站并从HTML代码中提取所需的信息,这通常需要解析HTML并使用正则表达式或xpath进行处理。 然而,需要注意的是,自动脚本并非万能的,有许多游戏和站点将会检测和封禁使用挂机脚本的玩家或用户。此外,请务必尊重游戏和站点的规则,不要使用脚本进行作弊或滥用。 在编写自动挂机脚本的过程中,建议重点关注以下步骤: 1. 确定目标:想要自动化什么,例如游戏中刷怪、刷经验、获取金币等等,或者在社交媒体或论坛中进行什么操作。 2. 确定技术:选择需要使用的库,根据目标进行判断。Selenium是最常用的库之一,但是在某些情况下,其他的库可能比Selenium更加适用。 3. 分析目标网站:访问目标站点,并通过观察页面源代码了解它的结构和使用方式。 4. 编写代码:根据目标和技术确定代码的具体内容。可以以模块化的方式编写代码,每个模块可实现一个特定的功能。 5. 测试脚本:测试脚本的正确性和稳定性,并修复可能出现的错误。 编写自动挂机脚本需要有一定的编程技能和网络技术。如果您不确定如何编写脚本,或对此有疑问,请咨询有经验的人士或寻求帮助。最重要的是,请不要滥用自动脚本,尊重网站的规则和条款。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值