Clone Hero-freundliches, organisiertes Repository mit vom Benutzer bereitgestellten Songs
Link zur Web-App hier
Der aktuelle Stand der Zusammenstellung benutzerdefinierter Songs von Guitar Hero/Rock Band/Clone Hero ist eher unbefriedigend, verstreut und Neulingen abgeneigt: Dies ist ein Versuch, sie durchsuchbarer und benutzerfreundlicher zu machen.
Ein großer Teil der Quellen basiert auf der offiziellen CH-Charts-Tabelle mit einer Menge Songs von talentierten Charts, einschließlich Konvertierungen von C3, sowie den offiziellen GH/RB-Setlists. Requisiten auch an alle, die der Liste hinzugefügt haben! Derzeit sind mehr als 20.000 Charts indexiert, Tendenz steigend!
Haftungsausschluss: Ich bin nicht verantwortlich für die vom Chor indizierten Charts und Songs (mit Ausnahme der Charts, die „Paturages“ zugeordnet sind). Wenn Sie damit ein Problem haben, wenden Sie sich bitte an die Charters und/oder die Quelleneigentümer (Links zu Quellen werden für jeden Song bereitgestellt).
chorus importiert regelmäßig Links zu Liedern aus einer Liste, die hauptsächlich aus Google Drive-Ordnern besteht (manuell im Quellordner bereitgestellt). Es durchsucht die bereitgestellten Ordner, lädt die .chart
-/ .mid
und song.ini
Dateien (oder ganze Archive) herunter, um sie nach Informationen zu analysieren, speichert die Links ( nicht die Song-Bundles selbst ) und ihre Metadaten offiziell in einer Datenbank und verwirft die heruntergeladenen Dateien Artikel. Die Web-App liest und durchsucht einfach die in der Datenbank gespeicherten Daten.
Die Suchmaschine nutzt die ts_vectors
und Trigrams von PostgreSQL (über die pg_trgm
Erweiterung): Sie arbeitet mit der Verkettung von Künstler-/Band-, Song-, Charter- und Quellennamen. Im Moment scheint es ziemlich gut zu funktionieren!
Befolgen Sie die hier beschriebenen Anweisungen.
npm install
, npm run start:frontend
um die Entwicklungsumgebung zu starten.
( Dies funktioniert unter Windows möglicherweise nicht. Bitte wenden Sie sich an mich, wenn Sie auf Probleme stoßen. )
Konfigurieren Sie eine PostgreSQL-Datenbank und erhalten Sie Ihre Google API-Client-ID und Ihr Geheimnis. Kopieren Sie den Ordner „conf.example“ in einen Ordner „conf“ und geben Sie die Anmeldeinformationsdateien ein.
npm install
die Knotenabhängigkeiten. npm run import
um Ihre Datenbank mit allen Laufwerken zu füllen. npm start
um den Entwicklungsserver für die Web-App zu starten.
npm run import <short_name>
um nur ein bestimmtes Importskript auszuführen.
Achtung: Die allererste Ausführung wird mehr als 12 Stunden dauern. Stellen Sie daher sicher, dass Sie das Skript als Hintergrundaufgabe ausführen. Die folgenden Durchläufe sollten je nach Anzahl der neuen Karten nur etwa eine Stunde dauern. Wenn Sie nicht bereit sind, die mehr als 12 Stunden durchzugehen, können Sie mich gerne um einen Datenbank-Dump auf Discord ( Paturages#9405
) oder anderswo bitten.
/api/count
Ergibt die Gesamtzahl der indizierten Diagramme
/api/random
Ergibt 20 zufällig ausgewählte Diagramme
/api/latest
Schnappt sich die 20 aktuellsten Charts
Abfrageparameter
from
(Number): Offset, von dem aus die 20 Diagramme geholt werden /api/search
Sucht nach einer Abfragezeichenfolge und liefert 20 Ergebnisse
Abfrageparameter
query
(String): Die Suchbegriffe. Es können entweder generische Wörter oder eine Zeichenfolge für eine „erweiterte Abfrage“ sein, die aus Folgendem besteht:name="some name"
: Liednameartist="some artist"
: Künstler-/Bandnamealbum="some album"
: Albumnamegenre="some genre"
: Liedgenrecharter="some charter"
: Chartername (wie in ihrer song.ini
/ notes.chart
dokumentiert)tier_band
, tier_guitar
, tier_bass
, tier_rhythm
, tier_drums
, tier_vocals
, tier_keys
, tier_guitarghl
, tier_bassghl
: Schwierigkeitsgrad, wie in song.ini
durch die diff_*
Einträge definiert (Nummer von 0 bis 6, normalerweise). Beispielsweise sucht tier_guitar=lt3
nach Stufen unter 3, tier_guitar=gt3
sucht nach Stufen über 3.diff_guitar
, diff_bass
, diff_rhythm
, diff_drums
, diff_vocals
, diff_keys
, diff_guitarghl
, diff_bassghl
: Welche Schwierigkeitsteile (leicht, mittel, schwer, Experte) verfügbar sind. Es handelt sich um eine 4-breite Bitmap (1 Bit pro Schwierigkeitsgrad): 1
ist einfach, 2
ist mittel, 4
ist schwer, 8
ist Experte. Addieren Sie Zahlen, um mehrteilige Abfragen durchzuführen.hasForced
, hasOpen
, hasTap
, hasSections
, hasStarPower
, hasSoloSections
, hasStems
, hasVideo
: selbsterklärend, 0
für die Abfrage nach Abwesenheit, 1
für die Abfrage nach Anwesenheit.from
(Number): Offset, von dem aus die 20 Diagramme geholt werden /api/search
, api/random
und /api/latest
liefern beide JSON im folgenden Format:
roles
(Objekt): Der Schlüssel ist der Name der Charter in Kleinbuchstaben, der Wert ist ihre „Beschriftung“, also das, was angezeigt wird, wenn der Mauszeiger über sie bewegt wird.songs
(Array of Objects): Song-Entitäten, die Folgendes enthalten:name
, artist
, album
, genre
, charter
, year
hasForced
, hasOpen
(Objekt, das Teile enthält, die diese haben), hasTap
, hasSections
, hasStarPower
, hasSoloSections
, hasStems
, hasVideo
, isPack
, is120
(true, wenn das Diagramm nur einen BPM-Marker hat und dieser 120 ist)length
, effectiveLength
(Anzahl in Sekunden; effektive Länge ist die Dauer zwischen der ersten und der letzten Note)tier_*
-Einträge ( song.ini
-Schwierigkeitsgrad)diff_*
-Einträge (Bitmaps der Schwierigkeitsteile, Erklärung siehe oben)uploadedAt
, lastModified
(„zuletzt geändert“ ist der Zeitstempel der letzten Dateiänderung. Er ist null
, wenn er nicht gefunden werden konnte (z. B. GDrive-Ordner und -Diagramme, die nicht gescannt werden konnten, wurden nur uploadedAt
))hashes
: MD5-Prüfsummenfile
: MD5 des Diagramms selbstnoteCounts
: Wie viele Noten pro Teil in einem Teil enthalten sindlink
: Download-Link. Es verweist entweder aufdirectLinks
(experimentell): Diese Links sollten es Ihnen ermöglichen, einen Download direkt auszulösen, wenn Sie darauf zugreifen/wget.sources
(Array): Woher es gezogen wurde (Sie können auf jeden Fall helfen, wenn Sie möchten!)
Meine Roadmap wird tatsächlich so umfangreich, dass sie eine eigene GitHub-Projektseite rechtfertigt. Hör zu!