Coding Activity
Languages
Categories
Coding Activity(Table)
转盘盘
玩具项目,没有接入后台服务
程序截图
![]() | ![]() |
---|
![]() | ![]() |
---|
拼字字
将 scrabble 项目移植到微信小程序平台开发测试,基于 node 服务实现线上联机。未发布。
程序截图
![]() | ![]() |
---|
开发工具集
基于 spring-shell 开发的交互式 cli 程序, 可以轻松拓展功能模块, 应对突发需求
功能 | Features
-
阿里云 OSS 存储:
- 上传本地文件夹到 oss 存储
- 下载 oss 存储到本地
-
GridFs 存储:
- 保存本地文件夹到 gridFs 存储
- 根据正则表达式匹配文件并下载到本地
- 下载顶层数据(b3dm)到本地
- 选择 mongo 库提供 http 访问服务
-
Json 格式化:
- 选择文件夹格式化所有 json 文件
- 选择文件夹压缩所有 json 文件
-
Js 压缩混淆加密:
- 选择文件夹以及处理模式,备份并处理文件夹中所有 js
-
ZKFinger:
- 中科慧指 SDK 的使用
-
...
截图 | Screenshot
![](more//resources/more/shell_tools/1.webp)
![](more//resources/more/shell_tools/2.webp)
- 合理的利用线程池,充分利用计算机资源
![](more//resources/more/shell_tools/4.webp)
![](more//resources/more/shell_tools/5.webp)
check_server
监测提醒程序,根据配置文件检测指定服务,如果服务异常或服务状态在预期外则针对该服务发出通知
配置文件说明
{
"sms": { //阿里云短信服务参数
"ak": "********",
"sk": "********",
"singName": "********",
"templateCode": "********"
},
"http": [
{
"name": "gitlab", //服务名称
"address": "http://gitlab.sunwaywh.top",//服务地址
"interval": 600, //检测间隔(秒),默认60
"expect": [ //预期状态码
200,
301
],
"phones": [ //接收通知手机号
"15272829933",
"13554122184"
]
},
{
"name": "doc",
"address": "http://doc.sunwaywh.top",
"expect": [
200
],
"phones": [
"13554122184"
]
},
{
"name": "index",
"url": "http://www.sunwaywh.top",
"expect": [
200
],
"phones": [
"15272829933"
]
}
],
"tcp": [
{
"name": "mysql",
"address": "106.13.18.102:3306",
"phones": [
"13554122184",
"15272829933"
]
},
{
"name": "mongodb",
"address": "106.13.18.102:27017",
"phones": [
"13554122184",
"15272829933"
]
}
]
}
code_translate
代码翻译工具,使用第三方翻译 api 将代码中的中文翻译为英文
安装和使用 | Install && Usage
# go install
# code_translate -cp ./test -cs .go -ai ************** -ak ************** -tm 1
mode1(all) => test/test.go
模块相关事件执行顺序 -> Execution sequence of module related events
服务端 -> Server
启动服务 -> Start service
停止服务 -> Out of Service
客户端 -> client
客户端启动 -> Client startup
客户端处理消息 -> Client processing messages
客户端处理错误 -> Client processing error
客户端关闭 -> Client shutdown
选项 | Option
-ai string
appid
-ak string
appkey
-cp string
code path (default ".")
-cs string
code suffix
-tm int
translate mode:
0(default)->translate notes only
1->translate all
依赖项 | Dependencies
代码统计 | Code statistics
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
Go 6 462 395 26 41
===============================================================================
Total 6 462 395 26 41
===============================================================================
截图 | Screenshot
![](more//resources/more/code_translate/test.webp)
![](more//resources/more/code_translate/1.webp)
![](more//resources/more/code_translate/2.webp)
logo_generate
logo生成工具,解析ttf字库生成个性化logo
用法和参数
USAGE:
logo_generate [OPTIONS] "LOGO"
OPTIONS:
-f string
输出格式 svg|jpg|png|ascii (default "svg")
-fs string
指定字体风格 atiba|blox|organ|panda|xtrusion (default "atiba")
-o string
保存路径 (default ".")
-r int
排列方向 (0:horizontal,1:vertical,2:cover)
-s int
字体大小,范围限制在 24~1024 (default 24)
-sp int
字体间距 (default 1)
-split
是否拆分到多个文件
-ss string
svg css样式
-ttf string
指定字体文件
内置字体风格
风格 | 示例 |
---|---|
atiba | |
blox | |
organ | |
panda | |
xtrusion |
示例
./logo_generate -fs "organ" -ss "fill:#186A3B;fill-rule:evenodd;stroke-width:1;stroke:#1B2631" -s 128 EDGELOG
![]()
./logo_generate -f "ascii" LOGO ||| +|||||+ +|||||| +|||||+ ||| ||||||||| ||||||||| ||||||||| ||| |||||++|||| +|||||||||+ |||||++|||| ||| +||| |||+ +||||+ +||| |||+ ||| ||| ||| +|||+ ||| ||| ||| ||+ +||+ |||+ ||+ +||+ ||| +||+ +||+ +||| +||+ +||+ ||| +||+ +||+ ||| +||+ +||+ ||| +||+ +||+ ||| +||+ +||+ ||| +||+ +||+ ||+ +||+ +||+ ||| +||+ +||+ +||+ +++ +||+ +||+ ||| +||+ +||+ +||+ ||| +||+ +||+ ||| +||+ +||+ +||+ ||| +||+ +||+ ||| +||+ +||+ +||+ ||| +||+ +||+ ||| +|| +||+ +||+ +||+ ||| +||+ +||+ ||| ||| ||+ +||+ +||+ ||| ||+ +||+ ||| +||| ||| ||| +||+ ||| ||| ||| ||| +|||+ +||| |||+ +||+ ||| +||| |||+ ||||||||||||+ |||||++|||| +|||||||||||||| |||||++|||| |||||||||||+ ||||||||| +|||||||||||||| ||||||||| |||||||||+ +|||||+ +|||||||||||||| +|||||+
meet_lang
经人介绍要去外地相亲,于是做了一份相亲出游计划。
基于 vite+react 开发,依赖 百度地图 sdk
配置 | Configuration
- 系统配置
通过编辑 public/config.json 配置系统信息。文件内容应为如下 Config 对象
密钥可去百度地图开放平台官网申请
export interface Config {
// 页面标题
Title: string;
// 百度地图应用密钥
BmapAk: string;
// 静态资源路径
ResourcePath: string;
}
- 旅行路线配置
通过编辑 public/trips.json 配置旅行路线。文件内容应为如下 Trip 数组
export interface Trip {
// 行程描述
Describe: string;
// 出发地信息
FromInfo: string;
// 出发地名
FromName: string;
// 出发地经度
FromLng: number;
// 出发地纬度
FromLat: number;
// 到达地对应场景数组下标,没有对应场景则为-1
FromScneeIdx: number;
// 到达地信息
ToInfo: string;
// 到达地名
ToName: string;
// 到达地经度
ToLng: number;
// 到达地纬度
ToLat: number;
// 到达地对应场景数组下标,没有对应场景则为-1
ToScneeIdx: number;
}
- 场景配置
通过编辑 public/scenes.json 配置场景信息。文件内容应为如下 Scene 数组
export interface Scene {
// 场景名称
Name: string;
// 图片url
Images: string[];
// 评分
Score: number;
// 位置
Position: string;
// 经度
Longitude: number;
// 纬度
Latitude: number;
// 运营时段
TimeInterval: string;
// 联系方式
Contact: string;
// 来源
SourceUrl: string;
}
代码统计 | Code statistics
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
CSS 1 33 26 0 7
JSON 8 4229 4229 0 0
Markdown 1 86 0 71 15
SVG 1 2 2 0 0
TSX 11 1102 982 35 85
TypeScript 8 419 322 45 52
-------------------------------------------------------------------------------
HTML 1 23 19 1 3
|- CSS 1 7 6 0 1
|- JavaScript 1 2 0 2 0
(Total) 32 25 3 4
===============================================================================
Total 31 5894 5580 152 162
===============================================================================
截图 | Screenshot
![](more//resources/more/meet_lang/1.webp)
![](more//resources/more/meet_lang/2.webp)
![](more//resources/more/meet_lang/3.webp)
![](more//resources/more/meet_lang/4.webp)
jar_pack
一个基于 Golang embed 打包自定义的 jre 和 jar 文件的跨平台打包工具,方便打包 jar 程序进行二进制分发。
使用示例(Java 8 版本环境打包到 Linux x86 下运行)
- 步骤 1: 准备指定版本以及系统的 JRE (可以从 Azul 下载。),并解压到/jre 目录下。
![](more//resources/more/jar_pack/download_jre.webp)
- 步骤 2: 准备需要打包的 JAR(JAR 包要能独立运行 java -jar xxx.jar),重命名为 app.jar。
mv your-app.jar app.jar
- 步骤 3: 打包 Java 程序依赖的本地库,并解压到/lib 目录下。(可选)
mv xxx.dll lib/
mv xxx.so lib/
- 步骤 4: 编译
GOOS=linux GOARCH=amd64 go build -o app
运行
运行(./app),或者指定 jvm 参数运行(./app --spring.config.location=./application.yml)
Windows 系统特殊说明
为了在 Windows 平台上指定应用程序的图标,可以使用 rsrc 工具将图标嵌入到可执行文件中。
- 查找 ico 图标
图标保存到程序同级目录 favicon.ico
- 新建程序描述文件 app.manifest ,写入以下初始内容
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="SomeFunkyNameHere" type="win32"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
</dependentAssembly>
</dependency>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
- 生成资源嵌入文件 rsrc.syso
rsrc -manifest app.manifest -o rsrc.syso -ico favicon.ico
- 在 Windows 系统下,可以通过在编译时加入参数 -ldflags="-H windowsgui" 来隐藏黑窗口。
go build -ldflags "-s -w -H=windowsgui"
- 双击 exe 文件即可运行。
![](more//resources/more/jar_pack/jcef_browser.webp)
剪裁 JRE
Java 9 引入的一项功能,用于创建自定义的 JRE。这个自定义 JRE 只包含应用程序运行所需的模块,从而减少了体积
- 分析依赖
首先,使用 jdeps 工具来分析你的 JAR 文件,确定需要的模块。假设你的应用程序 JAR 文件名为 app.jar,你可以运行以下命令:
jdeps --list-deps app.jar
- 创建自定义 JRE:
根据 jdeps 的输出,使用 jlink 创建自定义 JRE。例如,假设你的应用程序需要以下模块:
java.base java.logging
jlink --module-path $JAVA_HOME/jmods --add-modules java.base,java.logging --output custom-jre
运行原理
$JAVAW||$JAVA -Djava.library.path=$LIB -jar $JAR $ARGS...
水印助手
用于高效处理图片水印的 GUI 工具,基于 walk 实现 Windows GUI 界面,使用imaging 进行图像处理。
![](more//resources/more/watermark_helper/preview.webp)
使用 | Use
- 双击运行程序,打开主界面
- 点击 "添加" 按钮或者将文件或文件夹拖动到任务列表中添加任务
- 选择水印图片,调整参数并实时预览水印效果
- 点击 "开始" 按钮开始添加水印到图片上
- 程序会自动在后台多线程处理任务,并在任务进度完成后提示
截图 | Screenshot
![](more//resources/more/watermark_helper/done.webp)
编译 | Build
rsrc -manifest main.manifest -ico watermark.ico -o rsrc.syso
go build -ldflags="-H windowsgui"
依赖项 | Dependencies
下载 | Download
chatgpt_proxy
chatgpt 代理工具,将 chatgpt 的能力拓展到钉钉机器人,微信客服等平台
用法 | Use
编译
go build
参数 | Arguments
-h help
-p int
服务端口 (default 9999)
-ck string
chatgpt 密钥
-cm string
chatgpt model 参数 (default "text-davinci-003")
-cmt int
chatgpt max_tokens 参数 (default 512)
-cst int
chatgpt 会话超时时间 (default 360)
-ct float
chatgpt temperature 参数 (default 0.9)
-wa string
微信对话开放平台 开放API APPID
-we string
微信对话开放平台 开放API Encoding AESKey
-wt string
微信对话开放平台 开放API Token
依赖项 | Dependencies
- 公网 ip 服务器,网络通畅(openai & dingtalk & weixin )
- openai api key
- 钉钉开放平台
- 微信对话开放平台
代码统计 | Code statistics
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
Dockerfile 1 16 11 1 4
Go 13 1335 1011 159 165
JSON 2 16 16 0 0
Makefile 1 16 11 0 5
-------------------------------------------------------------------------------
Markdown 1 203 0 141 62
|- JSON 1 8 8 0 0
(Total) 211 8 141 62
===============================================================================
Total 18 1586 1049 301 236
===============================================================================
截图 | Screenshot
![](more//resources/more/chatgpt_proxy/1.webp)
![](more//resources/more/chatgpt_proxy/2.webp)
Git 提交消息生成器
ai 生成 git 提交消息的命令行工具。
![](more//resources/more/gemini_commit/gct.webp)
功能 | Features
- 基于 Gemini Api 根据 Git 差异生成提交消息。
- 提供交互式命令行界面,带有清晰的指导。
- 支持多种语言的提交消息
用法 | Use
编译
go build -o gct main.go
运行
运行编译后的二进制文件以启动:
gct
详细模式
gct -v
![](more//resources/more/gemini_commit/gct_v.webp)
enter 确认并提交
r 重新生成提交消息
k 设置 API 密钥
l 修改使用的语言
p 设置网络代理
i18n_gen
使用 DeepL api 生成 i18n json 文件的工具。
![](more//resources/more/i18n_gen/i18n_gen.webp)
Features
- 针对 i18n-next 格式设计,识别并保留文本中的占位符
- 利用 DeepL 服务翻译 JSON 文件中的文本,并保持其结构不变
- 翻译过程中的异常间隔处理,保证程序平稳运行
用法 | Use
编译
go build
运行
运行编译后的二进制文件以启动:
i18n_gen [-h] [-server <deeplx_server_addr>] [-token <deeplx_access_token>] [-source <source_language>] <work_dir>
命令行标志
- -h:显示帮助信息
- -server:设置 DeepL 服务器地址(默认值:http://localhost:1188)
- -token:设置 DeepL 访问令牌(可选)
- -source:设置源语言(默认值:zh)
- <work_dir>:指定包含 i18n JSON 文件的工作目录
依赖项 | Dependencies
其他注意事项
- 该工具假设 i18n 文件具有特定的 JSON 结构。
- 参考 DeepL 文档以获取有关其 API 和使用准则的更多信息。
image2webp
用于将指定目录下的图片文件转换为 WebP 的命令行工具
![](more//resources/more/image2webp/image2webp.webp)
功能 | Features
- 支持多种图像格式:PNG、BMP、GIF、JPEG、JPG
- 可调整输出质量(0-100,默认为 70)
- 可调整图像大小(例如,0.5 表示将图像缩小为原来的一半,默认为 1.0,不调整大小)
- 并行处理多个图像,提高转换速度,使用进度条显示转换进度
用法 | Use
编译
cargo build --release
运行
将 /tmp/images
目录中的所有图像转换为 WebP 格式,输出质量为 80,图像大小缩小为原来的一半
image2webp --quality 80 --size-factor 0.5 /tmp/images
- 该应用程序使用 image 和 webp 库进行图像处理和 WebP 编码。
- 对于 GIF 图像,程序将依赖于 ffmpeg 进行转换。
- 转换后的 WebP 图像的文件名与原始图像相同,但扩展名为 .webp。
shellx
跨平台协作式终端脚本和终端工具,支持 Windows、Mac、Linux 等主流操作系统。
主要功能
脚本管理
- 使用类似 VSCode 的编辑器编写和管理脚本
- 支持简单拖拽快速执行
- 保留编辑记录,随时回滚历史版本
文件管理
- 同步当前会话目录
- 支持文件上传下载
协作式终端
- 通过 SSH 连接或浏览器访问目标设备
- 支持公钥或密码验证
- 所有验证均在本地进行,不会上传敏感信息
xianbao
分布式蜜罐系统,模拟常见易受攻击的服务来吸引攻击者,并收集攻击信息。采用模块化设计,支持多种协议和服务,帮助了解攻击者的行为模式。
主要模块
- 蜜罐服务: 支持 SSH、Redis、FTP、MySQL、Telnet 等服务的模拟,通过配置文件灵活配置。使用 gRPC 协议上报活动数据,服务器端可以实时接收并处理数据。
- 数据服务器: 接收蜜罐上报的活动数据,提供统计数据,包括可疑 IP 数量、活动数量、攻击者使用的用户名和命令等,分析攻击趋势。
- Web 界面: 基于 Remix 开发的 Web 界面,用于管理蜜罐系统和查看统计数据,提供数据浏览以及邮件订阅服务。
goodcode
基于 Gemini AI 为编码工作提供智能辅助
![](more//resources/more/goodcode/media/welcome.webp)
![](more//resources/more/goodcode/media/chat.webp)
![](more//resources/more/goodcode/media/setup.webp)
![](more//resources/more/goodcode/media/commit_message.webp)
主要功能
- AI 驱动的代码优化: 优化您的代码,使其更加清晰、易维护和高效。
- 上下文感知的 Git 提交信息生成: 根据差异信息生成提交消息。
- 交互式聊天界面: 在 VSCode 中与 AI 模型无缝交互,满足各种使用场景。
- 支持多种语言: 自定义您首选的语言(英语、中文、西班牙语、阿拉伯语、葡萄牙语、俄语、日语和法语)。
- 细粒度控制: 调整优化参数,例如温度、top K/P 值和最大输出长度,以获得定制结果。
- 可扩展功能: 通过命令和菜单轻松与其他工具和工作流程集成。
使用方法
- 安装插件: 在 VS Code 的扩展商店中搜索并安装该插件。
- 打开命令面板: 按下
Ctrl+Shift+P
(Windows/Linux)或Cmd+Shift+P
(macOS)打开命令面板。 - 在聊天界面中进行交互: 输入自然语言问题或请求,与 Google AI 进行交互。
- 选中代码片段进行交互: 优化选中的代码片段。
- 源码控制中生成提示: 在 AI 的帮助下生成 Git 提交信息
注意事项
- 需要提供 Gemini AI 的 apikey
- 需要正确连接网络才能使用。
pantou
一个简单的倒计时应用,用于提醒距离特定时间还剩多久
截图 | Screenshot
jcef_browser
基于 jcef 开发的浏览器应用,用于在定制设备(指定区域,指定尺寸,指定形状)显示数据大屏
参数说明
-u 或 --url: 要打开的网址,默认为 https://bing.com/
-w 或 --width: 窗口宽度,默认为 800
-h 或 --height: 窗口高度,默认为 600
-x 或 --x: 窗口的 X 坐标,默认为屏幕左上角 (0)
-y 或 --y: 窗口的 Y 坐标,默认为屏幕左上角 (0)
-s 或 --shape:指定窗口的形状。形状由不同的类型和参数组成,格式为以下之一:
- ellipse:x:y:width:height:指定椭圆的边界矩形的左上角坐标 (x, y) 和椭圆的宽度和高度。
- polygon:x1:y1,x2:y2,...:指定多边形的顶点坐标。坐标格式为 x1:y1,x2:y2,...,每对坐标用逗号分隔。
- rounded-rectangle:x:y:width:height:arcWidth:arcHeight:指定圆角矩形的左上角坐标 (x, y),矩形的宽度和高度,以及圆角的宽度 (arcWidth) 和高度 (arcHeight)。
如果未指定形状,则窗口默认为矩形。
示例用法
- 打开一个指定网址并设置窗口为 1600 x 900 的矩形:
java -jar jcef_browser.jar -u http://localhost:8084/ui -w 1600 -h 900
- 椭圆: ellipse
java -jar jcef_browser.jar -u http://localhost:8084/ui -w 1600 -h 900 -s "rectangle:0:0:1600:900"
- 多边形: polygon
java -jar jcef_browser.jar -u http://localhost:8084/ui -w 1600 -h 900 -s "polygon:50:0,1550:0,1600:50,1600:850,1550:900,50:900,0:850,0:50"
- 圆角矩形: rounded-rectangle
java -jar jcef_browser.jar -u http://localhost:8084/ui -w 1600 -h 900 -s "rounded-rectangle:0:0:1600:900:50:50"
依赖项 | Dependencies
截图 | Screenshot
![](more//resources/more/jcef_browser/1.webp)
![](more//resources/more/jcef_browser/2.webp)
使用前
![](more//resources/more/jcef_browser/before.webp)
使用后
![](more//resources/more/jcef_browser/after.webp)