사용자가 제공한 노래의 클론 영웅 친화적인 조직화된 저장소
여기에 웹앱 링크
Guitar Hero/Rock Band/Clone Hero 사용자 정의 노래 집계의 현재 상태는 다소 불만족스럽고 분산되어 있으며 신규 사용자를 싫어합니다. 이는 검색하기 쉽고 사용자 친화적으로 만들기 위한 시도입니다.
소스의 상당 부분은 공식 GH/RB 세트리스트뿐만 아니라 C3의 변환을 포함하여 재능 있는 차터의 수많은 노래가 포함된 공식 CH 차트 스프레드시트를 기반으로 합니다. 목록에 추가한 모든 사람에게도 소품을 제공합니다! 현재 색인된 차트는 20,000개가 넘으며 그 수는 계속 늘어나고 있습니다!
면책 조항: 나는 코러스로 색인된 차트와 노래에 대해 책임을 지지 않습니다("Paturages"에 귀속되는 차트 제외). 이들 중 문제가 있는 경우 차터 및/또는 소스 소유자에게 문의하세요(모든 노래에 소스 링크가 제공됨).
chorus는 대부분 Google 드라이브 폴더 목록에서 노래에 대한 링크를 주기적으로 가져옵니다(소스 폴더에 수동으로 제공됨). 제공된 폴더를 크롤링하고, .chart
/ .mid
및 song.ini
파일(또는 전체 아카이브)을 다운로드하여 정보를 분석하고, 링크( 노래 번들 자체가 아님 )와 해당 메타데이터를 데이터베이스에 공식적으로 저장하고 다운로드한 파일을 삭제합니다. 항목. 웹 앱은 데이터베이스에 저장된 데이터를 읽고 검색하기만 하면 됩니다.
검색 엔진은 PostgreSQL의 ts_vectors
및 트라이그램( pg_trgm
확장을 통해)을 사용합니다. 아티스트/밴드, 노래, 차터 및 소스 이름을 연결하여 작동합니다. 지금은 꽤 잘 작동하는 것 같습니다!
여기에 설명된 지침을 따르십시오.
npm install
종속성, npm run start:frontend
개발 환경을 부팅합니다.
( Windows에서는 작동할 수도 있고 작동하지 않을 수도 있습니다. 문제가 발생하면 저에게 연락해주세요. )
PostgreSQL 데이터베이스를 구성하고 Google API 클라이언트 ID와 비밀번호를 가져옵니다. conf.example 폴더를 conf 폴더에 복사하고 자격 증명 파일을 채웁니다.
npm install
. npm run import
데이터베이스를 모든 드라이브로 채웁니다. npm start
웹앱용 개발 서버를 시작합니다.
npm run import <short_name>
특정 가져오기 스크립트 하나만 실행합니다.
공정한 경고: 첫 번째 실행에는 12시간 이상이 걸리므로 스크립트를 백그라운드 작업으로 실행해야 합니다. 다음 실행은 새 차트의 양에 따라 약 1시간 정도만 소요됩니다. 12시간 이상을 진행하고 싶지 않다면 Discord( Paturages#9405
)나 다른 곳에서 데이터베이스 덤프를 요청해 주세요.
/api/count
인덱스된 차트의 총량을 산출합니다.
/api/random
무작위로 선택된 20개의 차트를 생성합니다.
/api/latest
최신 차트 20개를 잡아보세요
쿼리 매개변수
from
(Number): 20개의 차트를 가져오는 오프셋 /api/search
쿼리 문자열에 따라 검색하면 20개의 결과가 생성됩니다.
쿼리 매개변수
query
(String): 검색어입니다. 일반적인 단어이거나 다음으로 구성된 "고급 쿼리" 문자열일 수 있습니다.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
: diff_*
항목(일반적으로 0에서 6까지의 숫자)으로 song.ini
에 정의된 난이도 등급입니다. 예를 들어, 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
(Number): 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
("마지막 수정"은 최신 파일 수정의 타임스탬프입니다. 찾을 수 없는 경우 null
입니다(예: 스캔할 수 없는 GDrive 폴더 및 차트는 uploadedAt
만 있음).hashes
: MD5 체크섬file
: 차트 자체의 MD5noteCounts
: 한 파트에 난이도 파트당 몇 개의 음표가 있는지link
: 다운로드 링크. 다음 중 하나로 연결됩니다.directLinks
(실험적): 이 링크를 사용하면 해당 링크에 액세스하거나 다운로드할 경우 직접 다운로드를 실행할 수 있습니다.sources
(어레이): 가져온 위치 (원한다면 확실히 도움을 줄 수 있습니다!)
내 로드맵은 실제로 자체 GitHub 프로젝트 페이지를 보증할 만큼 충분히 커지고 있습니다. 확인해 보세요!