您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
始皇别封我号,用来给linux.do帖子自动点赞的
- // ==UserScript==
- // @name autoGiveLike
- // @namespace http://tampermonkey.net/
- // @version 2024-10-28.1
- // @description 始皇别封我号,用来给linux.do帖子自动点赞的
- // @author Kubbo
- // @match https://linux.do/*
- // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function () {
- 'use strict';
- console.log("始皇你好~")
- //@XODI @Hua 借用你们的防邀设置,做清清白白的人~
- const redirectIfNeeded = () => {
- if (window.location.href.includes("https://linux.do/invites/")) {
- window.location.replace("https://linux.do");
- }
- document.querySelectorAll("div .regular .contents").forEach((el) => {
- el.querySelectorAll("a").forEach((a) => {
- if (a.href.includes("https://linux.do/invites/")) {
- a.href = "https://linux.do";
- }
- });
- });
- };
- document.addEventListener('DOMContentLoaded', redirectIfNeeded);
- const observer = new MutationObserver(redirectIfNeeded);
- observer.observe(document.body, {childList: true, subtree: true});
- const getTopics = id => fetch(`/t/${id}.json?track_visit=true&forceLoad=true`).then(res => res.json()).then(res => {
- const topics = res?.post_stream?.stream || []
- console.log("本次查询一共有%s个帖子", topics.length)
- return topics
- })
- const initBtn = () => {
- setInterval(() => {
- const autoBtn = document.querySelector("#autoGiveLike")
- if (/\/t\/topic/.test(location.pathname)) {
- if (!autoBtn) {
- const btn = document.createElement("button")
- let status = 0 // 脚本执行状态: 0:未开始 1:正在执行中
- btn.id = "autoGiveLike"
- btn.innerText = "开始自动点赞"
- btn.style.position = "fixed"
- btn.style.top = "10px"
- btn.style.right = "20px"
- btn.style.padding = "8px 16px"
- btn.style.background = "#409EFF"
- btn.style.color = "#fff"
- btn.style.border = "none"
- btn.style.borderRadius = "16px"
- btn.style.zIndex = "202403101044"
- btn.addEventListener("click", () => {
- if (status === 0) {
- status = 1
- btn.innerText = "停止自动点赞"
- btn.style.background = "#F56C6C"
- const topicId = location.pathname.match(/\/topic\/([^/]+)/)?.[1]
- topicId && getTopics(topicId).then(ids => {
- let i = 0
- const token = document.querySelector('meta[name="csrf-token"]').content
- const loop = () => {
- if (status === 1) {
- const id = ids[i]
- fetch(`/discourse-reactions/posts/${id}/custom-reactions/heart/toggle.json`, {
- method: "PUT",
- headers: {"X-Csrf-Token": token}
- }).finally(() => {
- i++
- if (i <= 50 && i <= ids.length) { //设置50的阈值,防止始皇封我号
- setTimeout(loop, 50);
- }
- })
- }
- }
- loop()
- })
- } else if (status === 1) {
- status = 0
- btn.innerText = "开始自动点赞"
- btn.style.background = "#409EFF"
- }
- })
- document.body.appendChild(btn)
- }
- } else if (autoBtn) {
- autoBtn.remove()
- }
- }, 500)
- }
- initBtn()
- function showHotKeys() {
- const hotKeys = [
- {name: '描述', keys: '快捷键'},
- {name: '最新', keys: 'G+L'},
- {name: '新', keys: 'G+N'},
- {name: '未读', keys: 'G+U'},
- {name: '类别', keys: 'G+C'},
- {name: '热门', keys: 'G+T'},
- {name: '书签', keys: 'G+B'},
- {name: '个人资料', keys: 'G+P'},
- {name: '消息', keys: 'G+M'},
- {name: '草稿', keys: 'G+D'},
- ]
- const table = document.createElement('table')
- table.style.position = 'fixed'
- table.style.top = '50%'
- table.style.transform = 'translateY(-50%)'
- table.style.right = '10px'
- table.style.zIndex = '202403101044'
- table.style.fontSize = '14px'
- table.style.color = '#fff'
- table.style.borderRadius = '4px'
- hotKeys.forEach(key => {
- const tr = document.createElement('tr')
- const td1 = document.createElement('td')
- const td2 = document.createElement('td')
- td1.style.padding = '4px 10px'
- td1.innerText = key.name
- td2.innerText = key.keys
- tr.appendChild(td1)
- tr.appendChild(td2)
- table.appendChild(tr)
- })
- document.body.appendChild(table)
- }
- showHotKeys()
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址