พื้นที่เก็บข้อมูลที่จัดระเบียบซึ่งเป็นมิตรกับ Clone Hero ของเพลงที่ผู้ใช้จัดทำ
เชื่อมโยงไปยังเว็บแอปที่นี่
สถานะปัจจุบันของการรวมเพลงที่กำหนดเองของ Guitar Hero/Rock Band/Clone Hero ค่อนข้างไม่น่าพอใจ กระจัดกระจาย และไม่ชอบผู้มาใหม่ นี่เป็นความพยายามที่จะทำให้สามารถค้นหาได้และใช้งานง่ายยิ่งขึ้น
ส่วนที่ดีของแหล่งที่มานั้นอิงจากสเปรดชีตชาร์ต CH อย่างเป็นทางการซึ่งมีเพลงมากมายจากการเช่าเหมาลำที่มีพรสวรรค์ รวมถึงการแปลงจาก C3 รวมถึงรายการเพลงอย่างเป็นทางการของ GH/RB อุปกรณ์ประกอบฉากสำหรับทุกคนที่ได้เพิ่มเข้าไปในรายการเช่นกัน! ขณะนี้มีแผนภูมิมากกว่า 20,000 รายการที่ได้รับการจัดทำดัชนี และจำนวนยังคงเพิ่มขึ้น!
ข้อสงวนสิทธิ์: ฉันไม่รับผิดชอบต่อชาร์ตเพลงและเพลงที่ได้รับการจัดทำดัชนีโดยการขับร้อง (ยกเว้นชาร์ตเพลงที่มีสาเหตุมาจาก "Paturages") หากคุณประสบปัญหาใดๆ โปรดติดต่อผู้เช่าเหมาลำและ/หรือเจ้าของแหล่งที่มา (มีลิงก์ไปยังแหล่งที่มาสำหรับทุกเพลง)
คอรัส นำเข้าลิงก์ไปยังเพลงเป็นระยะจากรายการโฟลเดอร์ Google Drive ส่วนใหญ่ (มีให้ด้วยตนเองในโฟลเดอร์ต้นทาง) โดยจะรวบรวมข้อมูลโฟลเดอร์ที่ให้มา ดาวน์โหลดไฟล์ .chart
/ .mid
และ song.ini
(หรือไฟล์เก็บถาวรทั้งหมด) เพื่อแยกวิเคราะห์ข้อมูล บันทึกลิงก์อย่างเป็นทางการ ( ไม่ใช่ชุดเพลงเอง ) และข้อมูลเมตาของไฟล์เหล่านั้นในฐานข้อมูล และละทิ้งไฟล์ที่ดาวน์โหลด รายการ เว็บแอปเพียงแค่อ่านและค้นหาจากข้อมูลที่บันทึกไว้ในฐานข้อมูล
เสิร์ชเอ็นจิ้นใช้ประโยชน์จาก ts_vectors
และ trigrams ของ PostgreSQL (ผ่านส่วนขยาย pg_trgm
) โดยดำเนินการโดยเชื่อมโยงชื่อศิลปิน/วงดนตรี เพลง กฎบัตร และชื่อแหล่งที่มา ดูเหมือนว่าจะทำงานได้ดีในตอนนี้!
ทำตามคำแนะนำที่อธิบายไว้ที่นี่
การพึ่งพา npm install
, npm run start:frontend
เพื่อบูตสภาพแวดล้อม dev
( ซึ่งอาจใช้หรือใช้งานไม่ได้บน Windows โปรดติดต่อฉันหากคุณพบปัญหา )
กำหนดค่าฐานข้อมูล PostgreSQL และรับ ID ไคลเอ็นต์ Google API และความลับของคุณ คัดลอกโฟลเดอร์ conf.example ไปยังโฟลเดอร์ conf และกรอกไฟล์ข้อมูลรับรอง
npm install
การพึ่งพาโหนด npm run import
เพื่อเติมฐานข้อมูลของคุณด้วยไดรฟ์ทั้งหมด npm start
เพื่อเริ่มเซิร์ฟเวอร์ dev สำหรับเว็บแอป
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 ถึง 6) ตัวอย่างเช่น tier_guitar=lt3
จะค้นหาระดับที่น้อยกว่า 3 tier_guitar=gt3
จะค้นหาระดับที่สูงกว่า 3diff_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
(Array of Objects): เอนทิตีเพลงที่มี:name
, artist
, album
, genre
, charter
, year
hasForced
, hasOpen
(วัตถุที่ประกอบด้วยส่วนต่างๆ เหล่านั้น), hasTap
, hasSections
, hasStarPower
, hasSoloSections
, hasStems
, hasVideo
, isPack
, is120
(จริงหากแผนภูมิมีเครื่องหมาย BPM เพียงตัวเดียวและมีค่าเท่ากับ 120)length
, effectiveLength
(ตัวเลข เป็นวินาที ความยาวที่มีประสิทธิภาพคือระยะเวลาระหว่างโน้ตตัวแรกและโน้ตตัวสุดท้าย)tier_*
(ระดับความยาก song.ini
)diff_*
(บิตแมปของส่วนที่ยาก ดูคำอธิบายด้านบนเล็กน้อย)uploadedAt
, lastModified
("แก้ไขล่าสุด" คือการประทับเวลาของการแก้ไขไฟล์ล่าสุด มันเป็น null
เมื่อไม่พบ (เช่นโฟลเดอร์ GDrive และแผนภูมิที่ไม่สามารถสแกนได้เพียง uploadedAt
))hashes
: เช็คซัม MD5file
: MD5 ของแผนภูมินั้นเองnoteCounts
: จำนวนโน้ตในหนึ่งส่วนต่อส่วนที่ยากlink
: ลิงค์ดาวน์โหลด มันนำทางไปยังdirectLinks
(ทดลอง): ลิงก์เหล่านี้ควรช่วยให้คุณสามารถทริกเกอร์การดาวน์โหลดได้โดยตรงหากคุณเข้าถึง/รับการดาวน์โหลดsources
(อาร์เรย์): ตำแหน่งที่ถูกดึงมาจาก (คุณสามารถช่วยได้อย่างแน่นอนถ้าคุณต้องการ!)
แผนงานของฉันเริ่มมีมากขึ้นพอที่จะรับประกันหน้าโครงการ GitHub ของตัวเอง ตรวจสอบออก!