JoeZhao

Hey, I’m JoeZhao, a software engineer, and a gamer.

在 hugo 中插入游戏信息卡片

起因:受到 https://immmmm.com/hugo-shortcodes-douban/ 的启发,看了一下也不是特别复杂,简单仿照了一下,获取游戏数据并展示。 目前支持游研社的链接(数据相对比较全,也比较好获取),后续有空的话可能会考虑一下支持一下 Steam 商店 之类的平台。 代码不复杂,直接开源了:gameinfo-api 框架使用的是 expressjs,使用起来并不复杂,直接看文档吧。 顺便撸了一个免费的 Node 服务:https://gameinfo-api2.onrender.com,限制如下: 每月 100G 流量 每月 750 小时的时候时间 超过 15 分钟没有流量的话,服务会被睡眠,睡眠后如果重新收到请求,服务冷启动的时间可能需要 30s 或者更长的时间 如果不嫌弃的话,可以直接使用以上的 URL。 使用方法和案例如下: hugo 的 shortcode 和 CSS 在此:https://gist.github.com/bobolo2ex/7ffd163cc99d7891c8c362b19b632b34 <!-- shortcode --> {{ $dbUrl := "https://gameinfo-api2.onrender.com/" }} {{ $dbID := replaceRE `.*yystv.cn/g/([0-9]+)/.*` "$1" (.Get 0) }} {{ $db := getJSON $dbUrl "yys/v1/" $dbID }} {{ $score := div (int $db.score) 10.0 }} <div class="post-preview game"> <img referrer-policy="no-referrer" loading="lazy" class="post-preview--image" src="{{ $db....

January 31, 2023

Test  [draft]

游戏数据获取失败 《》作者: / / 导演: / 片长: / 类型: / 导演: / 片长: / 类型: / 战场女武神4 7.4 发售时间: 2018-03-21 产商: 世嘉 动作 角色扮演 策略 一座正被战争的怒火吞噬的大陆! 《Valkyria Chronicles 4》与初代《Valkyria Chronicles》设定在同一时期,但故事将聚焦在联邦某E小队的士兵身上。Claude Wallace指挥官与他的童年好友将投身于一场绝地反击,但凛冽的暴风雪,如潮的帝国士兵与女武神的天生神力将是他们赢得胜利的巨大阻碍。 BLiTZ战斗系统与CANVAS图形引擎盛大回归! 游戏特色 战争年代的成长故事 以意志坚定的年轻指挥官Claude Wallace、工程师/重型武器专家Riley Miller、性格冲动的Darcsen Raz、冷若冰霜的神射手Kai Schulen等角色的身份展开故事。他们将一同体验战争的痛苦现实——以友谊之力作为纽带的E小队能否在冰冷的战场上生存下来? 次世代的"BLiTZ"战斗系统 融合俯视角回合制策略、角色扮演和实时第三人称射击游戏元素的"BLiTZ"战斗系统重回战场。 加入了新的游戏元素,如使用爆炸物的全新职业“投弹手”,多种攻防兼具的飞空艇支援选项,以及单位在濒死状态可能触发“拼死一搏”动作。此外,与帝国的威胁交战的舞台也将是史无前例庞大的全新地图。 CANVAS绘制风格 系列标志性的手绘画风回归,并为全新世代进行了全面革新。CANVAS图形引擎的创意来自水彩画作,将真实与幻想的视觉元素结合起来,呈现出风格明晰、色彩斑斓的世界。像观赏互动绘画一样见证E小队的旅程吧! 传奇音乐制作人的回归 初代《Valkyria Chronicles》以及多款经典作品的作曲者,极具感染力的崎元仁先生将回归,为本作创作宏大的交响风格配乐。 为PC版特别优化 4K分辨率、可自定义的键盘与鼠标操作,甚至包括超宽屏支持。还包括成就与Steam集换式卡牌支持。 星之卡比 探索发现 9.1 发售时间: 2022-03-25 产商: 任天堂 / HAL Laboratory 动作 《星之卡比 探索发现》是星之卡比系列第35作,正作第15作,也是系列首款3D动作游戏。 《星之卡比》系列最新作的舞台,是融合了文明和大自然的未知“新世界”。吸入,吐出,飞翔,复制,在有立体纵深的3D关卡中,使用卡比的熟悉动作自由地来回探索冒险。 ◆为了救出瓦豆鲁迪前进 为了救出被神秘敌人“野兽军团”俘虏的瓦豆鲁迪们,卡比开始了冒险。在各个关卡中,一边与野兽军团战斗、解开难题,一边为救出受困的瓦豆鲁迪们,向终点前进! ◆新的复制能力“钻击”和“探巡队” 除了熟悉的复制能力会以3D动作重生,还有全新的复制能力:可以潜入地底的“钻击”,以及射出星之子弹的“探巡队”,也会登场! ◆使用卡比和头巾瓦豆鲁迪来2人协力游玩 只要分享Joy-Con,便可以使用卡比和头巾瓦豆鲁迪2人来探索新世界!

January 30, 2023

Switch Emulators Guide

Ryujinx 指引 该指南将分为几个部分。您可以使用目录轻松找到您需要的部分。 如果想要更详细的内容,可以直接参考 Ryujinx 的官方文档 here 如果按照本指南进行操作后仍有问题并需要帮助,请加入我们的 Discord 服务器提问. 你可以在这里加入: Discord 下载说明(重要) 您下载的大部分(不是全部)内容都将采用压缩格式 (例如 .7zip, .zip or .rar). 你需要安装解压缩软件才可以使用。例如 7zip 和 WinRAR 目录 一、安装模拟器 二、安装 Keys 和固件(Firmware) Keys Firmware 三、安装游戏、更新以及DLC Loading Games into Ryujinx Loading Updates and DLCs 四、模拟器性能优化 Settings for all GPUs Nvidia GPU settings AMD GPU settings Intel GPU settings 五、安装模组(Mods)、存档(Saves)和着色器(Shaders) Mods Shaders Saves 六、杂项 Fixes for errors 一、安装模拟器 (可选) 你可以在 https://ryujinx.org/download 下载到最新的稳定发行版本. (可选) Github Source (手工编译): https://github....

January 18, 2023

Read and Parse JSON With Rust

主要讲讲 Rust 是如何处理 JSON 格式/文件的。 我的需求主要如下: 从一个远程地址下载 JSON 文件,保存到本地 读取这个 JSON 文件 对这个 JSON 文件内容进行搜索匹配 返回搜索结果 本文章的内容主要是集中讲讲第 2 步的内容。 首先需要解析 JSON 格式如下: { "0100000011D90000": { "bannerUrl": "https://img.../37fdb...f83a.jpg", "category": [ "Adventure", "RPG" ], "description": "Welcome to the Sinnoh region! ", "developer": null, "id": "0100000011D90000", "isDemo": false, "language": "en", "name": "Pok\u00e9mon\u2122 Brilliant Diamond", "nsuId": 70010000039950, "numberOfPlayers": 1, "publisher": "Nintendo", "rank": 30712, "ratingContent": [ "Mild Cartoon Violence", "Users Interact", "In-Game Purchases" ], "size": 7334789120, "version": 0 }, ....

July 19, 2022

Rust 基本知识

更多是从一个前端开发者的角度,来比较一下两门语言的区别,以助于更方便的入门。 基本类型(DataType) 多数情况下,基本类型直接代表了最底层的语言实现。 JavaScript 是弱类型,基本数据类型有以下 7 种: String Number BigInt Boolean Symbol ( ECMAScript 2016 新增 ) null undefined Rust 是 静态类型 ( statically typed ) 语言,也就是说在编译时就必须知道所有变量的类型。每一个值都属于某一个 数据类型 ( data type ),这告诉 Rust 它被指定为何种数据,以便明确数据处理方式。基本都属于两类数据类型子集:标量(scalar)和复合(compound)。 Integer (整数类型) 位长度 有符号 无符号 8-bit i8 u8 16-bit i16 u16 32-bit i32 u32 64-bit i64 u64 128-bit i128 u128 arch isize usize 每一个有符号的变体可以储存包含从 $-(2^{n-1})$ 到 $2^{n-1}-1$ 在内的数字,这里 $n$ 是变体使用的位数。所以 i8可以储存从 $-(2^7)$ 到 $2^7-1$ 在内的数字,也就是从 $-128$ 到 $127$ 。无符号的变体可以储存从 $0$ 到 $2^n-1$ 的数字,所以 u8 可以储存从 $0$ 到 $2^8-1$ 的数字,也就是从 $0$ 到 $255$。...

July 14, 2022

Switch 第三方自制工具列表  [draft]

如果不想研究的话,可以直接看这三个的整合工具(下载解压即可使用): DeepSea - All-in-One 工具包,有三个版本可以选择 ShallowSea - All-in-One 工具包,带商店 SDSetup - 可以自定义你需要的 CFW 工具 其他版本的整合工具 NeutOS StarDustCFWPack AtmoPack-Vanilla(有整合签名) rashevskyv RR_RetroReloaded Void-NX 唠叨几点: 开源软件几乎都是无收入来源的,条件允许的话可以适当赞助开发者,为爱发电。 工具版本可能跟系统版本有互相以来关系,如果出现闪退、报错,属于正常情况。 这个列表只是整理,因所有的操作都需要一定的技术基础,因操作失误导致的各种后果,本人不负任何责任。 任何利用第三方工具谋利的行为跟本人无关,建议直接举报。 如果你要通过搜索内存来修改数值的话,SD 卡不建议使用 exfat(出错概率太高了) 分类目录 【应用商店】 【关联绑定 Nintendo Switch ID】 【档案编辑管理】 【档案传输】 【游戏修改】 【游戏存档备份+转移】 【系统工具 for 大气层】 【系统工具 for SX】 【主机内档案转存】 【连接其他品牌无线手柄】 【网路应用】 【其他辅助】 【模拟器】 ============工具删除须知============ 放了一堆工具,不想要必须删除乾淨,要整理前请参考 # 大气层(Atmosphere) SDcard/atmosphere/contents 文件夹说明,删除前请确认 00FF0000000002AA : bootsoundnx 00FF0000636C6BFF : sys-clk 00FF747765616BFF : sys-tweak 01000000000000XX : 尾数 “08.32.34.36.37” 都是大气层系统组件,均不可删除 0100000000000038 : Noexes(制作金手指) 010000000000003C : Kosmos v16....

April 28, 2022

WordPress 如何禁止明文传输用户名密码,防止中间人攻击

虽然全站已经 HTTPS 了,但是因为某些原因,不允许明文传输用户名密码,也就意味着需要在客户端做一层加密,然后在服务端解密。 了解下来只能选择 RSA 的方式了。 准备工作,首先需要生成秘钥: # 生成 1024 位的 RSA 私钥 openssl genrsa -out key.pem 1024 # 导出相对应的公钥 openssl rsa -in key.pem -pubout -out pubkey.pem # 复制出来备用 cat key.pem cat pubkey.pem 打开 wp-login.php 文件,将以下代码补充到 loginform 后面,我是放在 $login_script 后面。 主要是为了捕获登录表单,在 submit 的时候,把 user_login 和 user_pass 各自加密后再发送到服务端。 <script src="https://cdn.jsdelivr.net/npm/jsencrypt@3.2.1/bin/jsencrypt.min.js" type="text/javascript"></script> <script type="text/javascript"> (function($) { var user_pass = $("#user_pass"); var user_login = $("#user_login"); var loginform = $("#loginform"); var sign = '公钥'; var encrypt = new JSEncrypt(); encrypt....

April 15, 2022

定时检查 unraid 网络情况,并重启

主要是为了解决机器不知道为啥突然掉 ip 的问题,就写了一个简单地监测脚本。 这是一个简单的小技巧,直接使用 unraid CA 的 User Scripts Plugin 即可。 新建一个 Script, 名字简介随便填,Script 内容如下: #!/bin/bash ping fun2ex.com -c 1 >/dev/null if [ $? -ne 0 ];then # powerdown -r echo `date` powerdown restart >> /tmp/powerdown_logs.txt fi 检查时间选手动,按照 cron 的规则添加即可,考虑到阵列关机的时间,我这里设定了 30 分钟检查一次。 # cron setting */30 * * * * –EOF–

March 24, 2022

解决华擎 Z370M-Pro4 主板在 Unraid 无法获取风扇转速

主板型号:华擎 Z370M-pro4 安装了「Dynamix System Temperature」却发现怎样也获取不了主板的温度和风扇的转速。 经过一番资料搜索,大致确定问题如下: Dynamix System Temperature 非商业应用,实际上能够校验的主板不多 coretemp 不支持 ITE IT8686E Super IO Sensors 华擎的部分主板是 nct6683 感应器,只能通过手动加载 mod 处理 知道了问题,那么解决起来也简单,打开终端手工加载一下驱动即可: $ modprobe coretemp $ modprobe -r nct6683 $ modprobe nct6683 force=1 然后回到 了「Dynamix System Temperature」 看看是不是已经可以正常了。 –EOF– 参考资料: 温度检测插件无法检测到主板风扇的转速 Unraid插件篇—重点解决ITE IT8686E芯片驱动无法获取阵列风扇信息

March 16, 2022

解决 Unraid 在关机的之后无法 unmout NFS 的问题

先说一下场景: 主机安装了 unraid 6.9.2 开了一个虚拟机跑黑群晖, 并直通了一个网口+两块硬盘 unraid 通过 Unassigned Devices 来挂载黑群晖的硬盘, 使用 NFS 协议 问题: 想更换硬盘的时候, 直接点停止阵列, 等了大半天都没有停止成功。 检查了一下系统日志, 发现一直卡在 Unmounting Remote SMB/NFS Share 不成功, 并且一直在重试。 造成这个问题的原因是因为黑群晖也是跑在 unraid 上面的, 停止阵列的操作会优先把 Docker 和虚拟机服务优先关闭掉, 导致 NFS 链接失去响应无法正常 Unmoun。 搜索了一下发现好多人都碰到过类似的问题:NFS 服务器某些原因断网后, NFS 客户机无法 umount 直到最新的 nfsv4 都是这样子, 所以会造成进程一致卡住在重试。 解决办法有以下两种: 更换成 SAMBA, SMB 无法卸载不影响关机,不会造成假死。 在关机前, 手动在 Unassigned Devices umount 所有已经挂载的 NFS mount, 或者可以打开终端运行 umount -l /mnt/remotes/* 强制卸载所有 NFS umount. 剩下在问题就是如何把方案 2 改成自动化,不需要每次去手工执行,在 unraid forums 看到一个解决方案:...

March 8, 2022