白嫖worker 自建短链服务 Url-Shorten-Worker 优化已保存数据的列表的显示 (2/2)

上一篇, 我们找到了合适的代码来显示不同类型的内容. 有的是大段文字, 用textarea来显示; 有的是图片, 用img来显示. 但是我们使用一个怎样的代码结构呢? 我想了一下准备这样: 1. 把不同的显示方式包装为不同的函数, 放到 main.js 中. 如: function buildValueTxt(longUrl) {} function buildValueImg(longUrl) {} function buildValueTxtarea(longUrl) {} 2. 设置一个函数变量, 在不同的 index.html 中, 赋值为不同的函数, 如: 在短链的 index.html 中 buildValueItemFunc = buildValueTxt 在 Pastebin 的 index.html 中 buildValueItemFunc = buildValueTxtarea 在图床的 index.html 中 buildValueItemFunc = buildValueImg 3. 在 main.js 中, 使用同样的代码逻辑: // 长链接信息 Long url child.appendChild(buildValueItemFunc(longUrl))

白嫖worker 自建短链服务 Url-Shorten-Worker 优化已保存数据的列表的显示 (1/2)

在 短链系统, 网络记事本系统, 图床系统 中, 已保存数据的列表的显示方式 需求是不同的. 记事本系统, 应该用一个多行文本框来显示 value. 如下: 图床系统, 应该以图片的形式显示 value. 如下: 短链系统就是原来的显示方式. 以文本形式显示全部value即可. 代码已经有了. 功能也是对的.  现在问题是, 怎么合理的设计代码结构, 让 worker.js 里面的配置项可以控制列表的显示方式. 设置什么系统的配置项是在 worker.js 里面. 最多还有一项, 控制加载哪个 index.html 但是实现列表显示的功能在 main.js 里面.  main.js 这个文件在 Github 上. 在 index.html 文件里面指定加载. 如果把 main.js 的文件内容搬出来放到 index.html, 然后不同的系统使用不同的 index.html , 小改一下 JS 代码的逻辑, 实现显示效果的差异.  这样是能够实现效果没错, 但 main.js 里面大段相同的代码要复制到每个 index.html 里面, 太不优雅了.  如果以后, 相同部分的代码需要修改, 那就是霰弹枪伤, 要打开这么多个index.html一个一个的改, 如果改错了, 漏掉了, 就有问题了. - To Be Continued

白嫖worker 自建短链服务 Url-Shorten-Worker 变身图床 Image Hosting 优化使用界面

需求 上一步我们已经实现了图床的核心功能 , 保存和读取数据. 但是为了把图片转换为Base64数据, 还要 另外开一个页面 , 这也太... 所以我们把这个页面"借鉴"到自己图床的操作页面上.

白嫖worker 自建短链服务 Url-Shorten-Worker 变身图床 Image Hosting 基于base64编码

需求 在 NodeSeek 上发贴, 是要自备图床的. 我们已经实现了单纯的KV数据库 . 那么, 同样的原理, 图床不就是一样的事情吗? 发给系统一个path, 系统还给你一个图片的数据.

白嫖worker 自建短链服务 Url-Shorten-Worker path为 'password' 时 让查询结果为空

问题 今天调试 Pastebin 发现一个bug, 如果直接把path改为'password', 就会显示KV中的密码. 以前短链系统的时候, 因为短链系统会把查出来的value做302跳转, 而密码并不是一个网址, 在跳转时就会出问题, 所以就没有暴露这个bug.

白嫖worker 自建短链服务 Url-Shorten-Worker 变身网络记事本 Pastebin 优化界面

Url-Shorten-Worker 原作者本来就设计了可以支持不同的主题. 其实就是加载不同的index.html 默认是空, 也就是加载默认的 Repo 根目录下的 index.html 我们在 theme 下新建一个目录, pastebin, 再把 index.html 复制一份进来, 以此为基础做一些修改. 因为如果是当网络记事本PasteBin使用的话, value常常遇到大段文字的情况, 所以我修改为 textarea 元素. 最终效果如下, ======== 完 Github:  https://github.com/crazypeace/Url-Shorten-Worker 演示站:  https://pastebin.icdyct.cloudns.asia/tieludasiliqiuweiyue  

白嫖worker 自建短链服务 Url-Shorten-Worker 保护password

需求 有PR提到, password应该要保护起来. https://github.com/crazypeace/Url-Shorten-Worker/pull/6 也有评论提到, 要避免显示password.

白嫖worker 自建短链服务 Url-Shorten-Worker 优化-count显示

需求 当 visit_count 和 load_kv 同时打开的时候, 会显示出这样的结果. 评论也提到希望隐藏.

一键脚本获取本机 IP 以及用gh-proxy访问 Github 的通道

经常在各TG群里看到各种一键脚本用户有检测IP与域名解析不匹配的反馈 这样的原因 常常是因为 脚本中检测IP的方法失效了. 在 233boy 的群中受到启发. 我有一个想法. 对各脚本的作者发起一个倡议, 使用统一的 本机IP 的变量名. _FQ_IP_ 使用统一的IP栈变量名. 值为4表示使用IPv4, 值为6表示使用IPv6. _FQ_NET_STACK_  在脚本中, 检测本机IP之前, 先判断这个环境变量是否为空. 环境变量非空, 则不检测本机IP. 示例, get_ip() {   if [[ -z $_FQ_IP_ ]]; then      if [[ $_FQ_NET_STACK_ == "4" ]]; then       _FQ_IP_=$(curl -4s https://www.cloudflare.com/cdn-cgi/trace | grep -oP "ip=\K\S+")       [[ -z $_FQ_IP_ ]] && echo -e "\n 检测本机IP失败\n" && exit     elif [[ $_FQ_NET_STACK_ == "6" ]]; then        _FQ_IP_=$(curl -6s https://www.cloudflare.com/cdn-cgi/trace | grep -oP "ip=\K\S+")       [[ -z $_FQ_IP_ ]] && echo -e "\n 检测本机IP失败\n" && exit     else       _FQ_IP_=$(curl -s https://www.cloudflare.com/cdn-cgi/trace | grep -oP "ip=\K\S+")       [[ -z $_FQ_IP_ ]] && echo -e "\n 检测本机IP失败\n" ...

白嫖worker 自建短链服务 Url-Shorten-Worker 变身网络记事本 Pastebin 托管你的翻墙节点订阅

需求 相信大家已经用过很多网络记事本的应用了. 比如:  https://gist.github.com/ https://pastebin.ubuntu.com/ 其实我很早就有这样的想法. 短链服务本质上就是输入一个Key, 返回一个Value. 只不过多做了一步, 把Value当作目标网址, 自动跳转. 那么如果我们不做跳转呢? 仅仅是显示Key对应的Value, 那么就是一个简单的网络记事本了.

白嫖worker 自建短链服务 Url-Shorten-Worker 增加读取Cloudflare KV 中全部记录的功能

需求 饮食健康 2024年1月2日 GMT+8 03:52:00 希望能添加从cloudflare查询以往添加的短链接的功能,不然如果清除了浏览器缓存或在另一台电脑上想要查询和管理短链接的话必须登录cloudflare才行,比较麻烦。 我一开始设计这个短链系统的时候, 是作为可以和熟悉的人共同使用的, 所以我使用浏览器的localStorage的好处是, 每个人都只看到自己添加过的短链. 不会互相干扰, 我后来添加了删除短链的功能, 你也不会误删别人的短链. 但是, 既然有人特别提出来了, 那么我再想想, 如果这个系统是只给我自己一个人用呢, 那么这个读取KV的需求是合理的.

更新 CCAA 一键脚本中的 Aria2 v1.37.0 / FileBrowser v2.26.0 / AriaNg v1.3.7

我一直使用的是一个 修改版的 Aria2 一键脚本 , 它自带 AriaNG 和 Http 服务器的部署, 与搭梯子用的 Caddy/Nginx 不冲突. 博客以前写过部署的教程. https://zelikk.blogspot.com/2022/01/vmess-websocket-tls-caddy-nginx-aria2-ariang-filebrowser.html 感谢 原作者 xiaoz 我在此基础上做了一些小优化. 现在安装完, 命令行提示的链接直接用浏览器访问就设置好RPC密码了. 新的一年了, 把 Aria2, AriaNg 和 FileBrowser 都更新一下版本.