克隆英雄友好的用戶提供歌曲的組織存儲庫
此處連結到網絡應用程式
吉他英雄/搖滾樂隊/克隆英雄自訂歌曲聚合的現狀相當不令人滿意、分散且不歡迎新人:這是使其更易於搜尋和用戶友好的嘗試。
很大一部分來源是基於官方 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 0)。例如, 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 標記且為 true120,則為 true)length
, effectiveLength
(數字,以秒為單位;有效長度是第一個音符和最後一個音符之間的持續時間)tier_*
條目( song.ini
難度分級)diff_*
條目(難度部分的位圖,請參閱上面的解釋)uploadedAt
, lastModified
(「lastmodified」是最近一次檔案修改的時間戳,找不到時為null
(例如無法掃描到的GDrive資料夾和圖表只有uploadedAt
))hashes
:MD5 校驗和file
: 圖表本身的MD5noteCounts
:每個難度部分有多少個音符link
:下載連結。它要么指向directLinks
(實驗性):這些連結應該允許您在訪問/獲取它們時直接觸發下載。sources
(陣列):從哪裡拉取(如果你願意的話,你絕對可以幫忙!)
我的路線圖實際上已經足夠大了,足以保證擁有自己的 GitHub 專案頁面。一探究竟!