455 lines
12 KiB
JavaScript
455 lines
12 KiB
JavaScript
/**
|
||
* 阻塞代码运行
|
||
* @param {*} n 秒数
|
||
* @returns
|
||
*/
|
||
function delay(n) {
|
||
return new Promise(function (resolve) {
|
||
setTimeout(resolve, n * 1000);
|
||
});
|
||
}
|
||
/**
|
||
* 随机数生成
|
||
* @param {*} min 最小值
|
||
* @param {*} max 最大值
|
||
* @returns
|
||
*/
|
||
function getRandomInt(min, max) {
|
||
min = Math.ceil(min);
|
||
max = Math.floor(max);
|
||
return Math.floor(Math.random() * (max - min + 1)) + min;
|
||
}
|
||
|
||
/**
|
||
* 随机滑动函数
|
||
* @param {*} y 滑动像素 不传递默认随机
|
||
*/
|
||
function RandomIntscrollBy(y = 0) {
|
||
let rand = getRandomInt(100, 600);
|
||
scrollBy(0, y == 0 ? rand : y);
|
||
console.log("随机滑动" + rand);
|
||
}
|
||
|
||
/**
|
||
* 判断打开的浏览器页面是PC端还是移动端
|
||
* @returns mobile_web:手机,PC:PC
|
||
*/
|
||
function is_mobile_web(){
|
||
return /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) ? true : false
|
||
}
|
||
|
||
//naver使用函数
|
||
const naver = async (r, id) => {
|
||
let googelid_str = (elements = $(".gb_A.gb_Za.gb_0").attr("aria-label"));
|
||
const emailRegex = /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/;
|
||
const match = googelid_str.match(emailRegex);
|
||
const email = match ? match[0] : null;
|
||
console.log(`email:${email} r:${r} id${id}`)
|
||
// let res = await to_background(email);
|
||
// console.log(`res:${res} emall:${email}`);
|
||
// await delay(10)
|
||
// send_close(id);
|
||
};
|
||
/**
|
||
*
|
||
* @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;
|
||
}
|
||
|
||
/**
|
||
* 谷歌商城
|
||
* @param {*} r
|
||
* @param {*} id
|
||
*/
|
||
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);
|
||
}
|
||
|
||
/**
|
||
* 谷歌日历
|
||
* @param {*} r
|
||
* @param {*} id
|
||
*/
|
||
async function calendar(r, id) {
|
||
await delay(3);
|
||
let number = getRandomInt(2, 5);
|
||
console.log($);
|
||
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);
|
||
}
|
||
|
||
/**
|
||
* 谷歌新闻
|
||
* @param {*} r
|
||
* @param {*} id
|
||
*/
|
||
async function news_google(r, id) {
|
||
//等待五秒怕加载速度过慢
|
||
await delay(3);
|
||
//点击完整报道
|
||
try {
|
||
$(".jKHa4e")[0].click();
|
||
for (let index = 0; index < getRandomInt(3, 5); index++) {
|
||
RandomIntscrollBy();
|
||
await delay(3);
|
||
}
|
||
let new_array = $(".VDXfz");
|
||
let new_array_href = [];
|
||
for (let index = 0; index < new_array.length; index++) {
|
||
const element = new_array[index];
|
||
console.log(element.getAttribute("href"));
|
||
let url = element.getAttribute("href").replace(/\./g, "");
|
||
new_array_href.push(`https://news.google.com${url}`);
|
||
}
|
||
for (let index = 0; index < new_array_href.length; index++) {
|
||
const element = new_array_href[index];
|
||
let a = open(element);
|
||
await delay(3);
|
||
a.close();
|
||
}
|
||
} catch (error) {
|
||
console.log(error);
|
||
}
|
||
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);
|
||
}
|
||
/**
|
||
* 谷歌财经
|
||
* @param {*} r
|
||
* @param {*} id
|
||
*/
|
||
async function play_finance(r, id) {
|
||
await delay(5);
|
||
let recommended_attention = $(".sbnBtf >li >a");
|
||
|
||
for (
|
||
let index = 0;
|
||
index < getRandomInt(0, recommended_attention.length);
|
||
index++
|
||
) {
|
||
recommended_attention[index].click();
|
||
await delay(getRandomInt(5, 10));
|
||
for (let indexx = 0; indexx < getRandomInt(0, 5); indexx++) {
|
||
RandomIntscrollBy();
|
||
await delay(getRandomInt(5, 10));
|
||
}
|
||
//返回主页
|
||
$(".gb_Bc >a").click();
|
||
}
|
||
// send_close(id);
|
||
}
|
||
|
||
/**
|
||
* 谷歌邮箱
|
||
* @param {*} r
|
||
* @param {*} id
|
||
*/
|
||
async function mail(r, id) {
|
||
let emailReply = [
|
||
"우리 실장님이 승진을 축하하기 위해서 다음주 금요일에 (1월 21일에) 오후 5시에 XX 호텔에서 회식이 있습니다 첨부 파일에서 구체적이 정보을 참고하세요. ",
|
||
"회장님의 회의 잘료을 준비위해서 16년에 상품 기획부의 목표 달성 상황을 필요합니다. 다음주 화요일전에 첨부 파일에 형식으로 준비 됬으면 좋겠습니다.많이 감사 드립니다",
|
||
"좋은 하루 지내세요.",
|
||
"연휴에 잘 지내세요.",
|
||
"감사합니다",
|
||
"이번주의 판매 보고을 보내드립니다. 세해 세일때문에 판매 목표를 잘 달성했슴니다. 첨부 파일을 참고하세요. ",
|
||
"좋습니다 좋아요",
|
||
"안녕하세요",
|
||
"좋습니다",
|
||
"좋아요",
|
||
"화이팅",
|
||
"모르겠습니다",
|
||
"모르지만 해도 좋아요",
|
||
"저는 동현 입니다",
|
||
"해도 좋습니까?",
|
||
"괜찮아요?",
|
||
"몇살이에요?",
|
||
"감사합니다",
|
||
"미안합니다",
|
||
"저 갑니다",
|
||
"사랑해요",
|
||
];
|
||
await delay(8);
|
||
let mails = document.querySelectorAll(".zA");
|
||
let mails_is_google = $(".zA");
|
||
for (let index = 0; index < mails.length; index++) {
|
||
//挨个查看
|
||
mails[index].click();
|
||
RandomIntscrollBy();
|
||
await delay(getRandomInt(1, 5));
|
||
//.yP未读邮件
|
||
// console.log(mails_is_google[index].getElementsByClassName('yX xY')[0].children[1].children[0].children[0].getAttribute("email"))
|
||
// console.log(mails_is_google[index].children[4].children[1].children[0].children[0].getAttribute("email"))
|
||
//获取邮件发送人
|
||
let mail_for = mails_is_google[index]
|
||
.getElementsByClassName("yX xY")[0]
|
||
.children[1].children[0].children[0].getAttribute("email");
|
||
//是否回复
|
||
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;
|
||
|
||
console.log(
|
||
`当前邮件发送人:${mail_for} 是否回复${whether_or_not_to_reply_to}`
|
||
);
|
||
//邮箱回复
|
||
if (getRandomInt(0, 1) == 0 && whether_or_not_to_reply_to) {
|
||
$(".amn >.ams.bkH").click();
|
||
await delay(getRandomInt(1, 5));
|
||
let text = emailReply[getRandomInt(0, emailReply.length - 1)];
|
||
console.log("注入内容为" + text);
|
||
// $(".Ar.Au >div >div").html = text;
|
||
let tmp_ele = $(".Ar.Au >div");
|
||
$(".Ar.Au >div >div").html(tmp_ele.html(text));
|
||
await delay(3);
|
||
$(".dC >div").click();
|
||
await delay(getRandomInt(1, 5));
|
||
}
|
||
//返回
|
||
$(".aim.ain >div >div >div + div").click();
|
||
await delay(getRandomInt(5, 10));
|
||
}
|
||
send_close(id);
|
||
}
|
||
|
||
async function youtube_shorts2(r, id) {
|
||
//等待五秒怕加载速度过慢
|
||
await delay(5);
|
||
//观看次数
|
||
let views = getRandomInt(50, 100);
|
||
for (let index = 0; index < views; index++) {
|
||
//观看多少秒
|
||
let watch_time = getRandomInt(10, 20);
|
||
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);
|
||
}
|
||
|
||
//点赞
|
||
if (getRandomInt(0, 5) == 3) {
|
||
//点赞
|
||
document.querySelector("#like-button > yt-button-shape > label").click();
|
||
}
|
||
if (getRandomInt(0, 5) == 2) {
|
||
//不爱看
|
||
document
|
||
.querySelector("#dislike-button > yt-button-shape > label")
|
||
.click();
|
||
}
|
||
|
||
//论区操作
|
||
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));
|
||
//随机滑动评论区
|
||
// RandomIntscrollBy();
|
||
//关闭评论区
|
||
$(
|
||
"#visibility-button > ytd-button-renderer > yt-button-shape > button > yt-touch-feedback-shape > div > div.yt-spec-touch-feedback-shape__stroke"
|
||
).click();
|
||
}
|
||
await delay(getRandomInt(3, 5));
|
||
//下一个视频
|
||
$(
|
||
"#navigation-button-down > ytd-button-renderer > yt-button-shape > button > yt-touch-feedback-shape > div > div.yt-spec-touch-feedback-shape__stroke"
|
||
).click();
|
||
}
|
||
//看完关闭窗口
|
||
send_close(id);
|
||
}
|
||
|
||
async function youtube(r, id) {
|
||
// 点击长视频观看
|
||
await delay(5);
|
||
//点击订阅 如果已经订阅过了就不用点
|
||
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();
|
||
// 点赞
|
||
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();
|
||
|
||
$("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,
|
||
});
|
||
}
|
||
async function to_background(params) {
|
||
return new Promise((resolve, reject) => {
|
||
chrome.runtime.sendMessage(
|
||
{
|
||
info: params,
|
||
ty: "viewPermission",
|
||
},
|
||
(res) => {
|
||
console.log(res);
|
||
if (res) {
|
||
resolve(res);
|
||
} else {
|
||
reject(new Error("No response from background script"));
|
||
}
|
||
}
|
||
);
|
||
});
|
||
}
|
||
|
||
chrome.runtime.sendMessage(
|
||
{
|
||
ty: "get",
|
||
},
|
||
function (obj) {
|
||
let r = obj.name;
|
||
let id = obj.id;
|
||
console.log("传递过来的obj" + JSON.stringify(obj));
|
||
switch (r) {
|
||
case "naver":
|
||
naver(r, id);
|
||
break;
|
||
case "youtube":
|
||
youtube(r, id);
|
||
break;
|
||
case "youtube_shorts":
|
||
youtube_shorts2(r, id);
|
||
break;
|
||
case "news_google":
|
||
news_google(r, id);
|
||
break;
|
||
case "play_google":
|
||
play_google(r, id);
|
||
break;
|
||
case "play_finance":
|
||
play_finance(r, id);
|
||
break;
|
||
case "mail":
|
||
mail(r, id);
|
||
break;
|
||
case "calendar":
|
||
calendar(r, id);
|
||
break;
|
||
case "shopping":
|
||
shopping(r, id);
|
||
break;
|
||
case "youtube":
|
||
youtube(r, id);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
);
|
||
|
||
// chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
|
||
// console.log(request);
|
||
// sendResponse("我收到了你的情书,popup~");
|
||
// });
|