咸鱼鱼 发表于 2024-9-25 12:59:09

【要重复造轮子】另一个版本的空间一键赠送勋章

本帖最后由 咸鱼鱼 于 2024-9-26 13:15 编辑

在以下两个实用工具的启发下,我开发出了新一代的轮子

[功能优化] 【勋章工具】批量赠送可多选 升级版 ★
[技巧科普] 【空间一键赠送勋章】如何让一个模块存在五个赠礼
其主要目的是,解决某些人空间没有一键赠送勋章的问题
以及某些人添加不明白这些勋章的问题




首先把【勋章工具】批量赠送可多选 升级版 ★这个东西部署到了cloudflare上,这样就可以把原来的本地版本转换为在线版本,
然后再写一写代码,就可以在空间里点击跳转过去,自带uid不用你手动填写了


基于前面这个已经部署到cloudflare的批量勋章赠送工具,我们可以同样在空间里添加一个类似的跳转页面
点击之后的效果见这里

https://example.com/image.jpg一键赠礼

最后附上在空间顶部添加一键赠礼的油猴代码

脚本:@Name
// ==UserScript==
// @name         GM论坛个人空间一键赠礼
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description在特定网页中提取UID并生成跳转链接
// @author       您的名字
// @match      https://www.gamemale.com/space-uid-*.html
// @match      https://www.gamemale.com/space-username-*.html
// @match      https://www.gamemale.com/home.php?mod=space&uid=*
// @grant      none
// ==/UserScript==

(function() {
    'use strict';

    // 获取当前页面的 URL
    const currentUrl = window.location.href;

    // 声明 uid 变量
    let uid;

    // 尝试匹配各类链接获取 UID
    const uidMatch = currentUrl.match(/uid-(\d+)\.html/);
    if (uidMatch) {
      uid = uidMatch; // 提取 UID
    } else {
      const usernameMatch = currentUrl.match(/username-([\u4e00-\u9fa5A-Za-z0-9_-]+)$/); // 匹配用户名
      if (usernameMatch) {
            console.log('找到用户名:', usernameMatch);
            // 假设可以通过某种方式获取 UID 可以在这里实现
      } else {
            // 尝试从 home.php 链接提取 UID
            const homeUidMatch = currentUrl.match(/[?&]uid=(\d+)/);
            if (homeUidMatch) {
                uid = homeUidMatch; // 从 home.php 链接提取 UID
            } else {
                // 获取空间的链接地址并提取 UID
                const domainUrl = document.querySelector("#domainurl").href;
                const domainUidMatch = domainUrl.match(/(\d+)$/); // 提取最后的数字部分

                if (domainUidMatch) {
                  uid = domainUidMatch; // 设置从 domainUrl 提取的 UID
                } else {
                  console.log('未能提取 UID');
                  return; // 如果没有找到 UID,则终止执行
                }
            }
      }
    }

    // 生成新的链接地址
    const newLink = `https://send-all.pages.dev/?uid=${uid}`;

    // 创建新的 a 标签
    const linkElement = document.createElement('a');
    linkElement.href = newLink;
    linkElement.textContent = '一键赠礼'; // 设置链接文本
    linkElement.target = '_blank'; // 设置为在新标签页打开

    // 查找目标元素
    const targetElement = document.querySelector("#toptb > div.z");

    if (targetElement) {
      // 将 a 标签添加到目标元素的末尾
      targetElement.appendChild(linkElement);
    } else {
      console.log('未找到目标元素');
    }
})();




贰狼Awoo 发表于 2024-9-25 13:05:52

?不愧是咸鱼虎佬,感觉用完会节省很多地方(虽然节省了模块也不知道要放什么)

user_login 发表于 2024-9-25 13:09:45

个人觉得从空间送勋章最好的方式是在空间添加侧拉栏
空间获取uid建议从页面上获取,因为空间地址的写法至少有4种

娱乐法师火布偶 发表于 2024-9-25 13:14:03

感觉上是非常方便萌新的脚本了

1287549 发表于 2024-9-25 13:15:39

居然多个版本的都出来了,泥潭真是越来越方便了

凯诺斯 发表于 2024-9-25 13:20:35

大佬好厉害,一键赠送真的素方便省事呀{:6_197:}

cinder 发表于 2024-9-25 13:36:38

如果能自動更新那挺不錯..可以對應未來增加的禮物徽章/w\

you9632587 发表于 2024-9-25 13:40:52

这脚本对于遇到没有一键的人的情况就很方便了啊

PURO_ 发表于 2024-9-25 13:42:46

对于代码苦手的我真的会很方便

singto 发表于 2024-9-25 13:46:06

云更新的功能很方便了呢,而且部分空间一键不齐全的情况也可以快速回复!

毛茸茸兽兽 发表于 2024-9-25 13:52:56

可以强制赠送了欸(强制爱什么的)

前方无怪 发表于 2024-9-25 14:06:45

好多版本hhh,本猫都感觉有点用不太过来了{:4_99:}

Alicen2233 发表于 2024-9-25 14:17:00

楼主真的牛逼啊:loveliness::loveliness::loveliness::loveliness:太赞了

scfy 发表于 2024-9-25 14:28:57

可以给没设置一键的人猛猛塞了

不是卖萌的基佬 发表于 2024-9-25 14:51:37

等晚上回家试试这个脚本能把赠礼方便到什么程度 谢谢大佬o(≧口≦)o

圣卫幻梦 发表于 2024-9-25 14:56:48

感觉省了不少模块地方

枫_Age 发表于 2024-9-25 15:01:53

用不到但是感谢大佬{:4_99:}

promax 发表于 2024-9-25 15:15:15

感谢咸鱼鱼的分享,泥潭现在正在蒸蒸日上

随心110 发表于 2024-9-25 15:24:47

哇哦,尊嘟素很方便的小工具惹~~~
这下就可以一键赠送,省时省力惹~~~

棕狮 发表于 2024-9-25 15:56:24

可以可以,又节约了空间的地方分配,技术佬强欸{:6_200:}
页: [1] 2 3
查看完整版本: 【要重复造轮子】另一个版本的空间一键赠送勋章