|
1 | | -# Fortune Lyric - 随机洛天依歌曲歌词 |
| 1 | +# Random Lyric - 随机洛天依歌曲歌词 |
2 | 2 |
|
3 | 3 | > 总有一些不可思议的歌词<br>轻而易举地唱迸<br>人们历经风吹雨打的心 |
4 | | -> |
5 | | -> -- _[幽天歌](https://space.bilibili.com/592784581), 「[中V宝藏歌曲挖掘站](https://vcmusic.org)」成员_ |
6 | 4 |
|
7 | 5 | 此项目提供了一个 [洛天依](https://zh.wikipedia.org/zh-cn/%E6%B4%9B%E5%A4%A9%E4%BE%9D) 的经典曲目歌词选段的数据库,并以此实现了一个获得随机歌词的程序。 |
8 | 6 |
|
9 | 7 | 灵感来源:[一言](https://hitokoto.cn/)、[Fortune](https://en.wikipedia.org/wiki/Fortune_(Unix))。 |
10 | 8 |
|
11 | | -歌词保存在 [database.txt](database.txt) 中。若您需要提交歌词,请提交 PR 或者联系 i@lty.vc。提交歌词时,请遵守 #[数据库格式与约定](#数据库格式与约定)。 |
| 9 | +歌词保存在 [database.txt](database.txt) 中。若您需要提交歌词,请提交 Pull Request 或者联系 [rlsubmission@lty.vc](mailto:rlsubmission@lty.vc)。提交歌词时,请遵守 [数据库格式与约定](#数据库格式与约定)。 |
12 | 10 |
|
13 | 11 | ## 使用方法 |
14 | 12 |
|
15 | | -Fortune Lyric 支持多种使用方式: |
16 | | - - **在 Bash 中使用**:直接输出歌词、作为 SSH Banner (MOTD) 或通过管道输出给其他程序。 |
17 | | - - **通过 API 调用**:适用于个人网站等网页场景。 |
18 | | - - **下载数据库**:在自己的程序中嵌入数据库,自行实现随机歌词。 |
| 13 | +Random Lyric 支持多种使用方式: |
| 14 | + - **[下载数据库](#下载数据库)**:在自己的程序中嵌入数据库,自行实现随机歌词。 |
| 15 | + - **[在 Shell 中作为命令使用](#在-shell-中作为命令使用)**:类似 `fortune` 命令,可以在终端中显示随机歌词。 |
| 16 | + - **[配置为 `update-motd` (Message of the Day) 使用](#配置为-update-motd-message-of-the-day-使用)**:在 Linux 登录时显示随机歌词。 |
| 17 | + - **[通过 HTTP API 调用](#通过-http-api-调用)**:适用于个人网站等网页场景。 |
| 18 | + - API 接口地址: `https://lty.vc/lyric` |
| 19 | + - **[通过 QOTD/QOTDS (RFC 865 Quote of the Day Protocol) 协议调用](#通过-qotdqotds-rfc-865-quote-of-the-day-protocol-协议调用)**:适用于 Telnet、无法使用 HTTPS 等场景。 |
| 20 | + - QOTD over TCP/UDP: `qotd.lty.vc:17` |
| 21 | + - QOTD over SSL/TLS 服务器: `qotd.lty.vc:787` |
19 | 22 |
|
20 | 23 | 无论您使用何种方式,都应遵守本项目的版权规定。请参见 [版权](#版权) 一节。 |
21 | 24 |
|
| 25 | +### 下载数据库 |
22 | 26 | 您可以通过下面的链接获取最新的发布版本,如果 GitHub 下载过慢,请使用我们的 API 下载。 |
23 | 27 |
|
24 | | -| GitHub Release | API | Description | |
25 | | -| -------------------------------- | ------------------------- | --------------------- | |
26 | | -| [fortune-lyric.sh] | [bash] | 单行歌词 Shell 脚本 | |
27 | | -| [fortune-lyric-multiline.sh] | [bash-multiline] | 多行歌词 Shell 脚本 | |
28 | | -| [fortune-lyric.json] | - | JSON 格式 | |
29 | | -| [fortune-lyric.min.json] | [json] | JSON 格式(最小化) | |
30 | | -| [fortune-lyric.txt] | [text] | 单行文本格式 | |
31 | | -| - | GET https://lty.vc/lyric | API 调用接口 | |
32 | | - |
33 | | -[fortune-lyric.sh]: https://github.com/luotianyi-dev/fortune-lyric/releases/latest/download/fortune-lyric.sh |
34 | | -[fortune-lyric-multiline.sh]: https://github.com/luotianyi-dev/fortune-lyric/releases/latest/download/fortune-lyric-multiline.sh |
35 | | -[fortune-lyric.json]: https://github.com/luotianyi-dev/fortune-lyric/releases/latest/download/fortune-lyric.json |
36 | | -[fortune-lyric.min.json]: https://github.com/luotianyi-dev/fortune-lyric/releases/latest/download/fortune-lyric.min.json |
37 | | -[fortune-lyric.txt]: https://github.com/luotianyi-dev/fortune-lyric/releases/latest/download/fortune-lyric.txt |
38 | | -[database.txt]: https://github.com/luotianyi-dev/fortune-lyric/releases/latest/download/database.txt |
39 | | -[bash]: https://lty.vc/lyric/bash |
40 | | -[bash-multiline]: https://lty.vc/lyric/bash-multiline |
41 | | -[json]: https://lty.vc/lyric/json |
42 | | -[text]: https://lty.vc/lyric/text |
43 | | -[database]: https://lty.vc/lyric/database |
44 | | - |
45 | | -### 在 Bash 中使用 |
| 28 | +| GitHub Release | HTTP Release | Description | |
| 29 | +| -------------------------- | ------------------------- | --------------------- | |
| 30 | +| [update-motd.sh] | [bash] | 单行歌词 Bash 脚本 | |
| 31 | +| [update-motd-multiline.sh] | [bash-multiline] | 多行歌词 Bash 脚本 | |
| 32 | +| [data.json] | - | JSON 格式 | |
| 33 | +| [data.min.json] | [json] | JSON 格式(最小化) | |
| 34 | +| [lines.txt] | [text] | 单行文本格式 | |
| 35 | +| [database.txt] | | 原始数据库格式 | |
| 36 | + |
| 37 | +[update-motd.sh]: https://github.com/luotianyi-dev/luotianyi-random-lyric/releases/latest/download/random-lyric-update-motd.sh |
| 38 | +[update-motd-multiline.sh]: https://github.com/luotianyi-dev/luotianyi-random-lyric/releases/latest/download/random-lyric-update-motd-multiline.sh |
| 39 | +[data.json]: https://github.com/luotianyi-dev/luotianyi-random-lyric/releases/latest/download/random-lyric-data.json |
| 40 | +[data.min.json]: https://github.com/luotianyi-dev/luotianyi-random-lyric/releases/latest/download/random-lyric-data.min.json |
| 41 | +[lines.txt]: https://github.com/luotianyi-dev/luotianyi-random-lyric/releases/latest/download/random-lyric-lines.txt |
| 42 | +[database.txt]: https://github.com/luotianyi-dev/luotianyi-random-lyric/releases/latest/download/random-lyric-database.txt |
| 43 | +[bash]: https://lty.vc/lyric/bash |
| 44 | +[bash-multiline]: https://lty.vc/lyric/bash-multiline |
| 45 | +[json]: https://lty.vc/lyric/json |
| 46 | +[text]: https://lty.vc/lyric/text |
| 47 | +[database]: https://lty.vc/lyric/database |
| 48 | + |
| 49 | +### 在 Shell 中作为命令使用 |
| 50 | +Random Lyric 最终的产物包括一个 Bash 脚本,并可直接运行。您需要预先安装 Bash。 |
| 51 | + |
| 52 | +建议您将 Random Lyric 作为 Fortune 的 Symlink。 |
46 | 53 |
|
47 | 54 | **单行歌词版:** |
48 | 55 | ```bash |
49 | | -curl -L https://lty.vc/lyric/bash -o /usr/local/bin/fortune-lyric && chmod +x /usr/local/bin/fortune-lyric |
| 56 | +curl -Lo /usr/local/bin/random-lyric https://lty.vc/lyric/bash && \ |
| 57 | +chmod +x /usr/local/bin/random-lyric && \ |
| 58 | +ln -s /usr/local/bin/random-lyric /usr/local/bin/fortune |
50 | 59 | ``` |
51 | 60 | 显示效果如: |
52 | 61 | ``` |
53 | | -$ fortune-lyric |
| 62 | +$ random-lyric |
54 | 63 | 思念的含义在无尽生命中淡去 帷幕落下喝彩响起 片刻后都沉寂 |
55 | 64 | ``` |
56 | 65 |
|
57 | 66 | **多行歌词版:** |
58 | 67 | ```bash |
59 | | -curl -L https://lty.vc/lyric/bash-multiline -o /usr/local/bin/fortune-lyric && chmod +x /usr/local/bin/fortune-lyric |
| 68 | +curl -Lo /usr/local/bin/random-lyric https://lty.vc/lyric/bash-multiline && \ |
| 69 | +chmod +x /usr/local/bin/random-lyric && \ |
| 70 | +ln -s /usr/local/bin/random-lyric /usr/local/bin/fortune |
60 | 71 | ``` |
61 | 72 | 显示效果如: |
62 | 73 | ``` |
63 | | -$ fortune-lyric |
| 74 | +$ random-lyric |
64 | 75 | 思念的含义在无尽生命中淡去 |
65 | 76 | 帷幕落下喝彩响起 片刻后都沉寂 |
66 | 77 |
|
67 | 78 | -- COP 《为了你唱下去》, 2016 |
68 | 79 | ``` |
69 | 80 |
|
70 | | -### 配置为 SSH Banner |
| 81 | +### 配置为 `update-motd` (Message of the Day) 使用 |
71 | 82 | **Ubuntu / Debian** |
72 | | -将上面的命令替换为: |
73 | 83 | ```bash |
74 | | -curl -L <安装地址> -o /etc/update-motd.d/25-fortune-lyric && chmod +x /etc/update-motd.d/25-fortune-lyric |
| 84 | +# 单行歌词版 |
| 85 | +curl -Lo /etc/update-motd.d/50-random-lyric https://lty.vc/lyric/bash && \ |
| 86 | +chmod +x /etc/update-motd.d/50-random-lyric |
| 87 | + |
| 88 | +# 多行歌词版 |
| 89 | +curl -Lo /etc/update-motd.d/50-random-lyric https://lty.vc/lyric/bash-multiline && \ |
| 90 | +chmod +x /etc/update-motd.d/50-random-lyric |
75 | 91 | ``` |
76 | 92 |
|
| 93 | +对于 Ubuntu,您可能将上面命令中的 `50` 替换为更大的值,以防止干扰已有的 `update-motd` 顺序。 |
| 94 | + |
77 | 95 | **Arch Linux** |
78 | 96 | ```bash |
| 97 | +# 安装依赖并配置 update-motd |
79 | 98 | pacman -S run-parts bash curl |
80 | | -mkdir -p /etc/update-motd.d |
| 99 | +mkdir -p /etc/update-motd.d |
81 | 100 | echo 'session optional pam_exec.so stdout /usr/bin/run-parts /etc/update-motd.d' >> /etc/pam.d/system-login |
82 | | -curl -L <安装地址> -o /etc/update-motd.d/25-fortune-lyric && chmod +x /etc/update-motd.d/25-fortune-lyric |
| 101 | + |
| 102 | +# 单行歌词版 |
| 103 | +curl -Lo /etc/update-motd.d/50-random-lyric https://lty.vc/lyric/bash && \ |
| 104 | +chmod +x /etc/update-motd.d/50-random-lyric |
| 105 | + |
| 106 | +# 多行歌词版 |
| 107 | +curl -Lo /etc/update-motd.d/50-random-lyric https://lty.vc/lyric/bash-multiline && \ |
| 108 | +chmod +x /etc/update-motd.d/50-random-lyric |
| 109 | +``` |
| 110 | + |
| 111 | +### 通过 HTTP API 调用 |
| 112 | +访问 https://lty.vc/lyric 即可获得随机歌词。 |
| 113 | + |
| 114 | +```bash |
| 115 | +$ curl -SsfL lty.vc/lyric |
| 116 | + |
| 117 | +思念的含义在无尽生命中淡去 |
| 118 | +帷幕落下喝彩响起 片刻后都沉寂 |
83 | 119 | ``` |
84 | 120 |
|
85 | | -### 通过网页调用 |
86 | | -直接打开 https://lty.vc/lyric 即可获得随机歌词。 |
| 121 | +详细的 API 文档请参见 [API 文档](https://lty.vc/docs/#/Lyric/LyricHandler.GetRandomLyric)。 |
| 122 | + |
| 123 | +### 通过 QOTD/QOTDS (RFC 865 Quote of the Day Protocol) 协议调用 |
| 124 | +Random Lyric 提供了实现了 [RFC 865](https://tools.ietf.org/html/rfc865) 的 QOTD 服务器。该协议是一个纯文本协议,因此您可以直接使用 `telnet` 命令测试连接我们的服务器。 |
| 125 | + |
| 126 | +我们的服务器地址为: |
| 127 | + - QOTD over TCP/UDP 服务器: `qotd.lty.vc:17` |
| 128 | + - QOTD over SSL/TLS 服务器: `qotd.lty.vc:787` |
| 129 | + |
| 130 | +您可以使用以下命令测试连接: |
| 131 | + |
| 132 | +```bash |
| 133 | +$ telnet qotd.lty.vc 17 |
| 134 | + |
| 135 | +Connected to qotd.lty.vc. |
| 136 | +Escape character is '^]'. |
| 137 | + |
| 138 | +思念的含义在无尽生命中淡去 |
| 139 | +帷幕落下喝彩响起 片刻后都沉寂 |
| 140 | + -- COP 《为了你唱下去》, 2016 |
87 | 141 |
|
| 142 | +Connection closed by foreign host. |
88 | 143 | ``` |
89 | | -$ curl -L lty.vc/lyric |
| 144 | + |
| 145 | +或者,使用 UDP 协议。需要注意的是,UDP 预期您发送单个 `\n` 字节。您需要设置 `-w10` 以设置 10 秒的超时时间(对于大多数情况而言足够)。否则,`nc` 将等待输入,直到您手动关闭连接。 |
| 146 | +```bash |
| 147 | +$ echo -n | nc -w10 -u qotd.lty.vc 17 |
90 | 148 |
|
91 | 149 | 思念的含义在无尽生命中淡去 |
92 | 150 | 帷幕落下喝彩响起 片刻后都沉寂 |
| 151 | + -- COP 《为了你唱下去》, 2016 |
93 | 152 | ``` |
94 | 153 |
|
95 | | -详细的 API 文档请参见 [API 文档](https://docs.lty.vc/)。 |
| 154 | +QOTD over SSL/TLS 并不是 IETF 标准协议,但是 Random Lyric 为了安全性考虑,提供了该服务。您可以使用以下命令测试连接: |
| 155 | + |
| 156 | +```bash |
| 157 | +$ openssl s_client -quiet -connect qotd.lty.vc:787 |
| 158 | +depth=2 C=US, O=Google Trust Services LLC, CN=GTS Root R1 |
| 159 | +verify return:1 |
| 160 | +depth=1 C=US, O=Google Trust Services LLC, CN=GTS CA 1P5 |
| 161 | +verify return:1 |
| 162 | +depth=0 CN=qotd.lty.vc |
| 163 | +verify return:1 |
| 164 | + |
| 165 | +思念的含义在无尽生命中淡去 |
| 166 | +帷幕落下喝彩响起 片刻后都沉寂 |
| 167 | + -- COP 《为了你唱下去》, 2016 |
| 168 | +``` |
96 | 169 |
|
97 | 170 | ## 数据库格式与约定 |
98 | 171 | 数据收录要求为: |
@@ -154,13 +227,23 @@ year = 4DIGIT |
154 | 227 |
|
155 | 228 | 注:`VCHAR` 为可见字符,在本文定义中不仅包括 ASCII 可见字符,也包括 Unicode 可见字符。 |
156 | 229 |
|
| 230 | +## 构建 |
| 231 | +Random Lyric 由 Python 编写。**Random Lyric 需要 Python 3.10 或更高版本,不需要任何其他依赖。** |
| 232 | + |
| 233 | +运行以下命令构建 Random Lyric: |
| 234 | +```bash |
| 235 | +python3 make.py |
| 236 | +``` |
| 237 | + |
| 238 | +构建的产物位于 `dist/` 目录下。 |
| 239 | + |
157 | 240 | ## 版权 |
158 | 241 |
|
159 | 242 | **请注意:此项目不是开源软件。** 此项目的分发、使用、修改、衍生等相关规定均比开源项目更为严格。 |
160 | 243 |
|
161 | 244 | 1. 代码部分。代码部分指的是除了本项目的 `database.txt` 以外,所有在本项目 Git 仓库中的代码。此项目的代码部分由 ChatGPT 所编写。目前 AI 编写的代码版权所属在法律界尚不明确,用户应自行承担相关风险。此项目的贡献者放弃未来一切可能的对此项目代码部分的版权主张。 |
162 | | - 2. 数据库部分。数据库指的是本项目中 `database.txt` 的部分。此项目的数据库部分为歌词,其著作权属于原著作权人。您在使用过程中,应遵守中文虚拟歌手社区的相关规定,包括但不限于[《Vsinger同人创作规约》](https://vsinger.com/aboutus#%E7%89%88%E6%9D%83%E8%AF%B4%E6%98%8E)。此外,您还需要遵守歌曲原作者的二次创作规定。您对此项目的任何分发、使用、修改、衍生等行为,均应确保符合歌词原作者的相关规定或获得授权。此项目的贡献者基于对相关数据的收集、整理、组织的贡献,要求您在使用此项目数据库部分及其产物时,遵守更加严格的限制。 |
163 | | - 3. API 调用。若你使用 API 调用方式使用本项目,即代表您同意 lty.vc 的服务政策和隐私条款。lty.vc 有权收集您调用 API 的服务器信息、软件信息和网络信息,若通过前端 CROS 方式调用,lty.vc 亦会收集您的用户的设备信息、浏览器信息和网络信息。您应将 lty.vc 的隐私政策及所收集的信息告知您的用户。以商业为目的的网站、App、软件,包括但不限于要求用户付费以解锁内容、通过网站销售实体或虚拟产品的网站,不得使用本项目的 API 服务。lty.vc 有权对调用 API 的网站、App、软件进行评估,若相关网站、App、软件含有违反法律法规规定的内容,或含有对虚拟歌手及虚拟歌手创作者攻击、侮辱、抹黑内容的,lty.vc 有权终止其服务。通过 API 调用的,应在网站底部或友情链接页面,标明使用了由「传输控制协议TCP」开发的 lty.vc API 服务,并标明「传输控制协议TCP」的哔哩哔哩账号地址 https://space.bilibili.com/1425000748 和 lty.vc 的 API 地址 https://docs.lty.vc/ 。 |
| 245 | + 2. 数据库部分。数据库指的是本项目中 `database.txt` 的部分。此项目的数据库部分为歌词,其著作权属于原著作权人。您在使用过程中,应遵守中文虚拟歌手社区的相关规定。此外,您还需要遵守歌曲原作者的二次创作规定。您对此项目的任何分发、使用、修改、衍生等行为,均应确保符合歌词原作者的相关规定或获得授权。此项目的贡献者基于对相关数据的收集、整理、组织的贡献,要求您在使用此项目数据库部分及其产物时,遵守更加严格的限制。 |
| 246 | + 3. API 调用。若你使用 API 调用方式使用本项目,即代表您同意 lty.vc 的服务政策和隐私条款。lty.vc 有权收集您调用 API 的服务器信息、软件信息和网络信息,若通过前端 CROS 方式调用,lty.vc 亦会收集您的用户的设备信息、浏览器信息和网络信息。您应将 lty.vc 的隐私政策及所收集的信息告知您的用户。以商业为目的的网站、App、软件,包括但不限于要求用户付费以解锁内容、通过网站销售实体或虚拟产品的网站,不得使用本项目的 API 服务。lty.vc 有权对调用 API 的网站、App、软件进行评估,若相关网站、App、软件含有违反法律法规规定的内容,或含有对虚拟歌手及虚拟歌手创作者攻击、侮辱、抹黑内容的,lty.vc 有权终止其服务。 |
164 | 247 | 4. 产物分发。产物指的是本项目的编译结果,即将本项目的数据库部分输入本项目的代码部分,经过代码部分处理得到的文件。使用 GitHub Release 及 lty.vc 分发的产物,为官方产物。用户使用此项目的 Git 仓库,运行代码部分得到的文件,为非官方产物。由于产物内包括数据库部分的内容,故分发、使用、修改产物或将产物嵌入您的产品,亦需遵守中文虚拟歌手社区的相关规定及歌曲原作者的二次创作规定,或获得相关授权。在分发产物时,应向用户提供此项目的许可证,即本文档「版权」一节 1 至 10 条的全部内容。 |
165 | 248 | 5. 非商业使用。您不得以商业目的使用此项目。您不得将此项目的数据库部分或产物嵌入任何商用产品或服务。以企业、事业单位、非盈利组织、社会团体及任何法人性质的组织为主体开办的服务或生产的产品,不得嵌入此项目的数据库部分或产物。您不得在雇主、学校、研究所等您所在单位的计算机上使用此项目的产物,除非您的所在单位为以中文虚拟歌手创作为主要业务。 |
166 | 249 | 6. 与您的产品隔离。若您在您的项目、产品或服务中使用、分发或嵌入此项目的数据库部分或产物,无论您的项目、产品或服务是否开发源代码、是否为商业性质,您都应采取措施将此项目的数据库部分或产物与您的项目、产品或服务隔离。对未形成有效隔离的项目,您的项目、产品或服务的版权声明及主张,对使用、分发或嵌入此项目数据库或产物的部分无效。您不得对本项目及其产物进行再许可。 |
|
0 commit comments