源代码下载链接:https://pan.baidu.com/s/16Ar8RLG9WPN8SMlfGsLwjQ 提取码:hjeo 

奋斗了120多个日夜终于算有点小成果,到今天所有的实战内容就都完事了。这个是我最后一次和大家分享代码。薅羊毛本身不违法就这个事情本身也不算在道德阴暗面,不过大家切莫指望这个有所…大家娱乐学习都成。千万别拿这个代码做一些不适合的事情。

个人认为最值得大家拥有的就是薅羊毛专业版和抖音短视频养号。自媒体大道当行的时代这2个app还是能做点小事情的,接下来我会潜心研究基于Python的自媒体小助手希望大家也能关注和支持我。

薅羊毛代码99%都是我原创,100多天的努力老铁给点支持,小弟谢过了。 项目结构大家可以先看一下。源代码包含:薅羊毛个人版和10多个高收益App集合。有图有真相,下面的2个图已经说明一切了。

列举一下包含的代码:

UI版本

  1. 薅羊毛专业版
  2. 薅羊毛个人版
  3. 薅羊毛UI版
  4. 抖音短视频养号
  5. 抖音三合一小助手
  6. 抖音小助手
  7. 彩蛋视频小助手
  8. 火火视频小助手
  9. 火山小助手
  10. 今日头条辅助
  11. 快逗小助手
  12. 快手辅助
  13. 闪电盒子极速版辅助
  14. 小吃货助手
  15. 小说阅读辅助
  16. 音浪短视频辅助
  17. 中青看点小助手
  18. 长豆
  19. 刷宝短视频
  20. 魔视(没做完不搞了)
  • 小视频类
  1. 抖音极速版
  2. 快手极速版
  3. 火山极速版
  4. 火火视频极速版
  5. 彩蛋视频
  6. 栗子视频
  7. 有颜短视频
  8. 音浪短视频
  9. 闪电盒子极速版
  10. 鲤刷刷
  11. 魔视
  12. 红包视频
  13. 天天视频
  14. 追看视频
  15. 爱走路(爱视频模块)
  16. 快音
  17. 淘看点
  18. 网赚红包短视频
  19. 刷宝短视频
  20. 刷爆短视频
  21. 快刷
  22. 淘金号
  23. 变身记短视频
  24. 多多视频
  25. 高手短视频
  26. 辣手小视频
  27. 趣宠短视频
  28. 趣多多
  29. 趣看看
  30. 趣头条
  31. 闪鸭短视频
  32. 天天短视频
  33. 微视
  34. 小吃货短视频
  35. 音浪短视频
  36. 有颜短视频
  37. 中青看点
  • 走路类
  1. 爱走路
  2. 多多步
  3. 猫扑运动
  4. 步多多
  5. 惠运动(封号)
  6. 欢乐走
  7. 走路赚钱
  • 小说类
  1. 七猫免费小说
  2. 番茄小说
  3. 疯读小说
  4. 免费淘小说
  5. 米读小说
  6. 喜马拉雅
  7. 喜马拉雅极速版
  • 新闻类
  1. 今日头条极速版
  2. 百度极速版
  3. 看点快报
  4. 趣头条
  5. 惠头条(看视频)
  • 综合类
  1. 京东(领京东豆)
  2. 闪电盒子极速版
  3. 淘最热点
  4. 玩赚星球

50个小视频源码;

7个走路签到领金币源码;

8个故事类源码;

9个综合类源码。

抖音极速版专辑6个源码(自动刷、看同城、领宝箱、清理缓存、自动答复和自动提现)

快手极速版专辑4个源码(自动刷、清理缓存、自动答复和自动签到)

火山极速版辑4个源码(自动刷、清理缓存、自动答复和自动签到)

今日头条专辑4个源码(读新闻、清理缓存、读小说和自动搜索)

火火小视频专辑(自动刷、清理缓存、自动评论和自动提现)

彩蛋视频专辑3个源码(自动刷、自动评论和自动提现)没有清理缓存的菜单所以没做

快逗短视频(自动刷、自动评论和自动提现)没有清理缓存的菜单所以没做

有颜短视频(自动刷、自动评论和自动提现)没有清理缓存的菜单所以没做

中青看点(自动刷、清理缓存、自动评论和自动提现)

闪电盒子(自动刷、清理缓存、自动评论和自动提现)

快逗短视频(自动刷、清理缓存、自动评论和自动提现)

小吃货短视频(自动刷、清理缓存、自动评论和自动提现)

音浪短视频(自动刷、清理缓存、自动评论和自动提现)

抖音养号

抖音三合一小助手

专业版项目虽然是单文件我还是区分了一地下公共方法,感觉还是用处也很大的特别是还在这个平台上奋斗的老特们:


//#region 公共方法
/**
 * 屏幕向下滑动并延迟timesInterval+-秒
 */
function slideScreenDown(startX, startY, endX, endY, pressTime, timesInterval) {
    swipe(startX, startY, endX, endY, pressTime);
    let randomMin = timesInterval * 1000;
    let randomMax = (parseInt(timesInterval) + 2) * 1000;
    let delayTime = random(randomMin, randomMax);
    sleep(delayTime);
}
/**
 * 按照指定概率随机上滑
 * @param {*} startX 
 * @param {*} startY 
 * @param {*} endX 
 * @param {*} endY 
 * @param {*} pressTime 
 * @param {*} probability 
 */
function randomUpSildeScreen(startX, startY, endX, endY, pressTime, probability) {
    let randomIndex = random(1, parseInt(probability));
    if (randomIndex == 1) {
        swipe(startX, startY, endX, endY, pressTime);
        delayTime = random(12000, 15000);
        sleep(delayTime);
    }
}
/**
 * 连续下滑对上一个无兴趣
 * 其实得和上滑做个排他,既然无兴趣不要在上滑
 */
function randomDownSildeScreen(startX, startY, endX, endY, pressTime, timesInterval, probability) {
    let randomIndex = random(1, parseInt(probability));
    if (randomIndex == 1) {
        swipe(startX, startY, endX, endY, pressTime);
        sleep(2000);
        swipe(startX, startY, endX, endY, pressTime);
        sleep(timesInterval);
    }
}
/**
 * 屏幕向下滑动并延迟8至12秒
 */
function slideScreenDown(startX, startY, endX, endY, pressTime) {
    swipe(startX, startY, endX, endY, pressTime);
    let delayTime = random(8000, 12000);
    sleep(delayTime);
}
/**
 * 随机点赞
 * @param {点赞ID}} view_id 
 */
function randomHeart(view_id, probability) {
    index = random(1, parseInt(probability));
    if (index == 1) {
        var target = id(view_id).findOnce();
        if (target == null) {
            return;
        } else {
            target.click();
            sleep(1000);
        }
    }
}
/**
 * 随机关注
 * @param {控件ID} follow_view_id 
 * @param {概率} probability 
 */
function randomFollow(follow_view_id, probability) {
    index = random(1, parseInt(probability));
    if (index == 1) {
        var target = id(follow_view_id).findOnce();
        if (target == null) {
            return;
        } else {
            target.click();
            sleep(1000);
        }
    }
}
/**
 * 输出Tosat和Info日志
 * @param {日志消息} messagge 
 */
function toastInfo(message) {
    writeLog(message,"info");
}
/**
 * 输出Tosat和Error日志
 * @param {日志消息} messagge 
 */
function toastError(message) {
    writeLog(message,"error");
}
function toastLog(message) {
    writeLog(message,"log");
}
function toastWarn(message) {
    writeLog(message,"warn");
}
/**
 * 写日志,toast、consle和文件日志
 * @param {日志内容} loginfo 
 * @param {日志等级} level 
 */
function writeLog(loginfo, level) {
    try {
        var logName=getDate()+"_"+"Log.txt";
        var logPath = rootPath + "/日志/";
        let message = getTime() + ":" + loginfo;
        if (!files.isDir(rootPath)) {
            if (files.create(rootPath)) {
                files.create(logPath)
            }
        } else {
            files.create(logPath)
        }
        let logFilePath = logPath + "/"+logName;
        if (!files.exists(logFilePath)) {
            files.create(logFilePath);
            files.write(logFilePath, message + "\r");//写日志
        }
        else {
            files.append(logFilePath, message + "\r");//追加日志
        }
        toast(message);
        if (level == "log") {
            console.log(message);
        } else if (level == "info") {
            console.info(message);
        } else if (level == "warn") {
            console.warn(message);
        } else if (level == "error") {
            console.error(message);
        }
    } catch (error) {
        console.error("系统再写日志的时候出现错误若不影响使用请略过"+error);
    }
}
/**
 * 记录App签到时间
 * @param {App名称} appName 
 */
function getSignTime(appName) {
    let key = appName + storageSign;
    let value = woolStorage.get(key);
    return value;
}
function Color(color) {
    return android.graphics.Color.parseColor(color);
}
function GradientDrawable(orientation, color) {
    var colors = [];
    color.forEach(color => colors.push(Color(color)));
    return new android.graphics.drawable.GradientDrawable(android.graphics.drawable.GradientDrawable.Orientation[orientation], colors);
}
/**
 * 青少年窗口
 */
function adolescentWindows() {
    if (text("我知道了").exists()) {
        text("我知道了").findOnce().click();
    }
    if (text("知道了").exists()) {
        text("知道了").findOnce().click();
    }
}
/**
 * 记录App签到时间
 * @param {App名称} appName 
 */
function recordSignTime(appName) {
    let key = appName + storageSign;
    let value = getDate();
    woolStorage.put(key, value);
}
/**
 * 记录App一次运行的时间
 * @param {appName} appName 
 * @param {本次运行时间} recordTimes 
 */
function appRunTimeRecord(appName, recordTimes) {
    let key = appName + storageSign + getDate();
    var havedRunTimes = woolStorage.get("" + key + "");
    let value = "";
    if (havedRunTimes == null) {
        woolStorage.put(key, parseInt(recordTimes));
    } else {
        value = parseInt(havedRunTimes) + parseInt(recordTimes);
        woolStorage.put(key, value);
    }
}
/**
 * 秒转换成小时
 * @param {*} appCount 
 * @param {*} foreachCount 
 * @param {*} slideTimes 
 * @param {*} timesInterval 
 * @param {*} isExistsLongTimes 
 */
function computerTime(appCount, foreachCount, slideTimes, timesInterval, isExistsLongTimes) {
    let maxSecond = appCount * foreachCount * slideTimes * timesInterval;
    let maxHour = maxSecond / 3600;
    return Math.round(maxHour);
}
/**
 * 获取当前时间格式yyyyMMdd
 */
function getDate() {
    var date = new Date();
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    if (month < 10) {
        month = "0" + month;
    };
    var day = date.getDate();
    if (day < 10) {
        day = "0" + day;
    };
    return year + "-" + month + "-" + day;
}
/**
 * 
 */
function getTime() {
    var date = new Date();
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    if (month < 10) {
        month = "0" + month;
    };
    var day = date.getDate();
    if (day < 10) {
        day = "0" + day;
    };
    var hour = date.getHours();
    if (hour < 10) {
        hour = "0" + hour;
    };
    var minute = date.getMinutes();
    if (minute < 10) {
        minute = "0" + minute;
    };
    var seconds= date.getSeconds();     //获取当前秒数(0-59)
    var millisecond =date.getMilliseconds();    //获取当前毫秒数(0-999)
    return year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + seconds;
};
/**
 * JS构建Map
 */
function Map() {
    var obj = {};
    this.put = function (key, value) {
        obj[key] = value;//把键值绑定到obj对象上
    }
    //size方法,获取Map容器的个数
    this.size = function () {
        var count = 0;
        for (var attr in obj) {
            count++;
        }
        return count;
    }
    //get方法,根据key获取value的值
    this.get = function (key) {
        if (obj[key] || obj[key] === 0 || obj[key] === false) {
            return obj[key]
        } else {
            return null;
        }
    }
    //remove方法,删除方法
    this.remove = function (key) {
        if (obj[key] || obj[key] === 0 || obj[key] === false) {
            delete obj[key]
        }
    }
    //each方法,遍历方法
    this.eachMap = function (callBack) {
        for (var attr in obj) {
            callBack(attr, obj[attr])
        }
    }

}
/**
 * map排序(核心是冒泡有点笨)
 */
function mapSort(mapTask) {
    var arr = [];
    var result = [];
    mapTask.eachMap(function (key, value) {
        arr.push(parseInt(value));
        result.push(key);
    });
    var len = arr.length;
    for (var i = 0; i < len - 1; i++) {
        for (var j = 0; j < len - 1 - i; j++) {
            // 相邻元素两两对比,元素交换,大的元素交换到后面
            if (arr[j] > arr[j + 1]) {
                var temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
                //value交换key也得换
                var keyTemp = result[j + 1];
                result[j + 1] = result[j];
                result[j] = keyTemp;
            }
        }
    }
    return result;//返回数组  
}
/**
 *点击一下屏幕
 */
function clickScreen() {
    var x = device.width - device.width * 0.2;
    var y = device.height - device.height * 0.2;
    toastLog("点击屏幕" + x + ":" + y);
    let clickResult = click(x, y);
    toastLog(clickResult);
}
//#endregion

个人认为最值得大家拥有的就是薅羊毛专业版和抖音短视频养号。自媒体达到当行的时代这2个app还是能做点小事情的,接下来我会潜心研究基于Python的自媒体小助手希望大家也能关注和支持我。

100 多个源码一次让您成为 AutoJs 高手,高手成大神。同时让您真真正正的薅羊毛挣外快。

学习知识费力气,

收集整理更不易。

知识付费甚欢喜,

为咱码农谋福利。

源代码下载链接:https://pan.baidu.com/s/16Ar8RLG9WPN8SMlfGsLwjQ 提取码:hjeo 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐