مستودع منظم لاستنساخ الأغاني التي يقدمها المستخدم وصديق للأبطال
رابط لتطبيق الويب هنا
الحالة الحالية لتجميع الأغاني المخصصة لـ 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
لتشغيل بيئة التطوير.
( قد يعمل هذا أو لا يعمل على نظام التشغيل Windows. يرجى التواصل معي إذا واجهت مشاكل. )
قم بتكوين قاعدة بيانات PostgreSQL واحصل على معرف عميل Google API وسره. انسخ المجلد conf.example إلى مجلد conf واملأ ملفات بيانات الاعتماد.
npm install
تبعيات العقدة. npm run import
لملء قاعدة البيانات الخاصة بك بجميع محركات الأقراص. npm start
في تشغيل خادم التطوير لتطبيق الويب.
npm run import <short_name>
لتشغيل برنامج استيراد محدد واحد فقط.
تحذير عادل: سيستغرق التشغيل الأول أكثر من 12 ساعة، لذا تأكد من تشغيل البرنامج النصي كمهمة في الخلفية. يجب أن تستغرق عمليات التشغيل التالية حوالي ساعة فقط، اعتمادًا على كمية المخططات الجديدة. إذا لم تكن على استعداد لقضاء أكثر من 12 ساعة، فلا تتردد في أن تطلب مني تفريغ قاعدة البيانات على Discord ( Paturages#9405
) أو في أي مكان آخر.
/api/count
يعطي المبلغ الإجمالي للمخططات المفهرسة
/api/random
ينتج 20 رسمًا بيانيًا تم اختيارها عشوائيًا
/api/latest
احصل على أحدث 20 مخططًا
معلمات الاستعلام
from
(الرقم): الإزاحة التي يتم جلب المخططات العشرين منها /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
سهل، 2
متوسط، 4
صعب، 8
خبير. أضف الأرقام معًا لإنشاء استعلامات متعددة الأجزاء.hasForced
، hasOpen
، hasTap
، hasSections
، hasStarPower
، hasSoloSections
، hasStems
، hasVideo
: شرح ذاتي، 0
للاستعلام عن الغياب، 1
للاستعلام عن الحضور.from
(الرقم): الإزاحة التي يتم جلب المخططات العشرين منها /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)length
، effectiveLength
(الرقم، بالثواني؛ الطول الفعال هو المدة بين المذكرة الأولى والأخيرة)tier_*
(تصنيف صعوبة song.ini
)diff_*
(صور نقطية لأجزاء الصعوبة، انظر قليلاً أعلاه للحصول على شرح)uploadedAt
، lastModified
("آخر تعديل" هو الطابع الزمني لآخر تعديل للملف. يكون null
عندما لا يمكن العثور عليه (على سبيل المثال، تم uploadedAt
فقط))hashes
: المجموع الاختباري MD5file
: MD5 للمخطط نفسهnoteCounts
: كم عدد الملاحظات الموجودة في جزء ما، لكل جزء صعوبةlink
: رابط التحميل . إما أن يوجه إلىdirectLinks
(تجريبية): من المفترض أن تسمح لك هذه الروابط بتشغيل التنزيل مباشرة إذا قمت بالوصول إليها/حصلت عليها.sources
(المصفوفة): من أين تم سحبها (يمكنك بالتأكيد المساعدة إذا كنت تريد ذلك!)
لقد أصبحت خريطة الطريق الخاصة بي كبيرة بما يكفي لتضمن صفحة مشروع GitHub الخاصة بها. تحقق من ذلك!