chrome_extensions/lib/content.js

503 lines
14 KiB
JavaScript
Raw Normal View History

2024-08-24 11:17:58 +08:00
/**
* 阻塞代码运行
* @param {*} n 秒数
* @returns
*/
2024-08-19 17:05:34 +08:00
function delay(n) {
return new Promise(function (resolve) {
setTimeout(resolve, n * 1000);
});
}
2024-08-24 11:17:58 +08:00
/**
* 随机数生成
* @param {*} min 最小值
* @param {*} max 最大值
* @returns
*/
2024-08-19 18:02:42 +08:00
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
2024-08-19 18:02:42 +08:00
2024-08-24 11:17:58 +08:00
/**
* 随机滑动函数
* @param {*} y 滑动像素 不传递默认随机
*/
function RandomIntscrollBy(y = 0) {
let rand = getRandomInt(100, 600);
scrollBy(0, y == 0 ? rand : y);
console.log("随机滑动" + rand);
2024-08-19 18:02:42 +08:00
}
2024-08-19 17:05:34 +08:00
//naver使用函数
const naver = async (r, id) => {
// await delay(1);
send_close(id);
2024-08-19 17:05:34 +08:00
};
2024-08-24 11:17:58 +08:00
/**
*
* @param {*} str 字符串
* @param {*} arr 需要匹配的字符串数组
* @returns boole
*/
function searchStringContainsArrayKeywords(str, arr) {
for (let i = 0; i < arr.length; i++) {
if (str.includes(arr[i])) {
return true;
}
}
return false;
}
//youto短视频
async function youtube_shorts(r, id) {
i = 0;
// 随机执行次数
randTime = Math.floor(Math.random() * 16) + 15;
console.log("执行", randTime, "次");
// 根据次数随机每次观看的时长
const list = [];
for (let i = 0; i < randTime; i++) {
// 生成 1 到 5 之间的随机整数
const randomNum = Math.floor(Math.random() * 44) + 5; //44
// 将随机数添加到列表中
list.push(randomNum * 1000);
}
console.log("每个视频的观看时长:", list);
// 首次进入判断是否播放
var playing =
document.querySelector("div.playing-mode") == null ? false : true;
var paused = document.querySelector("div.paused-mode") == null ? false : true;
console.log("playing", playing, "paused", paused);
if (playing) {
console.log("首次进入在播放!");
} else {
await delay(5);
var playButton = document.getElementsByClassName(
"ytp-large-play-button ytp-button"
)[0];
playButton.click();
console.log("点击了播放!");
}
// 执行
2024-08-21 11:30:52 +08:00
// var dingshiqi_duanshipin = setInterval(() => {
// run((randomTime = list[i]));
// }, list[i] + 2000);
while (true) {
await run((randomTime = list[i]));
// await delay((list[i] + 2000)/1000);
}
// 定义一个执行函数
async function run(randomTime) {
// 执行randTime次后停止
console.log(
"总计:",
randTime,
"次,当前第:",
i + 1,
"次,观看时长:",
randomTime / 1000,
"s"
);
if (i == randTime) {
console.log("已经执行", randTime, "次,关闭当前标签页!");
2024-08-21 11:30:52 +08:00
// clearInterval(dingshiqi_duanshipin);
send_close(id);
}
// 点赞
var button = document.querySelector(
".yt-spec-button-shape-next--icon-button"
);
console.log("是否已点赞:", button.getAttribute("aria-pressed"));
button.click();
bao = $("#shorts-inner-container ytd-reel-video-renderer");
for (j = 0; j < bao.length; j++) {
// 如果是当前正在播放的视频 点赞+订阅
if (typeof $(bao[j]).attr("is-active") == "string") {
dianzan = $(bao[j]).find("button")[23];
dingyue = $(bao[j]).find("button")[20];
// 点赞
if ($(dianzan).is(".yt-spec-button-shape-next--tonal"))
$(dianzan).click();
// 订阅
if ($(dingyue).is(".yt-spec-button-shape-next--filled"))
$(dingyue).click();
j = bao.length;
}
}
// 下一集 randomTime - 2s
await delay(randomTime);
$("div #navigation-button-down button").click();
console.log("点击了下一个视频");
i++;
}
// 定时器
let timer = setTimeout(function () {
location.reload();
console.log("页面长时间无响应");
}, 60000); // 设置超时时间为 5 秒钟
// 在每次页面有响应的时候,清除计时器即可
window.addEventListener("click", function () {
console.log("页面有响应");
// 清除计时器
clearTimeout(timer);
// 判断是否再播放
var playing =
document.querySelector("div.playing-mode") == null ? false : true;
var paused =
document.querySelector("div.paused-mode") == null ? false : true;
console.log("播放:", playing, "暂停:", paused);
if (playing) {
console.log("已播放!");
} else {
var playButton = document.getElementsByClassName(
"ytp-large-play-button ytp-button"
)[0];
playButton.click();
console.log("点击了播放!");
}
});
send_close(id);
}
2024-08-22 16:25:33 +08:00
async function shopping(r, id) {
let number = getRandomInt(2, 10);
for (let index = 0; index < number; index++) {
RandomIntscrollBy();
await delay(getRandomInt(3, 7));
}
send_close(id);
}
2024-08-22 14:06:42 +08:00
async function calendar(r, id) {
await delay(3);
let number = getRandomInt(2, 5);
2024-08-22 16:25:33 +08:00
console.log($);
2024-08-22 14:06:42 +08:00
for (let index = 0; index < number; index++) {
//上一页
// $$('.T5GQA >span')[1].querySelectorAll('button')[0].click()
$(".T5GQA > span").eq(1).find("button").eq(0).click();
await delay(getRandomInt(2, 5));
//今天
$(".L09ZLe >div >div >span >div >button").click();
await delay(getRandomInt(2, 5));
}
//下一页
$(".T5GQA > span").eq(2).find("button").eq(0).click();
await delay(getRandomInt(2, 5));
send_close(id);
}
2024-08-21 11:30:52 +08:00
async function news_google(r, id) {
2024-08-21 17:35:28 +08:00
console.log("加在完成开始等待8秒");
2024-08-21 11:30:52 +08:00
//等待五秒怕加载速度过慢
await delay(10);
2024-08-21 17:35:28 +08:00
console.log("等待8秒完成");
2024-08-21 11:30:52 +08:00
//焦点新闻 数量
let new_length = $(".KDoq1").length;
//点击会创建新标签暂时没办法控制
// let rand_new_index=getRandomInt(0,new_length)
//点击焦点新闻
$("#i10").click();
$(".KDoq1")[0].click();
2024-08-21 17:35:28 +08:00
// console.log( $("#i10"))
// await delay(10);
// let the_number_of_swipes = getRandomInt(3, 6);
// for (let index = 0; index < the_number_of_swipes; index++) {
// RandomIntscrollBy();
// await delay(getRandomInt(10, 30));
// }
let x = $(".WwrzSb").length,
y = 1,
shu = parseInt(Math.random() * (x - y + 1) + y);
$(".WwrzSb").eq(shu)[0].click();
scrollBy(0, 153);
send_close(id);
}
//谷歌商店浏览
async function play_google(r, id) {
//等待五秒怕加载速度过慢
await delay(5);
//滑动次数
let a = getRandomInt(3, 5);
for (let index = 0; index < a; index++) {
RandomIntscrollBy();
await delay(getRandomInt(0, 5));
}
//点击推荐
if (getRandomInt(0, 1) == 0) {
$(".Pdcv8e").click();
await delay(getRandomInt(5, 10));
//返回主页
$("#kO001e > header > nav > a").click();
}
//热门游戏随机列表 直接触发点击事件就行
let popular_games = $(
"#yDmH0d > c-wiz.SSPGKf.glB9Ve > div > div > div.N4FjMb.Z97G4e > c-wiz > div > c-wiz > c-wiz:nth-child(4) > c-wiz > section > div > div > div > div > div.aoJE7e.b0ZfVe"
).children;
await delay(getRandomInt(5, 10));
//
send_close(id);
}
async function play_finance(r, id) {
await delay(5);
2024-08-22 16:25:33 +08:00
let recommended_attention = $(".sbnBtf >li >a");
2024-08-22 16:25:33 +08:00
for (
let index = 0;
index < getRandomInt(0, recommended_attention.length);
2024-08-22 16:25:33 +08:00
index++
) {
recommended_attention[index].click();
2024-08-22 16:25:33 +08:00
await delay(getRandomInt(5, 10));
for (let indexx = 0; indexx < getRandomInt(0, 5); indexx++) {
RandomIntscrollBy();
await delay(getRandomInt(5, 10));
}
//返回主页
2024-08-22 16:25:33 +08:00
$(".gb_Bc >a").click();
}
// send_close(id);
2024-08-21 17:35:28 +08:00
}
async function mail(r, id) {
let emailReply = [
"우리 실장님이 승진을 축하하기 위해서 다음주 금요일에 (1월 21일에) 오후 5시에 XX 호텔에서 회식이 있습니다 첨부 파일에서 구체적이 정보을 참고하세요. ",
"회장님의 회의 잘료을 준비위해서 16년에 상품 기획부의 목표 달성 상황을 필요합니다. 다음주 화요일전에 첨부 파일에 형식으로 준비 됬으면 좋겠습니다.많이 감사 드립니다",
"좋은 하루 지내세요.",
"연휴에 잘 지내세요.",
"감사합니다",
"이번주의 판매 보고을 보내드립니다. 세해 세일때문에 판매 목표를 잘 달성했슴니다. 첨부 파일을 참고하세요. ",
"좋습니다 좋아요",
"안녕하세요",
"좋습니다",
"좋아요",
"화이팅",
"모르겠습니다",
"모르지만 해도 좋아요",
"저는 동현 입니다",
"해도 좋습니까?",
"괜찮아요?",
"몇살이에요?",
"감사합니다",
"미안합니다",
"저 갑니다",
2024-08-22 16:25:33 +08:00
"사랑해요",
2024-08-21 17:35:28 +08:00
];
await delay(8);
2024-08-21 17:35:28 +08:00
let mails = document.querySelectorAll(".zA");
2024-08-24 11:17:58 +08:00
let mails_is_google = $(".zA");
2024-08-21 17:35:28 +08:00
for (let index = 0; index < mails.length; index++) {
//挨个查看
mails[index].click();
RandomIntscrollBy();
await delay(getRandomInt(1, 5));
// console.log(mails_is_google[index].children[4].children[1].children[0].children[0].getAttribute("email"))
2024-08-24 11:17:58 +08:00
//获取邮件发送人
let mail_for = mails_is_google[index].children[4].children[1].children[0].children[0].getAttribute("email")
2024-08-24 11:17:58 +08:00
//是否回复
let whether_or_not_to_reply_to= searchStringContainsArrayKeywords(mail_for,['google','youtube','gbcloud'])
//逻辑取反
whether_or_not_to_reply_to=!whether_or_not_to_reply_to
2024-08-24 11:17:58 +08:00
console.log(`当前邮件发送人:${mail_for} 是否回复${whether_or_not_to_reply_to}`)
2024-08-21 17:35:28 +08:00
//邮箱回复
2024-08-24 11:17:58 +08:00
if (getRandomInt(0, 1) == 0&&whether_or_not_to_reply_to) {
2024-08-22 14:06:42 +08:00
$(".amn >.ams.bkH").click();
await delay(getRandomInt(1, 5));
2024-08-22 14:06:42 +08:00
let text = emailReply[getRandomInt(0, emailReply.length - 1)];
console.log("注入内容为" + text);
// $(".Ar.Au >div >div").html = text;
2024-08-22 16:25:33 +08:00
let tmp_ele = $(".Ar.Au >div");
$(".Ar.Au >div >div").html(tmp_ele.html(text));
await delay(3);
2024-08-22 14:06:42 +08:00
$(".dC >div").click();
2024-08-21 17:35:28 +08:00
await delay(getRandomInt(1, 5));
}
//返回
2024-08-22 14:06:42 +08:00
$(".aim.ain >div >div >div + div").click();
2024-08-21 17:35:28 +08:00
await delay(getRandomInt(5, 10));
}
2024-08-21 11:30:52 +08:00
send_close(id);
}
async function youtube_shorts2(r, id) {
//等待五秒怕加载速度过慢
await delay(5);
//观看次数
2024-08-21 13:56:31 +08:00
let views = getRandomInt(50, 100);
2024-08-21 11:30:52 +08:00
for (let index = 0; index < views; index++) {
//观看多少秒
let watch_time = getRandomInt(10, 20);
2024-08-21 11:30:52 +08:00
await delay(getRandomInt(2, 5));
//随机暂停播放
if (getRandomInt(0, 1) == 0) {
$(".video-stream.html5-main-video").click();
await delay(getRandomInt(2, 5));
$(".video-stream.html5-main-video").click();
await delay(watch_time);
}
//点赞
2024-08-21 17:35:28 +08:00
if (getRandomInt(0, 5) == 3) {
2024-08-22 14:06:42 +08:00
//点赞
2024-08-21 17:35:28 +08:00
document.querySelector("#like-button > yt-button-shape > label").click();
}
2024-08-22 14:06:42 +08:00
if (getRandomInt(0, 5) == 2) {
2024-08-21 17:35:28 +08:00
//不爱看
document
.querySelector("#dislike-button > yt-button-shape > label")
.click();
}
2024-08-22 14:06:42 +08:00
//论区操作
2024-08-21 11:30:52 +08:00
if (getRandomInt(0, 1) == 0) {
//打开评论区
$(
"#comments-button > ytd-button-renderer > yt-button-shape > label > button > yt-touch-feedback-shape > div > div.yt-spec-touch-feedback-shape__fill"
).click();
await delay(getRandomInt(5, 15));
2024-08-21 11:30:52 +08:00
//随机滑动评论区
2024-08-21 13:56:31 +08:00
// RandomIntscrollBy();
2024-08-21 11:30:52 +08:00
//关闭评论区
$(
"#visibility-button > ytd-button-renderer > yt-button-shape > button > yt-touch-feedback-shape > div > div.yt-spec-touch-feedback-shape__stroke"
).click();
}
2024-08-22 14:06:42 +08:00
await delay(getRandomInt(3, 5));
2024-08-21 13:56:31 +08:00
//下一个视频
2024-08-21 17:35:28 +08:00
$(
"#navigation-button-down > ytd-button-renderer > yt-button-shape > button > yt-touch-feedback-shape > div > div.yt-spec-touch-feedback-shape__stroke"
).click();
2024-08-21 11:30:52 +08:00
}
//看完关闭窗口
send_close(id);
}
async function youtube(r, id) {
2024-08-21 11:30:52 +08:00
alert("youto");
// 点击长视频观看
await delay(10);
2024-08-21 13:56:31 +08:00
//点击订阅 如果已经订阅过了就不用点
2024-08-21 17:35:28 +08:00
if (
$(
"div ytd-subscribe-button-renderer yt-smartimation yt-button-shape button"
)
.eq(0)
.is(".yt-spec-button-shape-next--filled")
)
$(
"div ytd-subscribe-button-renderer yt-smartimation yt-button-shape button"
)
.eq(0)
.click();
2024-08-21 13:56:31 +08:00
// 点赞
2024-08-21 17:35:28 +08:00
if (
$(
"div ytd-segmented-like-dislike-button-renderer div ytd-toggle-button-renderer yt-button-shape button"
).is(".yt-spec-button-shape-next--tonal")
)
$(
"div ytd-segmented-like-dislike-button-renderer div ytd-toggle-button-renderer yt-button-shape button"
)
.eq(0)
.click();
2024-08-21 17:35:28 +08:00
$("button .yt-spec-button-shape-next--size-m").click();
next_vido = Math.round(
Math.random() *
$("contents ytd-compact-video-renderer div ytd-thumbnail a").length
);
if (
next_vido ==
$("contents ytd-compact-video-renderer div ytd-thumbnail a").length
)
next_vido = next_vido - 1;
$("#contents ytd-compact-video-renderer div ytd-thumbnail a")
.eq(next_vido)[0]
.click();
}
function ServiceLogin(r, id) {
let mkeww = 0,
mue = setInterval(function () {
if ($("form ul>li img").length) {
clearInterval(mue);
setTimeout(function () {
$("form ul>li img").eq(0)[0].click();
}, 1900);
} else {
mkeww++;
if (mkeww > 106) {
clearInterval(mue);
}
}
}, 500);
send_close(id);
}
function send_close(id) {
chrome.runtime.sendMessage({
ty: "remove",
id: id,
});
}
2024-08-19 18:02:42 +08:00
2024-08-19 17:05:34 +08:00
chrome.runtime.sendMessage(
{
ty: "get",
},
2024-08-19 18:02:42 +08:00
function (obj) {
let r = obj.name;
let id = obj.id;
console.log("传递过来的obj" + JSON.stringify(obj));
2024-08-19 17:05:34 +08:00
switch (r) {
case "naver":
naver(r, id);
2024-08-19 17:05:34 +08:00
break;
case "youtube":
youtube(r, id);
break;
2024-08-21 11:30:52 +08:00
case "youtube_shorts":
youtube_shorts2(r, id);
break;
case "news_google":
news_google(r, id);
break;
2024-08-21 17:35:28 +08:00
case "play_google":
play_google(r, id);
break;
case "play_finance":
play_finance(r, id);
break;
case "mail":
mail(r, id);
break;
2024-08-22 14:06:42 +08:00
case "calendar":
calendar(r, id);
break;
2024-08-22 16:25:33 +08:00
case "shopping":
shopping(r, id);
break;
2024-08-19 17:05:34 +08:00
default:
break;
}
}
);
2024-08-20 10:05:28 +08:00
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
console.log(request);
sendResponse("我收到了你的情书popup~");
});