LiXin 发布的文章

0. 展示

image

本文部分内容由chatgpt生成,略有修改

相关链接:

(备注:本文介绍的是 cfblog-plus 原仓库为:https://github.com/Arronlong/cfblog-plus ,是gdtool/cloudflare-workers-blog 的一个修改版)

1. 介绍

cf blog是一个运行在cloudflare workers 上的博客程序,使用 cloudflare KV作为数据库,无其他依赖. 兼容静态博客的速度,以及动态博客的灵活性,您可以通过访问项目仓库了解更多详情。

2. 项目特点:

  • 使用workers提供的KV作为数据库,可达到wordpress的灵活性
  • 使用cloudflare缓存html来降低KV的读写,使其可达到静态博客的速度
  • 后台使用markdown语法,方便快捷,一键发布(页面重构+缓存清理)
  • cfblog-plus新增了 文章置顶、后台首页选择、文章隐藏、静态搜索等功能

3. 部署

视频教程:https://youtu.be/E592EyqfqJI

这是一个纯小白教程[doge]

第一步:注册Cloudflare账号

Cloudflare官网:https://dash.cloudflare.com

第二步,将域名托管到CloudFlare中,并获取区域ID

如果没有也行,可以使用自动分配的域名,但是后续发布文章时,自动清除缓存会无法使用,问题不大

托管域名:过程略,自行baidu或google

获取区域ID:如域名已托管到CloudFlare中,进入域名站点管理页面,页面向下滑动,记录右侧的“区域ID”的值,后续会用到。

第三步,获取清除缓存 API 令牌

打开API令牌管理页面,点击“创建令牌”按钮,页面拉到最下面,点击“创建自定义令牌”后面的“开始使用”按钮,按以下方式填写。

令牌名字:CFBlog-plus

缓存权限:区域 -> 缓存清除 -> 清除

区域资源:包括 -> 特定区域 -> 【您的域名】

image

image
image
image

token留下备用

第四步,新建KV命名空间

打开CloudFlare主页,点击右侧的“Workers”,然后点击“KV”项,即可进入“Worker KV”管理页面。

在命名空间名称输入框里任意输入一个名称,为了见名知义,这里最好使用CFBLOG作为命名空间名称。点击添加即可。如下图所示:

image

第五步,创建Workers

点击挨着“KV”的“概述”项,进入Workers 和 Pages 概述,点击“创建应用程序”,点击“创建Workers”,点击“编辑代码”

image
image

将index_plus.js中的内容替换workers的内容。

image

先不修改配置,然后点击“保存并部署”。然后点击“<”箭头,返回该workers的配置页面,自行“重命名”,然后“设置”—“变量”选项卡,添加“KV 命名空间绑定”,变量名随意起,推荐用CFBLOG,下拉选择新添加的KV命名空间,点击“保存按钮”。

image

再将页面滑动上面,点击“快速编辑”,重新打开workers的编辑页面开始添加各类配置。

image

以上配置项均根据配置说明进行配置即可,不再详细说明。要记得“保存并部署”

可以点击右侧的“预览”选项卡进行预览,能成功出现页面就说明配置成功了。

第六步,配置域名访问【非必须】

参照图片

image

保存后可以看到列表里有刚添加的信息,自此,所有配置已经完成,可以愉快的写博客了。

4. 可能遇到的问题

  • 文章id为ID000nan且访问会报错误

    解决方案:在创建的KV中修改SYSTEM_INDEX_NUM的值为0

    image

  • 新增文章时,必填的分类无法选择

    解决方案:在顶部设置中,参照提示填写分类

  • 保存了,但是主页不显示文章

    解决方案:在后台直接点发布或者去Cloudlfare清除相关链接的缓存(自行baidu/Google)

5. 扩展

添加评论、阅读量、内容分类、页脚、自定义页面和图标、链接等,请自行发掘

例子

  • 页脚(可以把作者信息保留,我这里因为有这篇文章介绍就不保留了)

    image

  • 阅读量

    image

  • 评论

    image

  • 图标+分类

    image

6. 承载能力:

  • KV基本不存在瓶颈,因为使用了缓存,读写很少
  • 唯一瓶颈是 workers的日访问量10w,大约能承受2万IP /日
  • 文章数:1G存储空间,几万篇问题不大

7. 说明

感谢原作者的付出,觉得好用不妨给原作者一个 星星

本文链接:

最后,感谢你的阅读,谢谢

1、激活win11专业版

可以用这两个激活密钥试试看

J8WVF-9X3GM-4WVYC-VDHQG-42CXT
7Y64F-88DCY-Y6WTC-H33D2-64QHF

断网输入激活码
等待重启后联网
win+x选终端管理员
按右键粘贴这行代码后回车即可:

irm massgrave.dev/get.ps1 | iex

选1即可(选项第一个是永久,第二个是到2038年,第三个是180天带工具,在下方绿色字体尾端输入你选择的选项数字)

win11家庭版升专业版通过电子激活就是这样子的

2、暂停更新

win+x选终端管理员
按右键粘贴这行代码后回车即可:

reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings“ /v FlightSettingsMaxPauseDays /t reg_dword /d 10000 /f

Test

桌面右键菜单改回win10样式

新建文本复制内容进去:

reg add HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32 /ve
taskkill /f /im explorer.exe
explorer
reg delete HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32 /f /ve

更改文件名为1.cmd,双击运行即可
效果图
Test

office365安装

下载Office Tool Plus:https://otp.landian.vip/zh-cn/download.html
部署:
添加产品
Test
添加语言
Test
开始部署,视你的网络状况和巨硬的网络状况快的话十几分钟吧。
Test
Test
Test

激活:
安装许可证
选Office Modono 2016-批量许可证
Test
设置KMS主机
下面的链接都可以,选一个就行
kms.loli.beer
kms.ghpym.com
kms.loli.best
Test
填好主机后点设置主机,再点激活
Test
刷新许可证就好了
Test

### 改回win10磁贴
项目:https://github.com/valinet/ExplorerPatcher
下载:https://github.com/valinet/ExplorerPatcher/releases/download/22621.3296.64.1_9e9c016/ep_setup.exe
下载安装后会白屏一下,不要慌一会儿就好了,然后右键任务栏-属性
选开始菜单,风格win10,显示更多磁贴,左下角重启文件管理器即可
Test
效果图
Test

{collapse}
{collapse-item label="吹牛战绩查询"}
油猴脚本

// ==UserScript==
// @name         吹牛战绩查询
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  在吹牛游戏页面上添加查询按钮,点击按钮后可查询指定用户的历史战绩,并计算下次选择1的概率。
// @author       yaohuo 30865
// @match        *://yaohuo.me/games/chuiniu/index.aspx?siteid=1000&classid=0*
// @grant        none
// ==/UserScript==

/*
 * 本脚本的功能:
 * 1. 在吹牛游戏页面上为每个游戏记录添加一个“查询”按钮。
 * 2. 点击“查询”按钮后,脚本会获取该游戏记录对应的用户ID(touserid)。
 * 3. 根据用户ID,脚本会查询该用户最近的15场游戏记录,跳过“进行中”的游戏。
 * 4. 脚本会分析这些游戏记录,统计选择答案1和答案2的次数。
 * 5. 根据统计结果,计算下次选择答案1的概率,并显示在页面上。
 *
 * 使用方法:
 * 1. 安装Tampermonkey插件,并将本脚本添加到Tampermonkey中。
 * 2. 访问吹牛游戏页面。
 * 3. 在每个游戏记录的右侧会显示一个“查询”按钮,点击该按钮即可查看该用户的历史战绩和下次选择1的概率。
 */

(function() {
    'use strict';

    // 提取URL中的参数
    function extractParam(url, paramName) {
        try {
            const urlObj = new URL(url, window.location.origin);
            return urlObj.searchParams.get(paramName);
        } catch (error) {
            console.error('无效的URL:', url, error);
            return null;
        }
    }

    // 获取touserid
    async function fetchTouserid(id) {
        try {
            const response = await fetch(`https://yaohuo.me/games/chuiniu/doit.aspx?siteid=1000&classid=0&id=${id}`);
            const text = await response.text();
            const match = text.match(/touserid=(\d+)/);
            return match ? match[1] : null;
        } catch (error) {
            console.error('获取touserid失败:', error);
            return null;
        }
    }

    // 获取前15个ID,跳过“进行中”的标签
    async function fetchTopIDs(touserid, numIDs = 15) {
        try {
            const response = await fetch(`https://yaohuo.me/games/chuiniu/book_list.aspx?type=0&touserid=${touserid}`);
            const text = await response.text();
            const parser = new DOMParser();
            const doc = parser.parseFromString(text, 'text/html');
            const lines = doc.querySelectorAll('.line1, .line2');
            const ids = [];

            for (const line of lines) {
                const idLink = line.querySelector('a[href*="book_view.aspx"]');
                if (idLink && !line.textContent.includes('进行中')) {
                    const id = extractParam(idLink.href, 'id');
                    if (id) ids.push(id);
                    if (ids.length >= numIDs) break;
                }
            }

            return ids;
        } catch (error) {
            console.error(`获取前${numIDs}个ID失败:`, error);
            return [];
        }
    }

    // 获取答案
    async function fetchAnswer(id) {
        try {
            const response = await fetch(`https://yaohuo.me/games/chuiniu/book_view.aspx?id=${id}`);
            const text = await response.text();
            const match1 = text.match(/挑战方出的是\[答案1\]/);
            const match2 = text.match(/挑战方出的是\[答案2\]/);

            let answer = null;

            if (match1) answer = '1';
            if (match2) answer = '2';

            return { answer };
        } catch (error) {
            console.error('获取答案失败:', error);
            return { answer: null };
        }
    }

    // 创建并显示结果容器
    function createResultContainer(element, queryButton, validAnswers, count1, count2, probability1) {
        const resultContainer = document.createElement('div');
        resultContainer.style.marginTop = '10px';
        resultContainer.style.backgroundColor = 'white';
        resultContainer.style.padding = '10px';
        resultContainer.style.border = '1px solid #ccc';
        resultContainer.style.borderRadius = '5px';
        resultContainer.style.boxShadow = '0 0 10px rgba(0, 0, 0, 0.1)';
        resultContainer.style.position = 'absolute';
        resultContainer.style.zIndex = '1000';
        resultContainer.style.left = `${queryButton.offsetLeft + queryButton.offsetWidth + 10}px`;
        resultContainer.style.top = `${queryButton.offsetTop}px`;

        const closeButton = document.createElement('button');
        closeButton.textContent = '关闭';
        closeButton.style.float = 'right';
        closeButton.style.cursor = 'pointer';

        closeButton.addEventListener('click', () => {
            resultContainer.remove();
        });

        resultContainer.appendChild(closeButton);

        // 显示历史答案
        validAnswers.forEach(({ answer }) => {
            const answerSpan = document.createElement('span');
            answerSpan.textContent = answer;
            resultContainer.appendChild(answerSpan);
        });

        resultContainer.appendChild(document.createElement('br'));
        resultContainer.appendChild(document.createTextNode(`选择1的次数: ${count1}`));
        resultContainer.appendChild(document.createElement('br'));
        resultContainer.appendChild(document.createTextNode(`选择2的次数: ${count2}`));
        resultContainer.appendChild(document.createElement('br'));
        resultContainer.appendChild(document.createTextNode(`下次选择1的概率: ${probability1.toFixed(2)}%`));
        resultContainer.appendChild(document.createElement('br'));
        resultContainer.appendChild(document.createTextNode(`战绩仅供参考`));
        resultContainer.appendChild(document.createElement('br'));

        element.appendChild(resultContainer);
    }

    // 设置函数
    function setup() {
        const elements = document.querySelectorAll('.line1, .line2');

        elements.forEach(element => {
            const link = element.querySelector('a');
            if (link) {
                const id = extractParam(link.href, 'id');
                if (id) {
                    // 添加查询按钮到每个标签右边
                    const queryButton = document.createElement('button');
                    queryButton.textContent = '查询';
                    queryButton.style.marginLeft = '10px';
                    queryButton.style.cursor = 'pointer';

                    queryButton.addEventListener('click', async () => {
                        const touserid = await fetchTouserid(id);
                        if (touserid) {
                            const topIDs = await fetchTopIDs(touserid, 15); // 默认查询15个ID
                            const answers = await Promise.all(topIDs.map(fetchAnswer));
                            const validAnswers = answers.filter(a => a.answer);

                            // 统计1和2的次数
                            const count1 = validAnswers.filter(a => a.answer === '1').length;
                            const count2 = validAnswers.filter(a => a.answer === '2').length;

                            // 计算选择1的概率
                            const probability1 = (count1 / validAnswers.length) * 100;

                            createResultContainer(element, queryButton, validAnswers, count1, count2, probability1);
                        } else {
                            alert('获取touserid失败,手动点击吹牛输入密码,或吹牛已经消失');
                        }
                    });

                    element.appendChild(queryButton);
                }
            }
        });
    }

    // 页面加载后运行设置函数
    window.addEventListener('load', () => {
        // 仅在特定页面显示查询按钮
        if (window.location.href.startsWith('https://yaohuo.me/games/chuiniu/index.aspx?siteid=1000&classid=0')) {
            setup();
        }
    });
})();

{/collapse-item}
{/collapse}

{collapse}
{collapse-item label="妖火Cookie"}
油猴脚本

// ==UserScript==
// @name         妖火游戏密钥1.68获取特定Cookie值并在页面上显示分享
// @namespace    http://tampermonkey.net/
// @version      1.68分享
// @description  尝试根据既有文档的指导,获取特定Cookie值并填充,同时在页面上显示相关的Cookie值。
// @author       打不过就加入
// @match        *://yaohuo.me/*
// @match        *://*.yaohuo.me/*
// @grant        GM_xmlhttpRequest
// @changelog    使用方法:把39行代码中的密码 换成你妖火密码就行了,1.68版本在妖火分享了2024-05-29      【页面会显示Cookie   sidyaohuo=; GET】复制这2个就能吹牛了
// ==/UserScript==

(function() {
    'use strict';

    // 获取当前页面的Cookie值
    var cookies = document.cookie;
    console.log("当前页面的Cookie: ", cookies);

    // 正则匹配特定Cookie值
    var sidyaohuoMatch = cookies.match(/sidyaohuo=([^;]+)/);
    var getCookieMatch = cookies.match(/(GET\d+)=([^;]+)/);
    var sidwwwMatch = cookies.match(/sidwww=([^;]+)/); // 新增匹配sidwww的正则表达式

    // 提取Cookie值
    var sidyaohuoValue = sidyaohuoMatch ? sidyaohuoMatch[1] : "默认值";
    var getCookieValue = getCookieMatch ? `${getCookieMatch[1]}=${getCookieMatch[2]}` : "GET值未找到";
    var sidwwwValue = sidwwwMatch ? `sidyaohuo=${sidwwwMatch[1]}` : "sidwww未找到"; // 提取sidwww的值,并修改其格式

    // 将获取到的Cookie值显示在页面上
    var cookieDiv = document.createElement("div");
    cookieDiv.textContent = `sidyaohuo=${sidyaohuoValue}; ${getCookieValue}`;
    document.body.insertBefore(cookieDiv, document.body.firstChild);

    // 重新发送请求的函数
    function resendRequest() {
        // 构造请求参数
        var formData = new FormData();
        formData.append("needpassword", "密码");//这里输入妖火密码,把密码文字替换成你密码
        formData.append("siteid", "1000");
        formData.append("classid", "0");
        // 使用获取到的sidyaohuo值
        formData.append("sid", sidyaohuoValue);
        formData.append("go", "确定");

        // 发送重发请求
        GM_xmlhttpRequest({
            method: "POST",
            url: 'https://www.yaohuo.me/games/chuiniu/add.aspx',
            headers: {
                "Host": "www.yaohuo.me",
                "User-Agent": "Mozilla/5.0 (Linux; Android 10; SKW-A0; Build/SKYW2109060CN00MQ8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.4280.141 Mobile Safari/537.36 Firefox-KiToBrowser/118.0",
                "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
                "Accept-Language": "zh-CN",
                "Accept-Encoding": "gzip, deflate, br",
                "Content-Type": "application/x-www-form-urlencoded",
                "Connection": "keep-alive",
                "Upgrade-Insecure-Requests": "1",
                "Origin": "null",
                "Sec-Fetch-Dest": "document",
                "Sec-Fetch-Mode": "navigate",
                "Sec-Fetch-Site": "same-origin",
                "Sec-Fetch-User": "?1"
            },
            data: formData,
            onload: function(response) {
                console.log(response.responseText);
                console.log(response.responseHeaders);
                var responseCookies = response.responseHeaders.match(/set-cookie: ((sidyaohuo=\w+)|(GET\d+=\w+)|(sidwww=\w+))/gi); // 修改正则表达式,匹配sidwww
                if (responseCookies) {
                    console.log("响应的 Cookie:");
                    var cookieString = "";
                    responseCookies.forEach(function(cookie) {
                        console.log(cookie.split(": ")[1]);
                        var cookieValue = cookie.split(": ")[1];
                        if (cookieValue.startsWith("sidyaohuo")) {
                            cookieString += cookieValue;
                        } else {
                            cookieString += ";" + cookieValue;
                        }
                    });
                    var cookieElement = document.createElement("p");
                    cookieElement.textContent = cookieString.startsWith(";") ? cookieString.substring(1) : cookieString; // 去掉开头的分号
                    cookieDiv.appendChild(cookieElement);
                }
            }
        });
    }

    // 创建重新发送按钮
    var button = document.createElement("button");
    button.innerHTML = "获取Cookie";
    button.addEventListener("click", resendRequest);

    // 将重新发送按钮插入到页面上
    document.body.insertBefore(button, document.body.firstChild);
})();

{/collapse-item}
{/collapse}

{collapse}
{collapse-item label="吹牛倍投"}
shell脚本

#by-莫老师,此脚本适用于本金百万以上用户,本脚本无加密,无后门,允许二开但不得删除原作者信息。不得加密,用户注意不要使用加密过的脚本,并注意账号密码安全
u="13715";#妖火id
p="you password";#妖火密码
######↓高级设置↓######
i="500";#初始投注数额,最低500,不建议太高,太高风险都会成倍上升
b="2.12";#倍投倍数,建议2.12-2.30,太高吃不消,2.12起码要有81万本金,2.30起码要有159万本金,倍数低于2.11会亏本,以上数据基于10连不中的情况下得出,世事无绝对,毕竟还有极其微小的概率让你11不连中。如果对自己运气有信心,并且觉得自己不会10连不中,可适当调高倍率,但也不要太高,最好不要高于2.3
q=(2 2 1);#答案选项权重,两个2一个1代表选项2的概率66.66%,如果要平均就一个2一个1
#根据莫老师吹牛大模型的数据得出答题者出2的概率约为30%,故出题选2的概率较高。
#本脚本仅供娱乐,10连不中的概率极低,约为1‰,但也不代表不存在,长期玩是必输的结局。
#######以下部分不要乱动########
l=yaohuo.me
w=("%E7%88%B1%E7%94%9F%E6%B4%BB%E8%BF%98%E6%98%AF%E7%88%B1%E5%A6%96%E7%81%AB%EF%BC%9F&answer1=%E7%88%B1%E7%94%9F%E6%B4%BB&answer2=%E7%88%B1%E5%A6%96%E7%81%AB" "%E6%88%91%E6%98%AF%E5%90%B9%E7%89%9B%E5%A4%A7%E7%A5%9E%EF%BC%81&answer1=%E4%B8%8D%E6%98%AF&answer2=%E5%BD%93%E7%84%B6")
k(){
t=$(curl -sk -X POST -H "Host: $l" -H "content-type: application/x-www-form-urlencoded" -H "cookie: sidyaohuo=$s;$f" -d "mymoney=$m&question=${w[$((RANDOM%2))]}&myanswer=$(shuf -e "${q[@]}" -n1)&action=gomod&classid=194&siteid=1000&bt=%E7%A1%AE+%E5%AE%9A" "https://$l/games/chuiniu/add.aspx")
if [[ "$t" == *"输入密码"* ]]; then
f=$(curl -sik -X POST -H "Host: $l" -H "content-type: application/x-www-form-urlencoded" -H "cookie: sidyaohuo=$s" -d "needpassword=$p&siteid=1000&classid=194&sid=$s&go=%E7%A1%AE%E5%AE%9A" "https://$l/games/chuiniu/add.aspx" | sed 's/;/\n/g' | grep "GET$u" | awk -F " " '{print $2}')
k
elif [[ "$t" == *"成功创建"* ]]; then
echo "下注成功,本次下注$m"
elif [[ "$t" == *"妖晶不够"* ]]; then
echo "本金不足,恭喜破产了"
exit
fi
c
}
c(){
t=$(curl -sk -X GET -H "Host: $l" -H "cookie: sidyaohuo=$s;$fk" "https://$l/games/chuiniu/book_list.aspx?type=0&touserid=$u&siteid=1000&classid=194" | sed 's/<\/div>/\n/g' | grep -m 1 "ID<a href=" | sed 's/,被//g' | sed 's/应战,//g' | awk -F "," '{print $2}')
if [[ "$t" == *"进行中"* ]]; then
echo "还未有人挑战,稍等5秒再次检测"
sleep 5
c
elif [[ "$t" == *"输了"* ]]; then
echo "本次吹牛失败,输了$m妖精,继续$b倍投"
m=$(echo "scale=0; $m*$b/1" | bc)
elif [[ "$t" == *"赚了"* ]]; then
echo "本次吹牛获胜,赢了$(echo "scale=0; $m*1.9/1" | bc)妖精"
m=$i
fi
k
}
s=$(curl -sik -X POST -H "Host: $l" -H "content-type: application/x-www-form-urlencoded" -d "logname=$u&logpass=$p&action=login&classid=0&siteid=1000&backurl=&savesid=0" "https://$l/waplogin.aspx" | sed 's/;/\n/g' | grep "sidyaohuo" | awk -F "=" '{print $2}')
if [ -z "$s" ]; then
echo "登录失败,请检查id或密码有无错误"
exit
fi
m=$i
k

{/collapse-item}
{/collapse}

{collapse}
{collapse-item label="吹牛倍投盈利后停止"}
shell脚本

#by-莫老师,此脚本适用于本金百万以上用户,本脚本无加密,无后门,允许二开但不得删除原作者信息。不得加密,用户注意不要使用加密过的脚本,并注意账号密码安全
u="13715";#妖火id
p="you password";#妖火密码
######↓高级设置↓######
i="500";#初始投注数额,最低500,不建议太高,太高风险都会成倍上升
y="5000";#止盈数值,盈利达到该数值停止运行。
b="2.12";#倍投倍数,建议2.12-2.30,太高吃不消,2.12起码要有81万本金,2.30起码要有159万本金,倍数低于2.11会亏本,以上数据基于10连不中的情况下得出,世事无绝对,毕竟还有极其微小的概率让你11不连中。如果对自己运气有信心,并且觉得自己不会10连不中,可适当调高倍率,但也不要太高,最好不要高于2.3
q=(2 2 2 1 1);#答案选项权重,两个2一个1代表选项2的概率66.66%,如果要平均就一个2一个1
#根据莫老师吹牛大模型的数据得出答题者出2的概率约为33%,故出题选2的概率较高。
#本脚本仅供娱乐,10连不中的概率极低,约为1‰,但也不代表不存在,长期玩是必输的结局。
#######以下部分不要乱动########
l=yaohuo.me
r=0
w=("%E7%88%B1%E7%94%9F%E6%B4%BB%E8%BF%98%E6%98%AF%E7%88%B1%E5%A6%96%E7%81%AB%EF%BC%9F&answer1=%E7%88%B1%E7%94%9F%E6%B4%BB&answer2=%E7%88%B1%E5%A6%96%E7%81%AB" "%E6%88%91%E6%98%AF%E5%90%B9%E7%89%9B%E5%A4%A7%E7%A5%9E%EF%BC%81&answer1=%E4%B8%8D%E6%98%AF&answer2=%E5%BD%93%E7%84%B6")
k(){
t=$(curl -sk -X POST -H "Host: $l" -H "content-type: application/x-www-form-urlencoded" -H "cookie: sidyaohuo=$s;$f" -d "mymoney=$m&question=${w[$((RANDOM%2))]}&myanswer=$(shuf -e "${q[@]}" -n1)&action=gomod&classid=194&siteid=1000&bt=%E7%A1%AE+%E5%AE%9A" "https://$l/games/chuiniu/add.aspx")
if [[ "$t" == *"输入密码"* ]]; then
f=$(curl -sik -X POST -H "Host: $l" -H "content-type: application/x-www-form-urlencoded" -H "cookie: sidyaohuo=$s" -d "needpassword=$p&siteid=1000&classid=194&sid=$s&go=%E7%A1%AE%E5%AE%9A" "https://$l/games/chuiniu/add.aspx" | sed 's/;/\n/g' | grep "GET$u" | awk -F " " '{print $2}')
k
elif [[ "$t" == *"成功创建"* ]]; then
echo "下注成功,本次下注$m"
elif [[ "$t" == *"妖晶不够"* ]]; then
echo "本金不足,恭喜破产了"
exit
fi
c
}
c(){
t=$(curl -sk -X GET -H "Host: $l" -H "cookie: sidyaohuo=$s;$fk" "https://$l/games/chuiniu/book_list.aspx?type=0&touserid=$u&siteid=1000&classid=194" | sed 's/<\/div>/\n/g' | grep -m 1 "ID<a href=" | sed 's/,被//g' | sed 's/应战,//g' | awk -F "," '{print $2}')
if [[ "$t" == *"进行中"* ]]; then
echo "还未有人挑战,稍等5秒再次检测"
sleep 5
c
elif [[ "$t" == *"输了"* ]]; then
echo "本次吹牛失败,输了$m妖精,继续$b倍投"
m=$(echo "scale=0; $m*$b/1" | bc)
elif [[ "$t" == *"赚了"* ]]; then
echo "本次吹牛获胜,赢了$(echo "scale=0; $m*1.9/1" | bc)妖精"
r=$(($r+$(echo "scale=0; $m*0.9/1" | bc)))
if [[ "$r" -ge "$y" ]]; then
echo "已达到目标妖精停止运行"
exit
fi
m=$i
else
echo "出现异常停止运行"
exit
fi
k
}
s=$(curl -sik -X POST -H "Host: $l" -H "content-type: application/x-www-form-urlencoded" -d "logname=$u&logpass=$p&action=login&classid=0&siteid=1000&backurl=&savesid=0" "https://$l/waplogin.aspx" | sed 's/;/\n/g' | grep "sidyaohuo" | awk -F "=" '{print $2}')
if [ -z "$s" ]; then
echo "登录失败,请检查id或密码有无错误"
exit
fi
m=$i
k

{/collapse-item}
{/collapse}

{collapse}
{collapse-item label="源文件下载"}
{hide}
插件下载
{/hide}
{/collapse-item}
{/collapse}

流量活动

  • 流量畅享季用多少就送您多少,最高送100GB通用流量!:点我直达

领流量活动

以下活动每月可领取一次,50GB咪咕视频定向流量,7天内到账,以短信通知为准,当月有效,活动截止2024年9月30日
以下活动每月可领取一次,流量或话费券有效期为7天,需登陆移动APP兑换,兑换后的流量包为7天包或者日包,活动截止2024年9月30日
以下活动每月可领取一次,2张2G流量包,仅限开通饿了么会员的移动号码领取,流量券有效期为7天,需登陆移动APP兑换,兑换后的流量包为7天包或者日包,活动截止2024年9月30日

{collapse}
{collapse-item label="饿了么丨移动"}
支付宝扫码领取
{/collapse-item}
{/collapse}

以下活动每周可领取一次,仅限开通京东plus会员的移动号码领取,流量券有效期为7天,需登陆移动APP兑换,兑换后的流量包为日包
以下活动在APP领取,咪咕视频需每月领取,流量为定向流量和通用流量(部分地区有通用流量),当月有效,活动截止2024年12月31日;其中移动云盘、移动云手机只需领取一次,每月自动领取,流量为定向流量,当月有效,活动截止2024年12月31日

{collapse}
{collapse-item label="咪咕视频APP"}
打开咪咕视频app,在‘我的’往下拉,点击‘流量超市’→领取(定向为咪咕全系列定位流量,与上面咪咕视频定向流量不冲突)
咪咕视频
{/collapse-item}
{/collapse}

{collapse}
{collapse-item label="移动云盘APP"}
打开移动云盘APP,在‘我的’活动中心或最新活动中领取
移动云盘
{/collapse-item}
{/collapse}

{collapse}
{collapse-item label="移动云手机APP"}
待更新
{/collapse-item}
{/collapse}

刷流量软件

最近想搞台尼康D750相机玩玩,给自己个入门

整理一些网上关于D750的信息

{collapse}
{collapse-item label="先来一个使用说明"}

{bilibili bvid="BV1JW41157D3" page="D750使用说明"/}

{/collapse-item}
{/collapse}

{collapse}
{collapse-item label="关于镜头"}

看看二手吧,新的买不起

二手价格镜头型号镜头类型镜头介绍
尼康35-70 F3.3-4.5风光镜头
380-450尼康50 F1.8D人像镜头Test
600-750AF 70-210mm f4成像画质堪比小钢炮三代,对焦速度有点慢Test
表格表格
表格表格
表格表格
表格表格
表格 Test

{/collapse-item}
{/collapse}

参考资料

  1. 尼康D750产品介绍
  2. 【官方】D750使用说明书 在线预览
  3. 尼克尔镜头术语
  4. 尼康D750使用说明(哔哩哔哩)

驱动

Win10、11 系统联网后会自动下载安装驱动,已经没必要使用第三方驱动更新软件。如果确实需要也可以下载备用:驱动精灵纯净版,硬件检测:鲁大师去广告、 图吧工具箱

激活

激活系统工具可用 HEU KMS Activator,一键激活非常方便,Win7到Win11通用。

(此类软件出现报毒属于正常现象,建议关闭系统自带杀毒软件再使用)

系统更新

如果需要关闭系统自动更新,可以用这个方法:
{collapse}
{collapse-item label="一条命令暂停更新一万天"}
此方法适用于 Win11 和 Win10,无需下载软件,不会影响微软商店使用。

按 Win + X 键选择 Windows PowerShell (管理员)

按右键粘贴这行代码后回车即可:

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t reg_dword /d 10000 /f

Test
之后你就可以在 Windows 更新设置——高级选项里面,选择暂停到10000天后更新了:
Test
如果想恢复,可以随时在这里点击“继续更新”。

相较于使用软件,这个方法更原生、更简单。
{/collapse-item}
{/collapse}

删除3D对象

Win10 资源管理器内的“3D对象”用不到看着不爽,可以运行这个批处理文件删掉:删除3D对象

微软运行库

之后安装微软运行库,不然无法使用各种绿色版软件。
微软常用运行库合集 2024.02.01

输入法

输入法用回了 搜狗输入法去广告精简版,主要是微软自带的词库打字效率低,我没有联网登录搜狗账号,隐私应该没啥问题。
推荐这款极简皮肤:Graphite石墨(来源 GitHub

系统安全软件我用的是火绒,用于取代系统自带的 Windows Defender ,因为它很容易报毒,使用体验不好。火绒的好处是不打扰,占用资源少,没那么敏感,但它的杀毒能力不强,所以要注意电脑使用习惯。杀毒软件 360杀毒极速版 还是挺强的,别装安全卫士就行。
除了火绒,你还可以尝试:微软电脑管家

浏览器

浏览器用的是微软Edge,可直连同步数据,我直接用的官方版,Chrome已经抛弃3年了。当然,Chrome没什么问题,只看你喜欢哪个界面。推荐:自用的浏览器扩展

解压软件

解压软件依然是 BandZip ,用它是因为界面比较漂亮,习惯了。推荐 Bandizip 专业版 (压缩包是便携版,EXE是安装版)
如果 BandZip 用不习惯,WinRAR 烈火汉化版 也是不错的选择。

QQ已经换了最新的去广告版:QQ / Tim / 微信去广告绿色版&安装版
如需备份QQ聊天记录,可直接备份这个文件夹:此电脑——文档——Tencent Files

电报客户端用的是 UWP 应用“Unigram”,它的特色是支持一键翻译文本,以及禁止复制消息的群组可以正常复制。如果你有翻译需求用它就对了。你可以在微软商店搜索安装。

看图软件用的是 FSViewer(蓝奏网盘),用很多年习惯了,免费无广告。
你也可以用 2345 看图王去广告版 ,支持更多图片格式、可以看PDF文件。

音乐播放器是 酷我音乐绿色版,解压后运行“By_Soldier”打开登录就是VIP了,你可以复制“By_Soldier”创建快捷方式放到桌面改名为酷我音乐。
如果你有会员,也可以用QQ音乐去广告绿色版、网易云音乐去广告绿色版

轻文本编辑器用的是 Notepad3,界面美观,内存占用小,安装时可选择替换系统自带的记事本。镜像下载 / 镜像下载2

重文本编辑器用的是 EmEditor 19.1.0,使用场景是打开大量文本文件、超大文本文件,它的加载速度很快,大部分人应该不需要这款软件。

办公套件用的是 WPS 2019 专业增强版,你也可以用 WPS 2023 教考版(提取码52pj)。

视频播放器用的是 PotPlayer 去广告绿色版,这款软件的优点是界面操作比较好用,每个人都可以通过设置满足自己的需求。
字幕字体我推荐“文泉驿微米黑”,电视上观影也可以用这个字体,简洁美观易读。
如果你电脑性能一般,也可以试试:MPV视频播放器

下载工具用的是 IDM ,我是好多年前买的正版,挺值的:IDM 6.39.5 绿色特别版

视频转码、分割、拼接可以用 ShanaEncoder 简单易上手。

BT做种工具用的是 qBittorrent 4.3.5,不玩 PT 的话不推荐用这个,没有下载加速。

日常下载 迅雷11版本其实还不错,资源不限速,审查也没那么严格,推荐这个版本:迅雷11.1.7.1334 绿色版

百度网盘、天翼云盘都可以用:去广告绿色版

文件快速复制工具 用的是 FastCopy,这类软件的作用是复制大量的小文件,以及往速度很慢的U盘里复制文件,都有很明显的提速效果。

本地文件搜索自然是 Everything 便携版,用过都说好系列。官网下载即可:https://www.voidtools.com/zh-cn/

系统垃圾清理推荐 CCleaner,界面漂亮,清理速度快,火绒自带的垃圾清理也不错。

硬盘检测工具推荐 CrystalDiskInfo 单文件版,快速了解硬盘健康状态和参数。

硬盘文件分析软件 WizTree 可以让你快速了解哪些文件和文件夹占用的磁盘空间最多,帮助你手动清理掉那些无用的大文件。

重复图片查找工具推荐 Duplicate Photo Finder ,可帮助你清理近似的照片和重复的图片。

另外推荐一款重复文件查找工具“DuplicateCleaner”,它可以帮你扫描近似的视频、图片、音频,比如视频可以通过抽帧、匹配缩略图的方式排重。下载链接:解锁Pro版(先安装原版程序”DuplicateCleaner-Setup-5.msi”,然后复制“Crack”文件夹内的文件到安装目录替换即可)

文件批量改名我用的是 拖把更名器 ,使用比较简单,首次运行需要管理员权限不然会有错误提示。

手机电脑互传文件/文本,我用的是:LocalSend

显示器亮度快速调整可以用这款非常方便的工具:Twinkle Tray

截图工具用的是 FSCapture,它的屏幕录像功能也不错。一般情况QQ自带截图也够用。这个软件有更多功能和快捷键,但需要学习成本。
很少截图也不用 QQ 的话,可以用 Win10 自带的快捷键“Win+Shift+S”截图。

图片压缩用的是 PPDuck,免费版一次只能压缩 10 张,一般也够用了,建议大家传图片到网站前先压缩一下。

GIF录制

GIF录制用的是 ScreenToGif 单文件版,有时候录个小教程发给朋友,或者发到妖火,都是极好的,清晰度非常好,录制出来的文件也不大。示例:

屏幕录制用的是 Bandicam,首次运行请使用管理员权限。