feat(gachabase): full game database sync and automatic cdn image resolution
This commit is contained in:
1 parent
5944673e0e
commit
039609980e
4 files changed
+640
-1049
No files matched your search
+33
-83
@@ -45,8 +45,8 @@
|
||||
🔄 รีเฟรช
|
||||
</button>
|
||||
|
||||
<button class="btn btn-secondary btn-sm" id="btn-open-gachabase" title="ดึงข้อมูลตัวละคร/กรวยแสงจาก Gachabase" style="border-color: rgba(245, 158, 11, 0.4); color: #fbbf24;">
|
||||
🌐 Gachabase
|
||||
<button class="btn btn-secondary btn-sm" id="btn-header-gachabase-sync" title="ซิงค์และอัปเดตข้อมูลเกม/รูปภาพจาก Gachabase เมื่อเกมอัปเดต" style="border-color: rgba(245, 158, 11, 0.4); color: #fbbf24;">
|
||||
🌐 ซิงค์ Gachabase
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
@@ -199,12 +199,12 @@
|
||||
</div>
|
||||
</button>
|
||||
|
||||
<!-- 7. Gachabase Beta & Datamine Importer -->
|
||||
<button type="button" class="btn btn-secondary" id="btn-quick-gachabase" style="display: flex; align-items: center; justify-content: flex-start; gap: 0.6rem; text-align: left; padding: 0.75rem 0.9rem; border-color: rgba(245, 158, 11, 0.4);">
|
||||
<!-- 7. Gachabase Game Data & Asset Sync -->
|
||||
<button type="button" class="btn btn-secondary" id="btn-quick-gachabase-sync" style="display: flex; align-items: center; justify-content: flex-start; gap: 0.6rem; text-align: left; padding: 0.75rem 0.9rem; border-color: rgba(245, 158, 11, 0.4);">
|
||||
<span style="font-size: 1.35rem; line-height: 1;">🌐</span>
|
||||
<div>
|
||||
<div style="font-weight: 700; font-size: 0.875rem; color: #fbbf24;">ดึงข้อมูล Gachabase</div>
|
||||
<div style="font-size: 0.725rem; color: var(--text-muted);">นำเข้าตัวละคร/กรวยแสง เบต้าหรือใหม่ล่าสุด</div>
|
||||
<div style="font-weight: 700; font-size: 0.875rem; color: #fbbf24;" data-i18n="qaGachabaseTitle">ซิงค์ข้อมูลเกม Gachabase</div>
|
||||
<div style="font-size: 0.725rem; color: var(--text-muted);" data-i18n="qaGachabaseDesc">อัปเดตข้อมูล & รูปภาพเมื่อเกมมีแพตช์ใหม่</div>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
@@ -246,7 +246,7 @@
|
||||
</select>
|
||||
</div>
|
||||
<div style="display: flex; gap: 0.5rem; flex-wrap: wrap;">
|
||||
<button class="btn btn-secondary" id="btn-avatars-gachabase" title="ดึงตัวละครจาก Gachabase" style="border-color: rgba(245, 158, 11, 0.4); color: #fbbf24;">🌐 Gachabase</button>
|
||||
<button class="btn btn-secondary" id="btn-sync-gachabase-avatars" title="ซิงค์และอัปเดตข้อมูลตัวละครและรูปภาพจาก Gachabase เมื่อเกมมีแพตช์ใหม่" style="border-color: rgba(245, 158, 11, 0.4); color: #fbbf24;">🌐 ซิงค์ Gachabase</button>
|
||||
<button class="btn btn-primary" id="btn-all-avatars-e0s1" data-i18n="btnAllE0S1" style="background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%); border-color: #38bdf8;">⚡ ปรับ E0S1 ทุกตัว</button>
|
||||
<button class="btn btn-gold" id="btn-max-all-avatars" data-i18n="btnMaxAll">⭐ ปรับ Max E6 ทุกตัว</button>
|
||||
<button class="btn btn-secondary" id="btn-reload-avatars" data-i18n="btnReload">🔄 รีโหลด</button>
|
||||
@@ -299,7 +299,7 @@
|
||||
|
||||
<!-- Action Buttons -->
|
||||
<div style="display: flex; gap: 0.4rem;">
|
||||
<button type="button" class="btn btn-sm btn-secondary" id="btn-eq-gachabase" title="ดึงกรวยแสง/รีลิกส์จาก Gachabase" style="border-color: rgba(245, 158, 11, 0.4); color: #fbbf24;">🌐 Gachabase</button>
|
||||
<button type="button" class="btn btn-sm btn-secondary" id="btn-sync-gachabase-eq" title="ซิงค์และอัปเดตกรวยแสงและรูปภาพจาก Gachabase เมื่อเกมมีแพตช์ใหม่" style="border-color: rgba(245, 158, 11, 0.4); color: #fbbf24;">🌐 ซิงค์ Gachabase</button>
|
||||
<button type="button" class="btn btn-sm btn-success" id="btn-open-add-lc" data-i18n="btnAddLc">+ เพิ่ม LC</button>
|
||||
<button type="button" class="btn btn-sm btn-success" id="btn-open-add-relic" data-i18n="btnAddRelic" style="display: none;">+ เพิ่มรีลิกส์</button>
|
||||
</div>
|
||||
@@ -603,6 +603,31 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Card 5: Gachabase Dynamic Game Data & Image Sync -->
|
||||
<div class="card" style="margin-top: 0.5rem;">
|
||||
<div class="card-title" style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<span>🌐 อัปเดตข้อมูลเกม & รูปภาพ (Gachabase Sync)</span>
|
||||
<span class="btn-sm btn-secondary" id="badge-gachabase-status" style="font-size: 0.75rem; color: var(--accent-gold); border-color: rgba(245, 158, 11, 0.35);">พร้อมใช้งาน</span>
|
||||
</div>
|
||||
<p class="card-subtitle">
|
||||
ดึงข้อมูลตัวละคร, กรวยแสง, และรูปภาพความละเอียดสูงจาก Gachabase อัตโนมัติเมื่อเกมมีแพตช์ใหม่หรือมีคอนเทนต์เบต้า
|
||||
</p>
|
||||
|
||||
<div style="display: flex; flex-direction: column; gap: 0.85rem;">
|
||||
<div style="display: flex; justify-content: space-between; align-items: center; background: rgba(0,0,0,0.25); padding: 0.85rem 1.1rem; border-radius: var(--radius-sm); border: 1px solid var(--border-color); flex-wrap: wrap; gap: 0.75rem;">
|
||||
<div>
|
||||
<div style="font-weight: 700; font-size: 0.95rem; color: #fff;">ฐานข้อมูลตัวละครและกรวยแสง</div>
|
||||
<div style="font-size: 0.8rem; color: var(--text-muted); margin-top: 0.15rem;" id="lbl-gachabase-info">
|
||||
ตัวละครในระบบ: 124+ ตัว | กรวยแสง: 172+ ชิ้น (รองรับเนื้อหา 3.0+ และเบต้า)
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="btn btn-gold" id="btn-sync-gachabase-now" style="font-weight: 700; display: flex; align-items: center; gap: 0.5rem; padding: 0.65rem 1.25rem;">
|
||||
🔄 ซิงค์ข้อมูล & รูปภาพจาก Gachabase
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -1387,81 +1412,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Gachabase Datamine & Importer Modal -->
|
||||
<div class="modal-overlay" id="modal-gachabase">
|
||||
<div class="modal-content" style="max-width: 860px; max-height: 90vh; display: flex; flex-direction: column;">
|
||||
<div class="modal-header" style="border-bottom: 1px solid var(--border-color); padding-bottom: 0.75rem; margin-bottom: 0.75rem;">
|
||||
<div style="display: flex; align-items: center; gap: 0.6rem;">
|
||||
<span style="font-size: 1.5rem;">🌐</span>
|
||||
<div>
|
||||
<h3 style="font-weight: 800; margin: 0; color: #fbbf24;">
|
||||
Gachabase Data Fetcher & Importer
|
||||
</h3>
|
||||
<div style="font-size: 0.75rem; color: var(--text-muted);">
|
||||
ดึงข้อมูลตัวละคร, กรวยแสง, และรีลิกส์จาก hsr.gachabase.net (รองรับเบต้าและเนื้อหาใหม่ล่าสุด)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="btn btn-sm btn-secondary" id="btn-close-gachabase-modal">✕</button>
|
||||
</div>
|
||||
|
||||
<!-- Search & Input Bar -->
|
||||
<div style="display: flex; flex-direction: column; gap: 0.6rem; margin-bottom: 0.75rem;">
|
||||
<div style="display: flex; gap: 0.5rem; flex-wrap: wrap;">
|
||||
<input type="text" id="gachabase-input" class="form-input" placeholder="🔍 ใส่ ID เช่น 1511, 23065 หรือวาง URL Gachabase ทั้งหมด..." style="flex: 1; min-width: 220px;">
|
||||
<select id="gachabase-type" class="form-select" style="max-width: 140px;">
|
||||
<option value="character">👥 ตัวละคร</option>
|
||||
<option value="lightcone">🗡️ กรวยแสง</option>
|
||||
<option value="relic">🛡️ รีลิกส์</option>
|
||||
</select>
|
||||
<select id="gachabase-branch" class="form-select" style="max-width: 110px;">
|
||||
<option value="beta" selected>Beta (ล่าสุด)</option>
|
||||
<option value="live">Live (เซิร์ฟจริง)</option>
|
||||
</select>
|
||||
<select id="gachabase-lang" class="form-select" style="max-width: 100px;">
|
||||
<option value="en" selected>English</option>
|
||||
<option value="zh-CN">简体中文</option>
|
||||
<option value="ja">日本語</option>
|
||||
<option value="th">ไทย</option>
|
||||
</select>
|
||||
<button type="button" class="btn btn-primary" id="btn-gachabase-fetch" style="min-width: 110px; font-weight: 700;">
|
||||
🔍 ดึงข้อมูล
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Quick Pick Badges -->
|
||||
<div style="display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; font-size: 0.75rem;">
|
||||
<span style="color: var(--text-muted); font-weight: 600;">ตัวอย่างยอดนิยม:</span>
|
||||
<button type="button" class="btn btn-sm btn-secondary gachabase-quick-chip" data-id="1511" data-type="character" style="padding: 0.15rem 0.5rem; font-size: 0.75rem;">🎭 Aha (1511)</button>
|
||||
<button type="button" class="btn btn-sm btn-secondary gachabase-quick-chip" data-id="23065" data-type="lightcone" style="padding: 0.15rem 0.5rem; font-size: 0.75rem;">🃏 LC "Aha" (23065)</button>
|
||||
<button type="button" class="btn btn-sm btn-secondary gachabase-quick-chip" data-id="1513" data-type="character" style="padding: 0.15rem 0.5rem; font-size: 0.75rem;">🌊 Waveflair (1513)</button>
|
||||
<button type="button" class="btn btn-sm btn-secondary gachabase-quick-chip" data-id="1505" data-type="character" style="padding: 0.15rem 0.5rem; font-size: 0.75rem;">✨ Evanescia (1505)</button>
|
||||
<button type="button" class="btn btn-sm btn-secondary gachabase-quick-chip" data-id="1502" data-type="character" style="padding: 0.15rem 0.5rem; font-size: 0.75rem;">⭐ Yao Guang (1502)</button>
|
||||
<button type="button" class="btn btn-sm btn-secondary gachabase-quick-chip" data-id="1501" data-type="character" style="padding: 0.15rem 0.5rem; font-size: 0.75rem;">⚡ Sparxie (1501)</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Status Indicator -->
|
||||
<div id="gachabase-status" style="display: none; padding: 0.65rem 0.9rem; border-radius: var(--radius-sm); margin-bottom: 0.75rem; font-size: 0.85rem;"></div>
|
||||
|
||||
<!-- Preview Container -->
|
||||
<div id="gachabase-preview-container" style="flex: 1; overflow-y: auto; padding-right: 0.35rem; display: none;">
|
||||
<!-- Injected dynamically by JS -->
|
||||
</div>
|
||||
|
||||
<!-- Modal Footer -->
|
||||
<div id="gachabase-footer-actions" style="display: none; justify-content: space-between; align-items: center; margin-top: 0.75rem; border-top: 1px solid var(--border-color); padding-top: 0.75rem; flex-wrap: wrap; gap: 0.5rem;">
|
||||
<div style="display: flex; gap: 0.5rem;">
|
||||
<button type="button" class="btn btn-secondary" id="btn-gachabase-save-meta">💾 บันทึก Metadata เท่านั้น</button>
|
||||
</div>
|
||||
<div style="display: flex; gap: 0.5rem;">
|
||||
<button type="button" class="btn btn-primary" id="btn-gachabase-import-e0s1" style="background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%); border-color: #38bdf8;">⚡ นำเข้า FreeSR (E0S1)</button>
|
||||
<button type="button" class="btn btn-gold" id="btn-gachabase-import-e6s5">⭐ นำเข้า FreeSR (E6S5)</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Toast Notification Container -->
|
||||
<div class="toast-container" id="toast-container"></div>
|
||||
|
||||
|
||||
Reference in new issue
Block a user