博文

目前显示的是 2025的博文

油猴脚本 nodeseek 论坛 mop 表情包

图片
补档 https://www.nodeseek.com/post-60138-1 基于nodeseek论坛的插件 贴子 https://www.nodeseek.com/post-68803-1 脚本: https://greasyfork.org/zh-CN/scripts/487482 添加一段 // MOP 表情包来自 https://www.253874.net/ "MOP包子": {"name": "MOP包子", "type": "gif", "items": ["001", "002", "008", "010", "011", "020", "023", "027", "029", "046", "049", "050", "051", "092", "098", "101", "103", "110", "180", "200", "233", "253", "874"], "baseUrl": "https://www.253874.net/face"}, 合成后的成品脚本: https://github.com/crazypeace/NodeSeek-MOP-face/raw/main/NodeSeek-MOP-face.user.js 效果

Xshell 将选定的文本自动复制到剪贴板 像windows的cmd一样

图片
Xshell 菜单: 工具 - 选项 Tab页: 终端 Check box: 将选定的文本自动复制到剪贴板 因为 Xshell 中操作终端, 一般 Ctrl+C 是用于中断当前任务, 不是复制文本. 我用过一段时间 Ctrl+Shift+C 来复制文本. https://zelikk.blogspot.com/2024/12/xshell-ctrlshiftc-ctrlshiftv.html 也不是不行, 不过同时按住两个功能键 Ctrl Shift 会更累手. 如果一天操作键盘很多的话, 是会觉得累的. 所以我改用这个鼠标选择就自动复制的功能. 就像windows的cmd中一样. 我想, 有可能很多人还更习惯这样一些. 不过, 带来的副作用就是不能没事拿鼠标点来点去拖来拖去框来框去. (偷笑

我的RSS软件 Overcast Feedly Newsify Folo

播客:     数据 和软件 都是 Overcast 优点是:  免费, 免费就有 智能跳过空白, 人声增强 分享链接可以带当前时刻 文字:   数据在 Feedly , 软件 用  Newsify 优点是: 免费. 网页版用 Folo 有一些内容没有特别好的RSS源, Folo里能较好地订阅.  如: 浮世汇 rsshub://dapenti/subject/184 煎蛋无聊图 rsshub://telegram/channel/jandan_pic 我是用RSS订阅一些更新时间并不确定的独立博客. 经常有几个月不更的那种. 我觉得对于独立博客来说, RSS是必不可少的基础技术. 我有一些RSS订阅在这里分享过 有人想我分享一些独立博客.  我想了一下, 其实这种口味是非常个人的. 我干脆把自己的全部订阅放在这里 https://github.com/crazypeace/CZ-RSS/raw/refs/heads/main/feedly-2025-11-01.opml 如果你看到了共鸣, 就当作是看到了同类. 如果你看到了异类, 就当作是看到了"疫苗". 对于RSS新手, 我推荐几个信息类的源吧. 喷嚏图卦 https://feedx.net/rss/pentitugua.xml 月光博客 https://www.williamlong.info/rss.xml 阮一峰 http://www.ruanyifeng.com/blog/atom.xml 娱乐类 福利吧 https://fuliba.net/feed 煎蛋 https://jandan.net/rss

用Stylebot插件 修改blogger编辑器宽度 隐藏右栏

图片
Stylebot https://chromewebstore.google.com/detail/stylebot/oiaejidbmkiecgbjeifoejpgmdaleoha 思路基于 上一篇 用Stylish插件修改blogger编辑器宽度 我今天有个想法, 专心写的时候, 右边栏那些 东西我其实不关心. 不如把它们隐藏起来好了.  这样我的编辑区域又能变大一点. 经过一番 F12 工具的使用. 最终结果 www.blogger.com/blog/*/edit/* /* 左栏撑满 */ .fmzcZd {     padding-right: 20px; } /* 编辑区最大化 */ .a89Sje {   max-width: 100%; } /* 右栏隐藏 */ .vW7mGd {   display: none; } 使用效果如下 尾巴 其实对我来说, 还不算 完美.  因为工具栏 还是有个 ...  但实际上的宽度是够的 Github https://github.com/crazypeace/blogger-editor-css

用Stylebot插件 修改blogger编辑器页面 显示被折叠的工具栏按钮

图片
前言 书接上文 我们已经隐藏了bloger编辑器的右栏 但工具栏在空间足够的条件下, 还是产生了折叠分栏. 本文就来解决这个问题. 分析 通过 F12 开发者工具, 分析 工具栏的 HTML 内容 发现, 就在这个工具栏里面, 有些按钮被隐藏了. 也就是说, HTML内容里是有的, 但是页面上不显示. 面向GPT开发 因为GPT文本输入字数限制, 我们需要将工具栏的HTML内容保存为文件, 再上传给GPT. HTML 环境 我有一个工具栏, HTML内容见文件 工具栏中包含一些按钮 有些按钮是显示的, 有些按钮是隐藏的 我现在需要将工具栏下的所有按钮都设置为显示 要求使用设定页面元素CSS的方式 按钮可能是动态的, 所以不要指定按钮的 class, 而要从按钮与工具栏的HTML层级关系分析. 把上述需求发给GPT, 得到 .Qy5T6b.O3LMFb.QduVPe * {     /* 强制元素显示。display: initial 尝试恢复元素的默认显示类型,通常比强制 display: block 更安全。 */     display: initial !important;          /* 确保元素可见 (覆盖 visibility: hidden) */     visibility: visible !important;     /* 确保元素不透明 (覆盖 opacity: 0) */     opacity: 1 !important;          /* 移除可能导致元素被灰色化或隐藏的滤镜效果 */     filter: none !important; } 实践与调试 在 Stylebot 中设置刚刚GPT给的结果, 得到 可以看到有初步效果, 但是显示得太多了. 继续在F12模式下进行简单的分析. 可以看到 下拉菜单选项啊, 说明文字啊, 都显示出来了. 如果我们限制 只显示到 按钮这一层, 会是什么效果呢? 问了一下GPT CSS语法,  改成这样 .Qy5T6b.O3LMFb.QduVPe ...

CloudCone 512MB内存 丐版VPS DD脚本 重装Debian13

图片
 VPS 配置 CloudCone Hashtag 2022 VPS - 1 1 CPU 512M 内存 用DD脚本重装 Debian13 https://github.com/bin456789/reinstall 21:04   脚本跑完重启  重装系统开始 可以在VPS厂商提供的VNC通道查看重装过程 22:24   新系统 SSH 登录成功 存储空间占用 df -h Filesystem      Size  Used Avail Use% Mounted on udev            214M     0  214M   0% /dev tmpfs            47M  340K   47M   1% /run /dev/vda1        20G  658M    18G   4% / tmpfs           233M     0  233M   0% /dev/shm tmpfs           5.0M     0  5.0M   0% /run/lock tmpfs           233M     0  233M   0% /tmp tmpfs           1.0M     0  1.0M   0% /run/crede...

当检测到关键字 三色图 时 发送贴纸 tg-keyword-react-bot

图片
需求 想做个实验  当检测到关键字 三色图 时 发送贴纸 基础技术 电报 telegram 关键字监控机器人 准备工作 选一个不会影响自己正常使用的小号 来发贴纸 申请 api_id, api_hash https://my.telegram.org/apps 得到 api_id, api_hash 思路 为了不影响现有的关键字机器人, 我们让这个小号关注关键字机器人输出 的频道, 当频道中报告有人在群组中发送"三色图"时, 让这个小号在同一个群组发送贴纸. 面向GPT开发 已经有这样一个频道 会发布这样的关键字监控信息 #FOUND (https://t.me/c/1958152252/300436) "自建" IN Joey Huang Blog(1958152252) FROM jacky jay(5979280761) 自建的节点怎么不能访问X和chatgpt啊 也可能是这样的 #FOUND (https://t.me/LoonCommunity/161393) "大佬" IN Loon Community(@LoonCommunity) FROM Yang Bo(@Zen_Neng_Bu_Bian_Tai) 大佬们,loon怎么在不开梯子的情况下去除广告啊? 需要开发一个telegram机器人 当监控频道中出现"三色图"时, 在源群组中发送贴纸. 贴纸为 https://t.me/addstickers/fuckgfwnewbie 的第1个贴纸 上传Github https://github.com/crazypeace/tg-keyword-react-bot 演示视频 部署 见项目Readme ======== 后记 本次 (2025-11-07) 面向GPT开发, 用到的GPT是 Claude GPT生成的程序有BUG, 获取消息的纯文本 message_text = event.message.message 正确的做法是提取消息的 markdown 文本 from telethon.extensions import markdown message_text = markdown.unparse(event.message.message, event.messa...

极简 GitHub Porxy 支持GitHub脚本的无限嵌套调用

图片
前言 当我看到这个DD系统的项目时 https://github.com/bin456789/reinstall 我被它的安装命令吸引了. curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || wget -O ${_##*/} $_ 找GPT解析了一下原理, 是为了考虑到有些linux系统默认有wget,有些默认有curl . 我准备把 我的极简一键脚本 的安装方式都改成这样 . curl -LO https://github.com/crazypeace/xray-vless-reality/raw/main/install.sh || wget -O ${_##*/}$_ && bash install.sh 4 8443 然后在脚本的一开始, 安装 curl 和 wget. apt-get -y install curl wget -qq 我倾向于显示错误内容, 这样在小白反馈问题的时候, 直接发截图或日志就行了. 所以curl和wget没有加静默参数. 复杂的脚本命令, 在结合我的ghproxy时, 如果要实现嵌套github脚本调用, 现有的方案会比较难处理. 我准备改用 WJQSERVER-ghproxy 的思路. 在ghproxy 本身的处理过程中, 针对  .sh 的资源, 全量查找替换, 把访问github资源的链接, 都再套一次自己 ghproxy. 然后再返回. 新建一个 github proxy 项目名 ghproxy 不影响 原来使用 gh-proxy 的用户. worker.js 我想了一下,  基于 cloudflare 的 woker, 开发 一个专门 反向代理  github 的工具 1. 本代理 接收的 path部分 应该是一个 http:// 或者 https:// 2. 如果 path部分 不是 http:// 或者 https:// 开头 那么加上 http:// 或者 https://  3. 判断 本代理 接收的 链接 是否 github 判断方法为: 链接 的域名部分 应该是 git 开头的主域名 如  github.com...

Hysteria2服务端自签证书 搭建节点时未获取证书指纹 v2ray客户端测试查询证书指纹 pinSHA256

图片
前言 如果你使用Hysteria2服务端自签证书, 搭建脚本/面板没有提供证书的指纹. 而你担心被中间人攻击, 你希望在客户端指定证书的指纹. 那么, 你可以这么做: 1. 如果你能在服务端找到证书 你可以使用 openssl x509 -in 你的证书.crt -outform DER | sha256sum | awk '{print $1}'  或 openssl x509 -noout -fingerprint -sha256 -in 你的证书.crt | sed 's/^.*=//' 得到证书指纹的 hex 编码 . 可以用于 Hysteria2 的客户端配置文件. 详见  https://zelikk.blogspot.com/2025/11/hy2-pinsha256-der.html 你也可以使用 openssl x509 -in 你的证书.crt -outform DER | sha256sum | awk '{print $1}' | xxd -r -p | base64 或 openssl x509 -noout -fingerprint -sha256 -in 你的证书.crt | sed 's/^.*=//' | xxd -r -p | base64 得到证书指纹的 base64 编码 . 可以用于 V2ray 的客户端配置文件. 详见  https://zelikk.blogspot.com/2025/11/hysteria2-v2ray.html 2. 如果你不能(或者不懂)在服务端 找到证书 你可以使用 v2ray 客户端 尝试指定证书指纹连接服务端, 命令行报错信息会提示服务端的证书指纹. 我们以 v2rayN-VLESS 客户端为例. https://github.com/crazypeace/v2rayN-3.29-VLESS/ 支持hy2指定证书指纹的preview打包  https://t.me/FuckGFW_Newbie1/105 导入一个不带证书指纹的 Hy2 分享链接, 如 hysteria2://b4349e3a-55be-39ad-9837-3fb9397a888c@74.48.9.95:2053?insecure=1#HY2_74.48.9.95 ...

Hysteria2 服务端自签证书 V2rayN客户端指定证书指纹 pinSHA256 证书锁定 Certificate Pinning

图片
前言 上一篇我们摸索清楚了 V2ray的客户端配置文件应该怎么写 现在我们在v2rayN的客户端中实现. * 啊, 上一次改动 v2rayN-3.29-VLESS 还是 去年... Hy2 节点的窗体 添加 label 和 textBox (txtPinSHA256) 保存按钮的方法, 添加对 txtPinSHA256 的处理. 相应的 NodeItem 类要添加数据成员. 现在可以测试一下添加节点保存到 guiNConfig.json 文件了. OK. 接下来修改加载 Hy2 节点窗体 AddHy2ServerForm.cs  BindingServer() OK 粘贴生成节点  AddHy2ServerForm.cs ImportConfig() public static NodeItem ImportFromClipboardConfig(string clipboardData, out string msg) OK 生成v2ray配置文件参数 private static int outbound(V2rayNappConfig appConfig, ref V2rayClientConfig v2rayConfig)    private static int boundStreamSettings(V2rayNappConfig appConfig, string iobound, ref StreamSettings streamSettings) 分析得到 public class TlsSettings 定义增加 pinSHA256 这时要参考 V2ray 的文档, 定义成 List<string> 数据成员名也与文档一致 pinnedPeerCertificateChainSha256 再修改 boundStreamSettings() 函数的实现 public class V2rayNappConfig  增加一个函数 public string pinSHA256() 照着上面的 allowInsecure() 的样子写 测试 生成 客户端配置文件, OK 字段原样写入了. 接下来处理 he...

Hysteria2 服务端自签证书 V2ray客户端指定证书指纹 pinSHA256 证书锁定 Certificate Pinning

图片
前言 上一篇我们解决了 Hysteria2 客户端指定证书 现在我们来尝试用 V2ray作为客户端, 指定证书 文档 https://www.v2fly.org/config/transport.html#tlsobject 修改本地配置文件 试试. 报错. 尝试将日志中的  TeddTPwg0va7l8sJsBuTlrK6us6X+7GdxnssJ+JRuso= 写到配置文件中, 如下 测试成功. 分析 其实  4de75d4cfc20d2f6bb97cb09b01b9396b2babace97fbb19dc67b2c27e251baca 和  TeddTPwg0va7l8sJsBuTlrK6us6X+7GdxnssJ+JRuso= 本质上对应的原本的字节码是一样的. 只是前面那个是字节码转 hex, 后面是字节码转 base64. 在 Linux 上要得到 base64 格式的, 可以这样: openssl x509 -in your_cert.crt -outform DER | sha256sum | awk '{print $1}' | xxd -r -p | base64 或 openssl x509 -noout -fingerprint -sha256 -in your_cert.crt | sed 's/^.*=//' | xxd -r -p | base64 其中  | xxd -r -p | base64 的意思是, 从 hex 恢复成字节码, 再转 base64 总结 V2ray 客户端在对接服务端 Hysteria2 协议时, 可以指定证书的指纹, 但是要使用 base64 的形式. 形如, {   "protocol": "hysteria2",   "settings": {     "servers": [       {         "address": "服务.端.IP.地址",         "port": 服务端口       }     ]   },...

Hysteria2 服务端自签证书 客户端指定证书指纹 pinSHA256 证书锁定 Certificate Pinning

图片
前言 最近翻墙圈的氛围是研究服务端自签证书时, 客户端最好固定证书以避免中间人攻击. 理论支持 Hysteria2文档 https://v2.hysteria.network/zh/docs/getting-started/Client/#__tabbed_1_3 Hysteria2 服务端 问GPT, 计算证书的sha256 openssl dgst -sha256 certificate.crt 所以我的就是 openssl dgst -sha256 /etc/ssl/private/learn.microsoft.com.crt 得到 SHA2-256(/etc/ssl/private/learn.microsoft.com.crt)= a178a313215bd1db5f0256a7f56b23e97f00c2f89a7a47e42e36ad67e820131d Hysteria2 客户端 配置文件照着上面文档说的来, 就是 server: 服务.端.IP.地址:服务端口 auth: 密码 socks5:   listen: 127.0.0.1:20888 http:   listen: 127.0.0.1:20889 tls:   insecure: true   pinSHA256:  a178a313215bd1db5f0256a7f56b23e97f00c2f89a7a47e42e36ad67e820131d 命令行跑一下试试. 报错 PS D:\GFW\hy2> .\hysteria-windows-amd64.exe 2025-11-10T12:24:22+08:00       INFO    client mode 2025-11-10T12:24:23+08:00       FATAL   failed to initialize client     {"error": "connect error: CRYPTO_ERROR 0x12a (local): no certificate matches the pinned hash "...

向外访问网络行为次序随机的场景下 预设网络资源 预设替代命令

图片
前言 上一篇 我们处理了 向外访问网络行为次序固定的场景下 预设网络资源 预设替代命令 现在我们来处理 次序随机的场景 典型例子就是 233脚本. https://zelikk.blogspot.com/2025/11/fake-curl-wget-sh.html 我们先在无预设命令的条件下, 执行一遍安装过程. cd fake-curl-wget-sh-main source fake-curl-wget-v2.sh cd bash install-233.sh 然后分析日志. 需求 编辑 __fake_net_common.sh , 添加预设命令. 因为网络访问的次序是随机的, 所以我们只能从网络资源的特征入手. 我们要对 wget --no-check-certificate -t 3 -q -c https://github.com/233boy/xray/releases/latest/download/code.zip -O /tmp/tmp.dO84swIzMs/tmpsh  设置预设命令 cp /root/code.zip /tmp/tmp.dO84swIzMs/tmpsh  结合上一篇的 第几个参数 的经验  再问问GPT 怎么在shell脚本中实现匹配关键字. 得到 if printf '%s\n' "$@" | grep -qE '^http.*code\.zip$'; then     # 有参数是 http开头 code.zip结尾     cp /root/code.zip "$8"     has_preset=1 fi 同样的思路, 处理 xray-linux-64.zip, 处理 jq-linux-amd64 再来处理 wget --no-check-certificate -4 -qO- https://one.one.one.one/cdn-cgi/trace 我们要先判断 包含 one.one.one.one 这个特征, 现进行替换. 得到 if printf '%s\n' "$@" | grep -qF 'one.one.one.one'; then   # 有参数是 包含one...

向外访问网络行为次序固定的场景下 预设网络资源 预设替代命令

图片
前言 上一篇 我们实现了 向外访问网络时暂停 使用者进行替代操作 对于这种向外访问网络行为次序固定的场景下  我们可以预设网络资源 预设替代命令 预设网络资源 刚好利用上一篇我们操作过的环境. * 如果你是从头来的话, 基本上就是把上一篇教程操作一遍. 预设替代命令 打开上一篇的操作日志. * Xshell 可以自动记录日志 参考上一篇操作过程中我们输入的替代命令, 设置到 __fake_net_common.sh 中 如, 序号 1 序号 3 序号 5  我们遇到了一个随机字符的问题, 不能写死预设命令. 我们可以用指定第几个参数的方法. 问问GPT 分析下面这样的命令 curl -L -q --retry 5 --retry-delay 10 --retry-max-time 60 -x '' -sSfLo /tmp/tmp.eNF5Sld6Wm -H Accept:\ application/vnd.github.v3+json https://api.github.com/repos/XTLS/Xray-core/releases/latest  "$cmd" 是 curl "$@" 是curl后面所有的参数 我需要用指定第几个参数的方法 提取其中的 /tmp/tmp.eNF5Sld6Wm GPT帮我数了数, 用 "${13}" 的方法引用. __fake_net_common.sh 修改完后. 试试 source fake-curl-wget-v2.sh bash install.sh 有问题, 会卡死. 检查了一下, 是因为在 case 1) 的里面写了 curl. 这里并没有使用系统原本的curl, 而是调用了假的curl. 我们借用之前的经验.  先去掉假的PATH, 执行curl之后, 再恢复假的PATH. 再试试 source fake-curl-wget-v2.sh bash install.sh 还是有问题. 在 cp /root/xxx  yyy 的部分, 报错非法参数. 那我们就把参数 echo 出来. 再根据日志的打印, 对比 curl 原始命令的参数列表, 发现应该用 "${12}" 用这种方式调试完, 就正常了. 小优化 在 /tmp/f...

The Hot3 in Last 30 Days

酒馆SillyTavern 玩英文角色卡 也能以中文输出 设置世界书Lorebooks

搭 Docker版 Sub-Store订阅转换专家 带 http-meta 实现 集合订阅 测延迟 排序 筛选 生成新订阅 定时任务上传Gist