Clonar repositório organizado amigável de músicas fornecidas pelo usuário
Link para o aplicativo da web aqui
O estado atual da agregação de músicas personalizadas do Guitar Hero/Rock Band/Clone Hero é bastante insatisfatório, disperso e avesso a recém-chegados: esta é uma tentativa de torná-lo mais pesquisável e fácil de usar.
Boa parte das fontes é baseada na planilha oficial do CH charts com uma tonelada de músicas de charts talentosos, incluindo conversões do C3, bem como os setlists oficiais do GH/RB. Adereços para todos que adicionaram itens à lista também! Existem atualmente mais de 20.000 gráficos indexados e o número continua crescendo!
Isenção de responsabilidade: não me responsabilizo pelas paradas e músicas indexadas por refrão (exceto as paradas atribuídas a "Paturages"). Se você tiver algum problema com algum deles, entre em contato com os charters e/ou os proprietários das fontes (links para as fontes são fornecidos para cada música).
chorus importa periodicamente links para músicas de uma lista composta principalmente de pastas do Google Drive (fornecidas manualmente na pasta de fontes). Ele rastreia as pastas fornecidas, baixa os arquivos .chart
/ .mid
e song.ini
(ou arquivos inteiros) para analisá-los em busca de informações, salva formalmente os links ( não os próprios pacotes de músicas ) e seus metadados em um banco de dados e descarta os arquivos baixados. Unid. O aplicativo da web simplesmente lê e pesquisa os dados salvos no banco de dados.
O mecanismo de busca faz uso dos ts_vectors
e trigramas do PostgreSQL (por meio da extensão pg_trgm
): opera na concatenação de nomes de artistas/bandas, músicas, charters e fontes. Parece estar funcionando muito bem por enquanto!
Siga as instruções descritas aqui.
dependências npm install
, npm run start:frontend
para inicializar o ambiente de desenvolvimento.
( Isso pode ou não funcionar no Windows. Entre em contato comigo se encontrar problemas. )
Configure um banco de dados PostgreSQL e obtenha seu ID de cliente e segredo da API do Google. Copie a pasta conf.example para uma pasta conf e preencha os arquivos de credenciais.
npm install
as dependências do nó. npm run import
para preencher seu banco de dados com todas as unidades. npm start
para iniciar o servidor de desenvolvimento do aplicativo web.
npm run import <short_name>
para executar apenas um script de importação específico.
Aviso justo: a primeira execução levará mais de 12 horas, portanto, execute o script como uma tarefa em segundo plano. As execuções seguintes devem levar apenas cerca de uma hora, dependendo da quantidade de novos gráficos. Se você não estiver disposto a passar mais de 12 horas, sinta-se à vontade para me pedir um despejo de banco de dados no Discord ( Paturages#9405
) ou em outro lugar.
/api/count
Produz a quantidade total de gráficos indexados
/api/random
Rende 20 gráficos escolhidos aleatoriamente
/api/latest
Pega os 20 gráficos mais recentes
Parâmetros de consulta
from
(Number): Offset a partir do qual os 20 gráficos são obtidos /api/search
Pesquisa de acordo com uma string de consulta, produz 20 resultados
Parâmetros de consulta
query
(String): os termos de pesquisa. Podem ser palavras genéricas ou uma string de "consulta avançada" composta por:name="some name"
: Nome da músicaartist="some artist"
: Nome do artista/bandaalbum="some album"
: nome do álbumgenre="some genre"
: gênero da músicacharter="some charter"
: nome da carta (conforme documentado em song.ini
/ notes.chart
)tier_band
, tier_guitar
, tier_bass
, tier_rhythm
, tier_drums
, tier_vocals
, tier_keys
, tier_guitarghl
, tier_bassghl
: Nível de dificuldade conforme definido em song.ini
pelas entradas diff_*
(número de 0 a 6, geralmente). Por exemplo, tier_guitar=lt3
procurará níveis inferiores a 3, tier_guitar=gt3
procurará níveis superiores a 3.diff_guitar
, diff_bass
, diff_rhythm
, diff_drums
, diff_vocals
, diff_keys
, diff_guitarghl
, diff_bassghl
: Quais partes de dificuldade (fácil, média, difícil, especialista) estão disponíveis. É um bitmap de 4 larguras (1 bit por parte de dificuldade): 1
é fácil, 2
é médio, 4
é difícil, 8
é especialista. Adicione números para fazer consultas com várias partes.hasForced
, hasOpen
, hasTap
, hasSections
, hasStarPower
, hasSoloSections
, hasStems
, hasVideo
: autoexplicativo, 0
para consultar ausência, 1
para consultar presença.from
(Number): Offset a partir do qual os 20 gráficos são obtidos /api/search
, api/random
e /api/latest
geram JSON no seguinte formato:
roles
(objeto): chave é o nome do charter em letras minúsculas, valor é sua "legenda", também conhecido como o que aparecerá quando eles passarem o mouse.songs
(matriz de objetos): entidades de música contendo:name
, artist
, album
, genre
, charter
, year
hasForced
, hasOpen
(Objeto contendo partes que os possuem), hasTap
, hasSections
, hasStarPower
, hasSoloSections
, hasStems
, hasVideo
, isPack
, is120
(verdadeiro se o gráfico tiver apenas um marcador de BPM e for 120)length
, effectiveLength
(Número, em segundos; comprimento efetivo é a duração entre a primeira e a última nota)tier_*
(classificação de dificuldade song.ini
)diff_*
(bitmaps de partes de dificuldade, veja um pouco acima para explicação)uploadedAt
, lastModified
("última modificação" é o carimbo de data e hora da última modificação do arquivo. É null
quando não foi encontrado (por exemplo, pastas e gráficos do GDrive que não puderam ser verificados apenas têm uploadedAt
))hashes
: somas de verificação MD5file
: MD5 do próprio gráficonoteCounts
: quantas notas há em uma parte, por parte de dificuldadelink
: link para download. Ou direciona paradirectLinks
(experimental): Esses links devem permitir que você acione um download diretamente se você acessá-los/wget-los.sources
(Array): De onde foi extraído (você definitivamente pode ajudar se quiser!)
Na verdade, meu roteiro está ficando considerável o suficiente para garantir sua própria página de projeto no GitHub. Confira!