Skip to content

waittide/lkong

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lkong

lkong 是一个使用 Rust 编写的龙的天空(龙空,lkong.com)终端客户端。它基于 Ratatui 和 Crossterm 提供中文 TUI 界面,可在终端中浏览版块、帖子和信息流,并支持登录、搜索、回复及签到等操作。

本项目是非官方第三方客户端,与龙的天空官方无关。站点接口或页面结构变化可能导致部分功能失效。

功能

  • 浏览全站版块和标签
  • 查看主题列表、帖子正文及分页
  • 搜索当前版块或主题列表
  • 查看动态信息流和“@我的”
  • 登录、退出登录并持久化会话
  • 查看通知数量
  • 撰写和发送回复
  • 每日签到
  • 后台执行网络请求,界面不会因请求而停止刷新
  • 支持取消正在进行的网络请求
  • 支持中文和其他 UTF-8 文本编辑

环境要求

  • Rust 1.85 或更高版本(项目使用 Rust 2024 Edition)
  • 支持 UTF-8 和 ANSI 控制序列的终端
  • 可访问 www.lkong.comapi.lkong.com 的网络环境

项目使用 rustls,不依赖系统 OpenSSL。

构建与运行

克隆项目后,在项目目录执行:

cargo run --release

也可以先构建,再直接运行二进制文件:

cargo build --release
./target/release/lkong

安装到 Cargo 的二进制目录:

cargo install --path .
lkong

操作说明

界面底部会根据当前页面显示可用快捷键。

浏览页面

按键 操作
/ k 选择上一项或向上滚动
/ j 选择下一项或向下滚动
Enter 打开选中的版块或帖子
/ h 上一页
下一页
PageUp / PageDown 在帖子正文中快速滚动
Esc 返回上一页
q 退出程序

首页功能

按键 操作
/ 搜索版块或主题标题
g 打开动态信息流
@ 打开“@我的”
L 登录或退出登录
p 签到

p 会直接发起签到请求,不会再显示确认对话框。

搜索

按键 操作
输入字符 更新搜索结果
Backspace 删除搜索字符
/ 在匹配结果中移动
Enter 应用当前搜索结果
Esc 取消搜索并恢复完整列表

搜索结果仅作用于发起搜索的版块、标签和页码。没有匹配结果时列表保持为空,不会显示未过滤的数据。

帖子与回复

在帖子详情页按 rR 打开回复编辑器。

按键 操作
/ / / 移动编辑光标
Home / End 移动到当前行开头或结尾
Backspace / Delete 删除光标前或后的字符
Enter 插入换行
Ctrl+S / Ctrl+Enter 立即发送回复
Esc 取消回复并丢弃草稿

发送回复前没有额外确认步骤。

登录页面

按键 操作
Tab 在账号和密码字段间切换
Enter 登录
Esc 退出程序

网络请求

网络请求进行期间:

  • Esc:取消当前请求
  • q:取消当前请求并退出程序
  • 其他按键不会启动新的操作

HTTP 连接超时为 10 秒,单次请求总超时为 30 秒。

会话数据

登录成功后,Cookie 会保存到系统配置目录下的 lkong-tui/cookies.json

常见位置:

  • Linux:~/.config/lkong-tui/cookies.json
  • macOS:~/Library/Application Support/lkong-tui/cookies.json
  • Windows:%APPDATA%\lkong-tui\cookies.json

具体路径由操作系统的配置目录规则决定。退出登录时,程序会删除该文件并清除当前进程中的 Cookie。

cookies.json 包含登录会话信息,请勿分享或提交到版本控制系统。在多用户 Unix 系统上,建议限制其访问权限:

chmod 700 ~/.config/lkong-tui
chmod 600 ~/.config/lkong-tui/cookies.json

项目结构

src/
├── main.rs  # 终端初始化、事件循环、快捷键和后台任务
├── app.rs   # 页面状态、业务流程和搜索状态
├── api.rs   # HTTP、GraphQL、Cookie 和页面解析
└── ui.rs    # Ratatui 界面渲染

主要依赖:

开发与检查

格式化代码:

cargo fmt

运行静态检查:

cargo check --all-targets
cargo clippy --all-targets -- -D warnings

运行测试:

cargo test --all-targets

发布构建针对较小体积启用了 LTO、单代码生成单元、符号剥离和 panic = "abort"

注意事项

  • 登录、回复、签到依赖龙空当前接口行为。
  • 主题和帖子页面依赖站点返回的页面数据结构;站点改版后可能需要更新解析逻辑。
  • 终端宽度过小时,部分长标题或状态信息可能被截断。
  • 请遵守龙的天空的服务条款和社区规则,避免频繁请求或自动化滥用。

About

使用 Rust 与 Ratatui 构建的非官方龙的天空(lkong.com)终端客户端,支持版块浏览、帖子阅读、搜索、登录、回复、动态与签到。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages