克隆英雄友好的用户提供歌曲的组织存储库
此处链接到网络应用程序
吉他英雄/摇滚乐队/克隆英雄自定义歌曲聚合的现状相当不令人满意、分散且不欢迎新人:这是使其更易于搜索和用户友好的尝试。
很大一部分来源是基于官方 CH 排行榜电子表格,其中包含大量来自才华横溢的唱片公司的歌曲,包括来自 C3 的转换以及官方 GH/RB 设置列表。也向所有添加到列表中的人表示支持!目前已索引了 20,000 多个图表,并且该数字仍在增长!
免责声明:我对合唱索引的图表和歌曲不负任何责任(归因于“Paturages”的图表除外)。如果您对其中任何一个有疑问,请联系章程和/或源所有者(每首歌曲都提供了源链接)。
chorus定期从主要是 Google Drive 文件夹的列表中导入歌曲链接(在源文件夹中手动提供)。它抓取提供的文件夹,下载.chart
/ .mid
和song.ini
文件(或整个档案)以解析它们以获取信息,正式将链接(而不是歌曲捆绑本身)及其元数据保存在数据库中,并丢弃下载的内容项目。 Web 应用程序只需读取并搜索数据库中保存的数据即可。
搜索引擎利用 PostgreSQL 的ts_vectors
和 trigrams(通过pg_trgm
扩展):它对艺术家/乐队、歌曲、章程和源名称的串联进行操作。目前看来效果很好!
请按照此处描述的说明进行操作。
npm install
依赖项, npm run start:frontend
启动开发环境。
(这在 Windows 上可能有效,也可能无效。如果您遇到问题,请与我联系。 )
配置 PostgreSQL 数据库并获取您的 Google API 客户端 ID 和密钥。将conf.example文件夹复制到conf文件夹并填写凭据文件。
npm install
节点依赖项。 npm run import
用所有驱动器填充数据库。 npm start
启动 Web 应用程序的开发服务器。
npm run import <short_name>
仅运行一个特定的导入脚本。
公平警告:第一次运行将花费 12 小时以上,因此请确保将脚本作为后台任务运行。接下来的运行应该只需要大约一个小时,具体取决于新图表的数量。如果您不愿意经历这 12 个多小时,请随时向我询问 Discord ( Paturages#9405
) 或其他地方的数据库转储。
/api/count
生成索引图表的总量
/api/random
生成随机挑选的 20 个图表
/api/latest
获取 20 个最新图表
查询参数
from
(数字):从中获取 20 个图表的偏移量 /api/search
根据查询字符串进行搜索,产生 20 个结果
查询参数
query
(字符串):搜索词。它可以是通用单词,也可以是由以下组成的“高级查询”字符串:name="some name"
: 歌曲名称artist="some artist"
: 艺术家/乐队名称album="some album"
: 专辑名称genre="some genre"
:歌曲流派charter="some charter"
:章程名称(如他们的song.ini
/ notes.chart
中所述)tier_band
、 tier_guitar
、 tier_bass
、 tier_rhythm
、 tier_drums
、 tier_vocals
、 tier_keys
、 tier_guitarghl
、 tier_bassghl
: song.ini
中由diff_*
条目定义的难度等级(通常为 0 到 6 的数字)。例如, tier_guitar=lt3
将查找小于 3 的层, tier_guitar=gt3
将查找高于 3 的层。diff_guitar
、 diff_bass
、 diff_rhythm
、 diff_drums
、 diff_vocals
、 diff_keys
、 diff_guitarghl
、 diff_bassghl
:哪些难度部分(简单、中等、困难、专家)可用。它是一个 4 宽位图(每个难度部分 1 位): 1
是简单, 2
是中等, 4
是困难, 8
是专家。将数字相加以进行多部分查询。hasForced
、 hasOpen
、 hasTap
、 hasSections
、 hasStarPower
、 hasSoloSections
、 hasStems
、 hasVideo
:不言自明, 0
查询是否缺席, 1
查询是否存在。from
(数字):从中获取 20 个图表的偏移量/api/search
、 api/random
和/api/latest
都生成以下格式的 JSON:
roles
(对象):键是小写的章程名称,值是他们的“标题”,也就是当他们悬停时会显示的内容。songs
(对象数组):歌曲实体包含:name
、 artist
、 album
、 genre
、 charter
、 year
hasForced
、 hasOpen
(包含具有它们的部件的对象)、 hasTap
、 hasSections
、 hasStarPower
、 hasSoloSections
、 hasStems
、 hasVideo
、 isPack
、 is120
(如果图表只有一个 BPM 标记且为 120,则为 true)length
, effectiveLength
(数字,以秒为单位;有效长度是第一个音符和最后一个音符之间的持续时间)tier_*
条目( song.ini
难度分级)diff_*
条目(难度部分的位图,请参阅上面的解释)uploadedAt
, lastModified
(“lastmodified”是最近一次文件修改的时间戳,找不到时为null
(例如无法扫描到的GDrive文件夹和图表只有uploadedAt
))hashes
:MD5 校验和file
: 图表本身的MD5noteCounts
:每个难度部分有多少个音符link
:下载链接。它要么指向directLinks
(实验性):这些链接应该允许您在访问/获取它们时直接触发下载。sources
(数组):从哪里拉取(如果你愿意的话,你绝对可以帮忙!)
我的路线图实际上已经足够大了,足以保证拥有自己的 GitHub 项目页面。一探究竟!