ユーザーが提供した曲のクローンヒーローフレンドリーな整理されたリポジトリ
ウェブアプリへのリンクはこちら
ギター ヒーロー/ロック バンド/クローン ヒーローのカスタム ソングの集合体の現状は、やや満足のいくものではなく、分散しており、新規参入者を嫌うものです。これは、より検索しやすく、ユーザー フレンドリーなものにするための試みです。
ソースの大部分は、公式の CH チャート スプレッドシートに基づいており、C3 からの変換や公式の GH/RB セットリストを含む、才能あるチャーターからの大量の曲が含まれています。リストに追加してくれた人全員にも小道具を贈ります!現在 20,000 を超えるチャートがインデックスされており、その数はまだ増え続けています。
免責事項: 私は、コーラスによってインデックス付けされているチャートおよび曲については責任を負いません (「Paturages」に起因するチャートを除く)。これらのいずれかについて問題がある場合は、チャーターおよび/またはソースの所有者にお問い合わせください (ソースへのリンクはすべての曲に提供されています)。
Chorus は、主に Google ドライブ フォルダー (ソース フォルダーで手動で提供される) のリストから曲へのリンクを定期的にインポートします。提供されたフォルダーをクロールし、 .chart
/ .mid
およびsong.ini
ファイル (またはアーカイブ全体) をダウンロードして情報を解析し、リンク (曲バンドル自体ではない) とそのメタデータをデータベースに正式に保存し、ダウンロードされたファイルを破棄します。アイテム。 Web アプリは、データベースに保存されているデータを読み取って検索するだけです。
検索エンジンは、PostgreSQL のts_vectors
と trigram ( 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>
は、特定のインポート スクリプトを 1 つだけ実行します。
かなりの警告: 最初の実行には 12 時間以上かかるため、スクリプトをバックグラウンド タスクとして実行するようにしてください。新しいチャートの量に応じて、次の実行には約 1 時間しかかかりません。 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 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 マーカーが 1 つだけあり、それが 120 の場合は true)length
、 effectiveLength
(数値、秒単位、有効長は最初の音符と最後の音符の間の長さ)tier_*
エントリ ( song.ini
難易度階層化)diff_*
エントリ (難易度の部分のビットマップ、説明については上記を参照してください)uploadedAt
、 lastModified
(「最終更新日」は、最新のファイル変更のタイムスタンプです。見つからなかった場合はnull
になります (例: スキャンできなかった GDrive フォルダーとグラフには、 uploadedAt
しかありません))hashes
: MD5 チェックサムfile
:チャート自体のMD5noteCounts
: 難易度パートごとに、パートに含まれるノートの数link
: ダウンロードリンク。それは次のいずれかを指示しますdirectLinks
(実験的): これらのリンクにアクセスしたり取得したりすると、ダウンロードを直接トリガーできるようになります。sources
(配列): 取得元(ご希望であれば、必ずお手伝いさせていただきます!)
実際、私のロードマップは、独自の GitHub プロジェクト ページを作成できるほど重要なものになりつつあります。それをチェックしてください!