wustho/epy

GitHub: wustho/epy

epy 是一个基于终端的多格式电子书阅读器,让用户无需图形界面即可在命令行中阅读 EPUB、MOBI 等格式的电子书。

Stars: 1198 | Forks: 71

# `$ epy` ![截图](https://static.pigsec.cn/wp-content/uploads/repos/cas/ed/edb914542d56192ab1d9d4d9b60cab9785e19744651076021f7fd737bd12d9cf.png) CLI 电子书阅读器。 这只是 [epr](https://github.com/wustho/epr) 的一个分支,包含以下额外功能: - 支持的格式: - Epub (.epub, .epub3) - FictionBook (.fb2) - Mobi (.mobi) - AZW3 (.azw, .azw3) - [URL](#url-support) - 阅读进度百分比 - 书签 - 外部词典集成(`sdcv`、`dict` 或 `wkdict`) - 行内格式:**粗体**和 _斜体_(取决于终端和字体支持。斜体仅在 python>=3.7 中受支持) - Text-to-Speech(需要额外设置,请阅读[下方](#text-to-speech)) - [双页显示](#double-spread) - 无缝阅读(默认禁用,请阅读[下方](#reading-tips-using-epy)) ## 安装 - 通过 PyPI(Linux 和 Mac OS) pip3 install epy-reader - 通过 Pip+Git pip3 install git+https://github.com/wustho/epy - 通过 AUR yay -S epy-ereader-git - Windows 可执行文件 Windows 的独立可执行文件可在[发布页面](https://github.com/wustho/epy/releases)获取。 ## 使用方法 - `epy /path/to/your/book/book.epub`(请确保您的书名不包含任何空格) - **c** 切换颜色配置 - **Shift + h** 上一章 - **Shift + l** 下一章 - **Shift + g** 跳至章节末尾 - **g** 跳至章节开头 - **Shift + m** 显示书籍元数据 - **t** 目录 - **/** 搜索 - **b** 添加书签 - **Shift + b** 显示书签 - **q** 退出 - **-** 缩小文字 - **+** 放大文字 - **o** 打开图片 - **s** 显示或隐藏进度 ## 颜色配置 在配置文件中,您会看到以下部分。 ``` "DarkColorFG": 47, "DarkColorBG": 235, "LightColorFG": 238, "LightColorBG": 253, ``` 使用此图片更改值。(请务必忽略开头的零,否则将无法启动。) ![图片](https://static.pigsec.cn/wp-content/uploads/repos/cas/7c/7c690a566598cb5ba1f2389860b95707b18f89e4cf45fe1bc049237eefbfd57e.png) ## 使用 Epy 的阅读提示 使用 `epy` 阅读时,您偶尔可能会发现三个星号 `***`。 这意味着您到达了电子书中某个部分的结尾, 而下一行(紧接着这三个星号,位于新的部分中) 将从页面顶部开始。 这可能会令人感到困惑,因此获得无缝阅读体验的最佳方式 是使用下一页控制(`space`、`l` 或 `Right`) 而不是下一行控制(`j` 或 `Down`)。 如果您确实希望获得无缝阅读体验,可以在配置文件中将 `SeamlessBetweenChapters` 设置为 `true`。但它的缺点是会消耗更多内存,这也就是它 默认被禁用的原因。 ## 配置文件 配置文件以 JSON 格式提供,位于: - Linux 和 Mac OS:`~/.config/epy/configuration.json` 或 `~/.epy/configuration.json` - Windows:`%USERPROFILE%\.epy\configuration.json` ## URL 支持 您可以通过将 URL 作为 CLI 参数传递给 `epy`,来阅读在线书籍,例如:短篇小说、同人小说等。 当您想减少干扰进行阅读时,这非常有用。 `epy` 还会记住您的在线阅读进度。 例如,您可以直接通过以下命令阅读[来自 gutenberg 的 Moby Dick](https://www.gutenberg.org/files/2701/2701-h/2701-h.htm): ``` $ epy https://www.gutenberg.org/files/2701/2701-h/2701-h.htm ``` 但请注意,`epy` 永远不会成为一个网络浏览器,它仅仅是一个 TUI 程序,让您能在终端的舒适环境中阅读 您最喜欢的虚构故事。 因此,请不要期望在 `epy` 中实现网络浏览器的功能。 ## 使用鼠标 尽管在 Android 上的 Termux 中运行 `epy` 时,鼠标支持非常有用,但它默认是禁用的, 因为大多数人在桌面端使用 `epy` 时会觉得它有干扰。 但您可以通过在配置文件中将 `MouseSupport` 设置为 `true` 来启用它。 | 按键 | 动作 | | --- | --- | | `左键单击`(屏幕右侧) | 下一页 | | `左键单击`(屏幕左侧) | 上一页 | | `右键单击` | 目录 | | `向上滚动` | 向上滚动 | | `向下滚动` | 向下滚动 | | `Ctrl` + `向上滚动` | 增加文本宽度 | | `Ctrl` + `向下滚动` | 减小文本宽度 | ## 文本转语音 要获得 Text-to-Speech (TTS) 支持,必须使用外部 TTS 引擎。 支持的引擎列表: - `mimic` - `pico2wave` - `gtts-mpv`(需要同时安装 [gTTS](https://pypi.org/project/gTTS) 和 [MPV](https://www.mpv.io)) ## 词典 要使用“查词”功能,您必须安装一个外部的词典 CLI 程序(`sdcv`、`dict` 或 `wkdict`)。完成后,建议手动修改 configuration.json 文件,并在其中设置您想要的词典,以确保一切正常运行。 之后,您就可以按 `d` 键来查找单词的定义,此时会出现一个提示框,让您输入要查询的单词。 ## 双页显示 双页显示旨在模拟真实书籍的行为, 因此行滚动导航将作为页面滚动,并且无法调整文本宽度。 ## 更新日志 - `v2021.10.23`:主要重构,利用了 `python>=3.7` 中的许多新特性, 并且 `epy` 将不再向后兼容旧版本的 Python 和旧的配置。 - `v2022.1.8`:配置和阅读状态模式 (schema) 的变更,不向后兼容。 因此,如果遇到错误,删除配置和状态文件可能会解决该问题。 - `v2022.1.15`:初步实现 URL 支持,目前尚不支持目录功能。 - `v2022.1.23`:书库实现:能够在 epy 内部从阅读历史中切换电子书 (默认按键:`R`)。 - `v2022.2.5`:修复了未启动进程的 process.join() 问题。 - `v2022.10.2`:将 `epy.py` 模块大规模拆分为包结构,以便于开发。
标签:Homebrew安装, Python, 文档解析, 无后门, 电子书阅读器, 逆向工具