baileys-idn 1.0.10 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Utils/dashboard.d.ts.map +1 -1
- package/lib/Utils/dashboard.js +364 -227
- package/lib/Utils/dashboard.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/Utils/dashboard.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,OAAO,CAAC,EAAE,aAAa,CAAA;CAC1B;AAED,qBAAa,SAAS;IAClB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAiD;IAC/D,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,WAAW,CAAY;gBAEnB,OAAO,GAAE,gBAAqB;IAoB1C,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,gBAAgB;IAuBjB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY;IAKxD,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAS9B,WAAW,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAMzD,gBAAgB;IAKhB,OAAO,CAAC,OAAO,EAAE,MAAM;IAKvB,KAAK;IAMZ,OAAO,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/Utils/dashboard.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,OAAO,CAAC,EAAE,aAAa,CAAA;CAC1B;AAED,qBAAa,SAAS;IAClB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAiD;IAC/D,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,WAAW,CAAY;gBAEnB,OAAO,GAAE,gBAAqB;IAoB1C,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,gBAAgB;IAuBjB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY;IAKxD,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAS9B,WAAW,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAMzD,gBAAgB;IAKhB,OAAO,CAAC,OAAO,EAAE,MAAM;IAKvB,KAAK;IAMZ,OAAO,CAAC,UAAU;CAufrB;AAED,eAAO,MAAM,eAAe,GAAI,UAAU,gBAAgB,cAA2B,CAAA"}
|
package/lib/Utils/dashboard.js
CHANGED
|
@@ -17,8 +17,8 @@ export class Dashboard {
|
|
|
17
17
|
this.port = options.port || 3000;
|
|
18
18
|
this.title = options.title || 'Shiina-MD Control Center';
|
|
19
19
|
this.theme = {
|
|
20
|
-
accentColor: options.theme?.accentColor || '#
|
|
21
|
-
opacity: options.theme?.opacity !== undefined ? options.theme.opacity : 0.
|
|
20
|
+
accentColor: options.theme?.accentColor || '#007aff',
|
|
21
|
+
opacity: options.theme?.opacity !== undefined ? options.theme.opacity : 0.75,
|
|
22
22
|
bgImage: options.theme?.bgImage || ''
|
|
23
23
|
};
|
|
24
24
|
this.widgets = {
|
|
@@ -87,7 +87,7 @@ export class Dashboard {
|
|
|
87
87
|
updatePairingCode(code) {
|
|
88
88
|
this.pairingCode = code;
|
|
89
89
|
this.io.emit('pairing-update', code);
|
|
90
|
-
const formattedLog =
|
|
90
|
+
const formattedLog = `PAIRING CODE: ${code}`;
|
|
91
91
|
log.info(formattedLog);
|
|
92
92
|
this.emitLog(formattedLog);
|
|
93
93
|
}
|
|
@@ -112,9 +112,12 @@ export class Dashboard {
|
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
114
|
renderHTML() {
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
const opacity = this.theme?.opacity ?? 0.75;
|
|
116
|
+
const accentColor = this.theme?.accentColor ?? '#007aff';
|
|
117
|
+
const bgImage = this.theme?.bgImage ?? '';
|
|
118
|
+
const bgStyle = bgImage
|
|
119
|
+
? `background: url('${bgImage}') no-repeat center center fixed; background-size: cover;`
|
|
120
|
+
: `background: linear-gradient(135deg, #0a0a0c 0%, #1c1c24 100%);`;
|
|
118
121
|
return `<!DOCTYPE html>
|
|
119
122
|
<html lang="id">
|
|
120
123
|
<head>
|
|
@@ -124,54 +127,56 @@ export class Dashboard {
|
|
|
124
127
|
<script src="/socket.io/socket.io.js"></script>
|
|
125
128
|
<style>
|
|
126
129
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
127
|
-
body {
|
|
128
|
-
.container { width: 100%; max-width:
|
|
130
|
+
body { ${bgStyle} color: #f5f5f7; font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", Roboto, sans-serif; padding: 20px; display: flex; flex-direction: column; align-items: center; min-height: 100vh; }
|
|
131
|
+
.container { width: 100%; max-width: 850px; display: flex; flex-direction: column; gap: 14px; }
|
|
129
132
|
|
|
130
|
-
.header { display: flex; justify-content: space-between; align-items: center;
|
|
131
|
-
.header
|
|
132
|
-
.header h1 {
|
|
133
|
-
.header
|
|
134
|
-
|
|
133
|
+
.header { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; background: rgba(255, 255, 255, ${opacity * 0.1}); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 14px; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3); width: 100%; }
|
|
134
|
+
.header h1 { font-size: 1.1rem; font-weight: 600; color: #ffffff; display: flex; align-items: center; gap: 8px; letter-spacing: -0.3px; }
|
|
135
|
+
.header h1::before { content: '◈'; color: ${accentColor}; font-size: 0.9rem; }
|
|
136
|
+
.header-right { display: flex; align-items: center; gap: 10px; }
|
|
137
|
+
|
|
138
|
+
.btn-settings { background: rgba(255, 255, 255, 0.1); color: #ffffff; border: 1px solid rgba(255, 255, 255, 0.15); padding: 6px 14px; border-radius: 10px; font-size: 0.72rem; font-weight: 600; cursor: pointer; transition: 0.2s; backdrop-filter: blur(10px); }
|
|
139
|
+
.btn-settings:hover { background: rgba(255, 255, 255, 0.2); }
|
|
140
|
+
|
|
141
|
+
.badge { padding: 4px 10px; border-radius: 20px; font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; }
|
|
142
|
+
.badge.online { background: rgba(48, 209, 88, 0.2); color: #30d158; border: 1px solid rgba(48, 209, 88, 0.4); }
|
|
143
|
+
.badge.offline { background: rgba(255, 69, 58, 0.2); color: #ff453a; border: 1px solid rgba(255, 69, 58, 0.4); }
|
|
144
|
+
.badge.connecting { background: rgba(255, 159, 10, 0.2); color: #ff9f0a; border: 1px solid rgba(255, 159, 10, 0.4); }
|
|
135
145
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
.
|
|
141
|
-
.
|
|
142
|
-
.
|
|
143
|
-
|
|
144
|
-
.
|
|
145
|
-
.card { background:
|
|
146
|
-
.card::before {
|
|
147
|
-
.card.
|
|
148
|
-
.card.
|
|
149
|
-
.card.
|
|
150
|
-
.card.
|
|
151
|
-
.
|
|
152
|
-
|
|
153
|
-
.card .
|
|
154
|
-
.
|
|
155
|
-
|
|
156
|
-
.pairing-highlight { color: #38bdf8 !important; font-family: 'JetBrains Mono', monospace; font-size: 1.05rem !important; letter-spacing: 1px; }
|
|
157
|
-
|
|
158
|
-
.terminal-card { display: ${this.widgets.showTerminal ? 'block' : 'none'}; background: rgba(22, 27, 34, ${this.theme.opacity}); backdrop-filter: blur(10px); border: 1px solid #30363d; border-radius: 6px; overflow: hidden; margin-bottom: 16px; width: 100%; }
|
|
159
|
-
.terminal-header { background: rgba(1, 4, 9, 0.8); padding: 8px 12px; font-size: 0.7rem; font-weight: 600; color: #8b949e; border-bottom: 1px solid #21262d; display: flex; justify-content: space-between; align-items: center; }
|
|
146
|
+
#widget-metrics-container { order: 1; }
|
|
147
|
+
#widget-player-container { order: 2; }
|
|
148
|
+
#widget-terminal-container { order: 3; }
|
|
149
|
+
|
|
150
|
+
.grid { display: ${this.widgets.showMetrics ? 'grid' : 'none'}; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; width: 100%; }
|
|
151
|
+
.card { background: rgba(255, 255, 255, ${opacity * 0.07}); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 14px; padding: 14px; position: relative; overflow: hidden; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.25); }
|
|
152
|
+
.card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: rgba(255,255,255,0.4); }
|
|
153
|
+
.card.cyan::before { background: #64d2ff; }
|
|
154
|
+
.card.blue::before { background: ${accentColor}; }
|
|
155
|
+
.card.purple::before { background: #bf5af2; }
|
|
156
|
+
.card.orange::before { background: #ff9f0a; }
|
|
157
|
+
.card.green::before { background: #30d158; }
|
|
158
|
+
.card .title { font-size: 0.6rem; text-transform: uppercase; font-weight: 700; color: rgba(255,255,255,0.6); letter-spacing: 0.5px; margin-bottom: 4px; }
|
|
159
|
+
.card .value { font-size: 0.95rem; font-weight: 700; color: #ffffff; letter-spacing: -0.2px; }
|
|
160
|
+
.card .subtext { font-size: 0.65rem; color: rgba(255,255,255,0.45); margin-top: 2px; }
|
|
161
|
+
.pairing-highlight { color: #64d2ff !important; font-family: monospace; font-size: 1rem !important; }
|
|
162
|
+
|
|
163
|
+
.terminal-card { display: ${this.widgets.showTerminal ? 'block' : 'none'}; background: rgba(20, 20, 25, ${opacity}); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 14px; overflow: hidden; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.35); width: 100%; }
|
|
164
|
+
.terminal-header { background: rgba(0, 0, 0, 0.4); padding: 8px 14px; font-size: 0.68rem; font-weight: 600; color: rgba(255,255,255,0.6); border-bottom: 1px solid rgba(255, 255, 255, 0.08); display: flex; justify-content: space-between; align-items: center; }
|
|
160
165
|
.dots { display: flex; gap: 5px; }
|
|
161
|
-
.dot { width:
|
|
162
|
-
.dot.red { background: #
|
|
163
|
-
.dot.yellow { background: #
|
|
164
|
-
.dot.green { background: #
|
|
166
|
+
.dot { width: 8px; height: 8px; border-radius: 50%; }
|
|
167
|
+
.dot.red { background: #ff453a; }
|
|
168
|
+
.dot.yellow { background: #ff9f0a; }
|
|
169
|
+
.dot.green { background: #30d158; }
|
|
165
170
|
|
|
166
171
|
#logs {
|
|
167
|
-
padding:
|
|
168
|
-
height:
|
|
172
|
+
padding: 10px 14px;
|
|
173
|
+
height: 260px;
|
|
169
174
|
overflow-y: auto;
|
|
170
|
-
background:
|
|
171
|
-
color: #
|
|
172
|
-
font-family: '
|
|
173
|
-
font-size: 0.
|
|
174
|
-
line-height: 1.
|
|
175
|
+
background: transparent;
|
|
176
|
+
color: #d1d1d6;
|
|
177
|
+
font-family: 'SF Mono', SFMono-Regular, Consolas, monospace;
|
|
178
|
+
font-size: 0.74rem;
|
|
179
|
+
line-height: 1.2;
|
|
175
180
|
margin: 0;
|
|
176
181
|
white-space: pre-wrap;
|
|
177
182
|
word-break: break-all;
|
|
@@ -179,149 +184,212 @@ export class Dashboard {
|
|
|
179
184
|
|
|
180
185
|
.player-card {
|
|
181
186
|
display: ${this.widgets.showMusicPlayer ? 'flex' : 'none'};
|
|
182
|
-
background: rgba(
|
|
183
|
-
backdrop-filter: blur(
|
|
184
|
-
|
|
185
|
-
border
|
|
186
|
-
|
|
187
|
+
background: rgba(255, 255, 255, ${opacity * 0.07});
|
|
188
|
+
backdrop-filter: blur(20px);
|
|
189
|
+
-webkit-backdrop-filter: blur(20px);
|
|
190
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
191
|
+
border-radius: 14px;
|
|
192
|
+
padding: 14px 18px;
|
|
187
193
|
flex-direction: column;
|
|
188
194
|
align-items: center;
|
|
189
|
-
gap:
|
|
195
|
+
gap: 10px;
|
|
190
196
|
width: 100%;
|
|
197
|
+
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.25);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.player-info {
|
|
201
|
+
display: flex;
|
|
202
|
+
flex-direction: column;
|
|
203
|
+
align-items: center;
|
|
204
|
+
text-align: center;
|
|
205
|
+
gap: 2px;
|
|
206
|
+
width: 100%;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.player-title {
|
|
210
|
+
font-size: 0.82rem;
|
|
211
|
+
font-weight: 700;
|
|
212
|
+
color: #ffffff;
|
|
213
|
+
white-space: nowrap;
|
|
214
|
+
overflow: hidden;
|
|
215
|
+
text-overflow: ellipsis;
|
|
216
|
+
max-width: 100%;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.player-artist {
|
|
220
|
+
font-size: 0.68rem;
|
|
221
|
+
color: rgba(255,255,255,0.5);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.play-btn-circle {
|
|
225
|
+
background: #ffffff;
|
|
226
|
+
color: #000000;
|
|
227
|
+
border: none;
|
|
228
|
+
width: 38px;
|
|
229
|
+
height: 38px;
|
|
230
|
+
border-radius: 50%;
|
|
231
|
+
font-size: 0.85rem;
|
|
232
|
+
cursor: pointer;
|
|
233
|
+
display: flex;
|
|
234
|
+
align-items: center;
|
|
235
|
+
justify-content: center;
|
|
236
|
+
transition: transform 0.2s;
|
|
237
|
+
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.play-btn-circle:hover {
|
|
241
|
+
transform: scale(1.08);
|
|
191
242
|
}
|
|
192
243
|
|
|
193
|
-
.
|
|
194
|
-
.
|
|
195
|
-
.
|
|
196
|
-
.
|
|
197
|
-
.
|
|
198
|
-
|
|
199
|
-
.
|
|
200
|
-
.
|
|
201
|
-
.
|
|
202
|
-
|
|
203
|
-
.
|
|
204
|
-
.
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
/* Modal Settings Overlay */
|
|
208
|
-
.modal-overlay { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.7); backdrop-filter: blur(5px); z-index: 1000; align-items: center; justify-content: center; padding: 16px; }
|
|
209
|
-
.modal-content { background: #161b22; border: 1px solid #30363d; border-radius: 8px; width: 100%; max-width: 450px; padding: 20px; display: flex; flex-direction: column; gap: 14px; }
|
|
210
|
-
.modal-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #21262d; padding-bottom: 10px; }
|
|
211
|
-
.modal-header h2 { font-size: 1rem; color: #f0f6fc; }
|
|
212
|
-
.modal-close { background: transparent; border: none; color: #8b949e; font-size: 1.2rem; cursor: pointer; }
|
|
244
|
+
.modal-overlay { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.6); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); z-index: 1000; align-items: center; justify-content: center; padding: 16px; }
|
|
245
|
+
.modal-content { background: rgba(30, 30, 35, 0.85); backdrop-filter: blur(30px); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 18px; width: 100%; max-width: 420px; padding: 20px; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 20px 40px rgba(0,0,0,0.5); max-height: 90vh; overflow-y: auto; }
|
|
246
|
+
.modal-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 10px; }
|
|
247
|
+
.modal-header h2 { font-size: 0.9rem; color: #ffffff; font-family: monospace; letter-spacing: -0.2px; }
|
|
248
|
+
.modal-close { background: transparent; border: none; color: rgba(255,255,255,0.5); font-size: 1rem; cursor: pointer; }
|
|
249
|
+
|
|
250
|
+
.tab-nav { display: flex; gap: 6px; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 8px; }
|
|
251
|
+
.tab-btn { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); color: rgba(255,255,255,0.5); padding: 6px 10px; border-radius: 8px; font-size: 0.7rem; font-weight: 700; cursor: pointer; font-family: monospace; flex: 1; text-align: center; }
|
|
252
|
+
.tab-btn.active { background: rgba(255,255,255,0.15); color: #ffffff; border-color: rgba(255,255,255,0.3); }
|
|
253
|
+
|
|
254
|
+
.tab-pane { display: none; flex-direction: column; gap: 12px; }
|
|
255
|
+
.tab-pane.active { display: flex; }
|
|
256
|
+
|
|
213
257
|
.form-group { display: flex; flex-direction: column; gap: 6px; }
|
|
214
|
-
.form-group label { font-size: 0.
|
|
215
|
-
.form-control { background:
|
|
216
|
-
.checkbox-group { display: flex; align-items: center; gap: 8px; font-size: 0.
|
|
217
|
-
.btn-save { background: #
|
|
258
|
+
.form-group label { font-size: 0.72rem; font-weight: 600; color: rgba(255,255,255,0.6); }
|
|
259
|
+
.form-control { background: rgba(0, 0, 0, 0.4); border: 1px solid rgba(255, 255, 255, 0.12); color: #ffffff; padding: 8px 10px; border-radius: 8px; font-size: 0.78rem; outline: none; }
|
|
260
|
+
.checkbox-group { display: flex; align-items: center; gap: 8px; font-size: 0.78rem; color: rgba(255,255,255,0.8); cursor: pointer; }
|
|
261
|
+
.btn-save { background: #0a84ff; color: #fff; border: none; padding: 10px; border-radius: 10px; font-weight: 600; cursor: pointer; margin-top: 6px; transition: 0.2s; font-family: monospace; }
|
|
262
|
+
.btn-save:hover { background: #0071e3; }
|
|
218
263
|
</style>
|
|
219
264
|
</head>
|
|
220
265
|
<body>
|
|
221
266
|
<div class="container">
|
|
222
267
|
<div class="header">
|
|
223
|
-
<
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
<div class="header-actions">
|
|
227
|
-
<button class="btn-settings" onclick="openModal()">⚙️ SETTINGS</button>
|
|
268
|
+
<h1 id="dashboard-title">${this.title}</h1>
|
|
269
|
+
<div class="header-right">
|
|
270
|
+
<button class="btn-settings" onclick="openModal()">[+] SETTINGS</button>
|
|
228
271
|
<span id="status-badge" class="badge ${this.status.toLowerCase()}">${this.status}</span>
|
|
229
272
|
</div>
|
|
230
273
|
</div>
|
|
231
274
|
|
|
232
|
-
<div
|
|
233
|
-
<div class="
|
|
234
|
-
<div class="
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
<div class="
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
<div class="
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
<div class="
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
<div class="
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
</div>
|
|
259
|
-
|
|
260
|
-
<div class="terminal-card" id="terminal-card">
|
|
261
|
-
<div class="terminal-header">
|
|
262
|
-
<span>TERMINAL / LIVE WHATSAPP LOGS</span>
|
|
263
|
-
<div class="dots">
|
|
264
|
-
<div class="dot red"></div>
|
|
265
|
-
<div class="dot yellow"></div>
|
|
266
|
-
<div class="dot green"></div>
|
|
275
|
+
<div id="widget-metrics-container">
|
|
276
|
+
<div class="grid" id="metrics-grid">
|
|
277
|
+
<div class="card cyan">
|
|
278
|
+
<div class="title">WhatsApp Pairing Code</div>
|
|
279
|
+
<div class="value pairing-highlight" id="pairing-code">------</div>
|
|
280
|
+
<div class="subtext">Device auth code</div>
|
|
281
|
+
</div>
|
|
282
|
+
<div class="card blue">
|
|
283
|
+
<div class="title">Operating System</div>
|
|
284
|
+
<div class="value" id="os-name">-</div>
|
|
285
|
+
<div class="subtext" id="cpu-name">-</div>
|
|
286
|
+
</div>
|
|
287
|
+
<div class="card purple">
|
|
288
|
+
<div class="title">Memory Usage</div>
|
|
289
|
+
<div class="value" id="ram-text">- / - MB</div>
|
|
290
|
+
<div class="subtext" id="ram-percent">- % utilized</div>
|
|
291
|
+
</div>
|
|
292
|
+
<div class="card orange">
|
|
293
|
+
<div class="title">Total Commands</div>
|
|
294
|
+
<div class="value" id="total-commands">0</div>
|
|
295
|
+
<div class="subtext">Executed</div>
|
|
296
|
+
</div>
|
|
297
|
+
<div class="card green">
|
|
298
|
+
<div class="title">Total Groups</div>
|
|
299
|
+
<div class="value" id="total-groups">0</div>
|
|
300
|
+
<div class="subtext">Active chats</div>
|
|
267
301
|
</div>
|
|
268
302
|
</div>
|
|
269
|
-
<pre id="logs">[SYSTEM] Pterodactyl-style console initialized. Listening for bot events... </pre>
|
|
270
303
|
</div>
|
|
271
304
|
|
|
272
|
-
<div
|
|
273
|
-
<div class="player-
|
|
274
|
-
<
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
<div class="song-details">
|
|
279
|
-
<img id="track-thumb" class="song-thumb" src="https://via.placeholder.com/44/161b22/8b949e?text=🎵" alt="Thumb">
|
|
280
|
-
<div class="song-info">
|
|
281
|
-
<div class="song-title" id="track-title">Belum ada lagu diputar</div>
|
|
282
|
-
<div class="song-artist" id="track-channel">Ketik lagu lalu klik cari...</div>
|
|
305
|
+
<div id="widget-player-container">
|
|
306
|
+
<div class="player-card" id="player-card">
|
|
307
|
+
<div class="player-info">
|
|
308
|
+
<div class="player-title" id="track-title">[ NO AUDIO PLAYING ]</div>
|
|
309
|
+
<div class="player-artist" id="track-channel">Use [SETTINGS] to search & play song</div>
|
|
283
310
|
</div>
|
|
311
|
+
<button class="play-btn-circle" id="play-btn" onclick="togglePlay()">▶</button>
|
|
312
|
+
<audio id="audio-player" preload="none"></audio>
|
|
284
313
|
</div>
|
|
314
|
+
</div>
|
|
285
315
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
<div class="
|
|
289
|
-
<span
|
|
290
|
-
<
|
|
316
|
+
<div id="widget-terminal-container">
|
|
317
|
+
<div class="terminal-card" id="terminal-card">
|
|
318
|
+
<div class="terminal-header">
|
|
319
|
+
<span>TERMINAL / LIVE WHATSAPP LOGS</span>
|
|
320
|
+
<div class="dots">
|
|
321
|
+
<div class="dot red"></div>
|
|
322
|
+
<div class="dot yellow"></div>
|
|
323
|
+
<div class="dot green"></div>
|
|
324
|
+
</div>
|
|
291
325
|
</div>
|
|
326
|
+
<pre id="logs">[SYSTEM] iOS Glass console initialized. Listening for events... </pre>
|
|
292
327
|
</div>
|
|
293
|
-
|
|
294
|
-
<button class="play-btn-circle" id="play-btn" onclick="togglePlay()">▶</button>
|
|
295
|
-
<audio id="audio-player" preload="none"></audio>
|
|
296
328
|
</div>
|
|
297
329
|
</div>
|
|
298
330
|
|
|
299
|
-
<!--
|
|
331
|
+
<!-- Dual Tab Modal Settings -->
|
|
300
332
|
<div class="modal-overlay" id="settings-modal">
|
|
301
333
|
<div class="modal-content">
|
|
302
334
|
<div class="modal-header">
|
|
303
|
-
<h2
|
|
304
|
-
<button class="modal-close" onclick="closeModal()"
|
|
305
|
-
</div>
|
|
306
|
-
<div class="form-group">
|
|
307
|
-
<label>Transparansi / Opacity (<span id="opacity-val">85</span>%)</label>
|
|
308
|
-
<input type="range" class="form-control" id="cfg-opacity" min="0.1" max="1" step="0.05" value="${this.theme.opacity}" oninput="updateOpacityLabel(this.value)">
|
|
335
|
+
<h2>[+] IOS CONTROL PANEL</h2>
|
|
336
|
+
<button class="modal-close" onclick="closeModal()">[X]</button>
|
|
309
337
|
</div>
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
<
|
|
338
|
+
|
|
339
|
+
<div class="tab-nav">
|
|
340
|
+
<button class="tab-btn active" onclick="switchTab('tab-ui', this)">UI & BACKGROUND</button>
|
|
341
|
+
<button class="tab-btn" onclick="switchTab('tab-bot', this)">BOT SETTINGS</button>
|
|
313
342
|
</div>
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
343
|
+
|
|
344
|
+
<!-- Tab 1: UI & Background Settings -->
|
|
345
|
+
<div class="tab-pane active" id="tab-ui">
|
|
346
|
+
<div class="form-group">
|
|
347
|
+
<label>Search & Play YouTube Song</label>
|
|
348
|
+
<input type="text" class="form-control" id="cfg-song" placeholder="Type song title..." value="">
|
|
349
|
+
</div>
|
|
350
|
+
<div class="form-group">
|
|
351
|
+
<label>Glass Opacity (<span id="opacity-val">${Math.round(opacity * 100)}</span>%)</label>
|
|
352
|
+
<input type="range" class="form-control" id="cfg-opacity" min="0.1" max="1" step="0.05" value="${opacity}" oninput="updateOpacityLabel(this.value)">
|
|
353
|
+
</div>
|
|
354
|
+
<div class="form-group">
|
|
355
|
+
<label>Pilih File Background (Dari Perangkat)</label>
|
|
356
|
+
<input type="file" class="form-control" id="cfg-bg-file" accept="image/*" onchange="previewFileBg(event)">
|
|
357
|
+
</div>
|
|
358
|
+
<div class="form-group">
|
|
359
|
+
<label>Widgets Layout Order</label>
|
|
360
|
+
<select class="form-control" id="cfg-order">
|
|
361
|
+
<option value="default">Status -> Player -> Terminal</option>
|
|
362
|
+
<option value="terminal-first">Terminal -> Player -> Status</option>
|
|
363
|
+
</select>
|
|
364
|
+
</div>
|
|
365
|
+
<div class="form-group">
|
|
366
|
+
<label>Toggle Widgets Visibility</label>
|
|
367
|
+
<label class="checkbox-group"><input type="checkbox" id="cfg-w-metrics" ${this.widgets.showMetrics ? 'checked' : ''}> Show Metrics Box</label>
|
|
368
|
+
<label class="checkbox-group"><input type="checkbox" id="cfg-w-music" ${this.widgets.showMusicPlayer ? 'checked' : ''}> Show Music Player</label>
|
|
369
|
+
label class="checkbox-group"><input type="checkbox" id="cfg-w-terminal" ${this.widgets.showTerminal ? 'checked' : ''}> Show Terminal Log</label>
|
|
370
|
+
</div>
|
|
317
371
|
</div>
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
<
|
|
322
|
-
|
|
372
|
+
|
|
373
|
+
<!-- Tab 2: Bot Settings -->
|
|
374
|
+
<div class="tab-pane" id="tab-bot">
|
|
375
|
+
<div class="form-group">
|
|
376
|
+
<label>Nama Bot</label>
|
|
377
|
+
<input type="text" class="form-control" id="cfg-bot-name" placeholder="Shiina-MD" value="Shiina-MD">
|
|
378
|
+
</div>
|
|
379
|
+
<div class="form-group">
|
|
380
|
+
<label>URL Foto / Thumbnail Menu</label>
|
|
381
|
+
<input type="text" class="form-control" id="cfg-menu-thumb" placeholder="https://..." value="">
|
|
382
|
+
</div>
|
|
383
|
+
<div class="form-group">
|
|
384
|
+
<label>Bot Security & Features Toggles</label>
|
|
385
|
+
<label class="checkbox-group"><input type="checkbox" id="cfg-antilink" checked> Anti Link (Block group/web links)</label>
|
|
386
|
+
<label class="checkbox-group"><input type="checkbox" id="cfg-antibot" checked> Anti Bot (Prevent bot collisions)</label>
|
|
387
|
+
<label class="checkbox-group"><input type="checkbox" id="cfg-antimedia" checked> Anti Spammed Media</label>
|
|
388
|
+
<label class="checkbox-group"><input type="checkbox" id="cfg-autoread" checked> Auto-Read Incoming Messages</label>
|
|
389
|
+
</div>
|
|
323
390
|
</div>
|
|
324
|
-
|
|
391
|
+
|
|
392
|
+
<button class="btn-save" onclick="saveSettings()">APPLY & SAVE CHANGES</button>
|
|
325
393
|
</div>
|
|
326
394
|
</div>
|
|
327
395
|
|
|
@@ -353,90 +421,55 @@ export class Dashboard {
|
|
|
353
421
|
});
|
|
354
422
|
|
|
355
423
|
function updateMetrics(data) {
|
|
356
|
-
|
|
424
|
+
const storedName = localStorage.getItem('shiina_bot_name') || data.title;
|
|
425
|
+
document.getElementById('dashboard-title').innerText = storedName;
|
|
357
426
|
document.getElementById('os-name').innerText = data.os;
|
|
358
427
|
document.getElementById('cpu-name').innerText = data.cpu;
|
|
359
428
|
document.getElementById('ram-text').innerText = data.ramUsed + ' MB / ' + data.ramTotal + ' MB';
|
|
360
429
|
document.getElementById('ram-percent').innerText = data.ramPercent + '% utilized';
|
|
361
430
|
document.getElementById('total-commands').innerText = data.commands;
|
|
362
431
|
document.getElementById('total-groups').innerText = data.groups;
|
|
363
|
-
|
|
432
|
+
if (data.pairingCode && data.pairingCode !== '-') {
|
|
433
|
+
document.getElementById('pairing-code').innerText = data.pairingCode;
|
|
434
|
+
}
|
|
364
435
|
|
|
365
436
|
const badge = document.getElementById('status-badge');
|
|
366
437
|
badge.innerText = data.status;
|
|
367
438
|
badge.className = 'badge ' + data.status.toLowerCase();
|
|
368
439
|
}
|
|
369
440
|
|
|
370
|
-
// Web Modal & Customization Script
|
|
371
|
-
function openModal() { document.getElementById('settings-modal').style.display = 'flex'; }
|
|
372
|
-
function closeModal() { document.getElementById('settings-modal').style.display = 'none'; }
|
|
373
|
-
function updateOpacityLabel(val) { document.getElementById('opacity-val').innerText = Math.round(val * 100); }
|
|
374
|
-
|
|
375
|
-
function saveSettings() {
|
|
376
|
-
const opacity = document.getElementById('cfg-opacity').value;
|
|
377
|
-
const bg = document.getElementById('cfg-bg').value;
|
|
378
|
-
const color = document.getElementById('cfg-color').value;
|
|
379
|
-
const showMetrics = document.getElementById('cfg-w-metrics').checked;
|
|
380
|
-
const showTerminal = document.getElementById('cfg-w-terminal').checked;
|
|
381
|
-
const showMusic = document.getElementById('cfg-w-music').checked;
|
|
382
|
-
|
|
383
|
-
// Apply directly into DOM
|
|
384
|
-
document.querySelectorAll('.card, .header, .terminal-card').forEach(el => {
|
|
385
|
-
el.style.background = 'rgba(22, 27, 34, ' + opacity + ')';
|
|
386
|
-
});
|
|
387
|
-
document.querySelector('.player-card').style.background = 'rgba(0, 0, 0, ' + opacity + ')';
|
|
388
|
-
|
|
389
|
-
if (bg) {
|
|
390
|
-
document.body.style.background = "url('" + bg + "') no-repeat center center fixed";
|
|
391
|
-
document.body.style.backgroundSize = "cover";
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
document.getElementById('metrics-grid').style.display = showMetrics ? 'grid' : 'none';
|
|
395
|
-
document.getElementById('terminal-card').style.display = showTerminal ? 'block' : 'none';
|
|
396
|
-
document.getElementById('player-card').style.display = showMusic ? 'flex' : 'none';
|
|
397
|
-
|
|
398
|
-
closeModal();
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
// Audio Player Controller
|
|
402
441
|
const audio = document.getElementById('audio-player');
|
|
403
442
|
const playBtn = document.getElementById('play-btn');
|
|
404
443
|
const trackTitle = document.getElementById('track-title');
|
|
405
444
|
const trackChannel = document.getElementById('track-channel');
|
|
406
|
-
|
|
407
|
-
const searchQuery = document.getElementById('search-query');
|
|
408
|
-
const seekBar = document.getElementById('seek-bar');
|
|
409
|
-
const currentTimeLabel = document.getElementById('current-time');
|
|
410
|
-
const remainingTimeLabel = document.getElementById('remaining-time');
|
|
411
|
-
|
|
412
|
-
async function searchMusic() {
|
|
413
|
-
const query = searchQuery.value.trim();
|
|
414
|
-
if (!query) return;
|
|
445
|
+
let uploadedBgBase64 = '';
|
|
415
446
|
|
|
416
|
-
|
|
447
|
+
async function fetchAndPlaySong(query) {
|
|
448
|
+
if (!query) return;
|
|
449
|
+
trackTitle.innerText = '[ LOADING AUDIO... ]';
|
|
417
450
|
try {
|
|
418
451
|
const res = await fetch('/api/play?q=' + encodeURIComponent(query));
|
|
419
452
|
const json = await res.json();
|
|
420
|
-
|
|
421
453
|
if (json.status && json.result) {
|
|
422
454
|
const data = json.result;
|
|
423
455
|
trackTitle.innerText = data.title;
|
|
424
456
|
trackChannel.innerText = data.channel;
|
|
425
|
-
trackThumb.src = data.thumbnail;
|
|
426
457
|
audio.src = data.download || data.downloadUrl || data.download_url;
|
|
427
|
-
|
|
428
458
|
audio.play();
|
|
429
459
|
playBtn.innerText = '❚❚';
|
|
430
460
|
} else {
|
|
431
|
-
trackTitle.innerText = '
|
|
461
|
+
trackTitle.innerText = '[ SONG NOT FOUND ]';
|
|
432
462
|
}
|
|
433
463
|
} catch (err) {
|
|
434
|
-
trackTitle.innerText = '
|
|
464
|
+
trackTitle.innerText = '[ API ERROR ]';
|
|
435
465
|
}
|
|
436
466
|
}
|
|
437
467
|
|
|
438
468
|
function togglePlay() {
|
|
439
|
-
if (!audio.src)
|
|
469
|
+
if (!audio.src) {
|
|
470
|
+
openModal();
|
|
471
|
+
return;
|
|
472
|
+
}
|
|
440
473
|
if (audio.paused) {
|
|
441
474
|
audio.play();
|
|
442
475
|
playBtn.innerText = '❚❚';
|
|
@@ -446,30 +479,134 @@ export class Dashboard {
|
|
|
446
479
|
}
|
|
447
480
|
}
|
|
448
481
|
|
|
449
|
-
function
|
|
450
|
-
|
|
482
|
+
function openModal() { document.getElementById('settings-modal').style.display = 'flex'; }
|
|
483
|
+
function closeModal() { document.getElementById('settings-modal').style.display = 'none'; }
|
|
484
|
+
function updateOpacityLabel(val) { document.getElementById('opacity-val').innerText = Math.round(val * 100); }
|
|
485
|
+
|
|
486
|
+
function switchTab(tabId, btn) {
|
|
487
|
+
document.querySelectorAll('.tab-pane').forEach(p => p.classList.remove('active'));
|
|
488
|
+
document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));
|
|
489
|
+
document.getElementById(tabId).classList.add('active');
|
|
490
|
+
btn.classList.add('active');
|
|
451
491
|
}
|
|
452
492
|
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
493
|
+
function previewFileBg(event) {
|
|
494
|
+
const file = event.target.files[0];
|
|
495
|
+
if (file) {
|
|
496
|
+
const reader = new FileReader();
|
|
497
|
+
reader.onload = function(e) {
|
|
498
|
+
uploadedBgBase64 = e.target.result;
|
|
499
|
+
};
|
|
500
|
+
reader.readAsDataURL(file);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
function saveSettings() {
|
|
505
|
+
const opacity = document.getElementById('cfg-opacity').value;
|
|
506
|
+
const order = document.getElementById('cfg-order').value;
|
|
507
|
+
const showMetrics = document.getElementById('cfg-w-metrics').checked;
|
|
508
|
+
const showTerminal = document.getElementById('cfg-w-terminal').checked;
|
|
509
|
+
const showMusic = document.getElementById('cfg-w-music').checked;
|
|
510
|
+
const newSong = document.getElementById('cfg-song').value.trim();
|
|
511
|
+
|
|
512
|
+
const botName = document.getElementById('cfg-bot-name').value.trim();
|
|
513
|
+
const menuThumb = document.getElementById('cfg-menu-thumb').value.trim();
|
|
514
|
+
const antilink = document.getElementById('cfg-antilink').checked;
|
|
515
|
+
const antibot = document.getElementById('cfg-antibot').checked;
|
|
516
|
+
const antimedia = document.getElementById('cfg-antimedia').checked;
|
|
517
|
+
const autoread = document.getElementById('cfg-autoread').checked;
|
|
518
|
+
|
|
519
|
+
const bg = uploadedBgBase64 || (JSON.parse(localStorage.getItem('shiina_ui_config') || '{}').bg || '');
|
|
520
|
+
|
|
521
|
+
const config = {
|
|
522
|
+
opacity, bg, order, showMetrics, showTerminal, showMusic, newSong,
|
|
523
|
+
botName, menuThumb, antilink, antibot, antimedia, autoread
|
|
524
|
+
};
|
|
525
|
+
|
|
526
|
+
localStorage.setItem('shiina_ui_config', JSON.stringify(config));
|
|
527
|
+
if (botName) {
|
|
528
|
+
localStorage.setItem('shiina_bot_name', botName);
|
|
529
|
+
document.getElementById('dashboard-title').innerText = botName;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
applyUI(config);
|
|
533
|
+
|
|
534
|
+
if (newSong) {
|
|
535
|
+
fetchAndPlaySong(newSong);
|
|
466
536
|
}
|
|
467
|
-
});
|
|
468
537
|
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
538
|
+
closeModal();
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
function applyUI(cfg) {
|
|
542
|
+
if (!cfg) return;
|
|
543
|
+
|
|
544
|
+
document.querySelectorAll('.card, .header').forEach(el => {
|
|
545
|
+
el.style.background = 'rgba(255, 255, 255, ' + (cfg.opacity * 0.07) + ')';
|
|
546
|
+
});
|
|
547
|
+
document.querySelectorAll('.player-card').forEach(el => {
|
|
548
|
+
el.style.background = 'rgba(255, 255, 255, ' + (cfg.opacity * 0.07) + ')';
|
|
549
|
+
});
|
|
550
|
+
document.querySelectorAll('.terminal-card').forEach(el => {
|
|
551
|
+
el.style.background = 'rgba(20, 20, 25, ' + cfg.opacity + ')';
|
|
552
|
+
});
|
|
553
|
+
|
|
554
|
+
if (cfg.bg) {
|
|
555
|
+
document.body.style.background = "url('" + cfg.bg + "') no-repeat center center fixed";
|
|
556
|
+
document.body.style.backgroundSize = "cover";
|
|
557
|
+
} else {
|
|
558
|
+
document.body.style.background = "linear-gradient(135deg, #0a0a0c 0%, #1c1c24 100%)";
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
const cMetrics = document.getElementById('widget-metrics-container');
|
|
562
|
+
const cPlayer = document.getElementById('widget-player-container');
|
|
563
|
+
const cTerminal = document.getElementById('widget-terminal-container');
|
|
564
|
+
|
|
565
|
+
if (cfg.order === 'terminal-first') {
|
|
566
|
+
cTerminal.style.order = '1';
|
|
567
|
+
cPlayer.style.order = '2';
|
|
568
|
+
cMetrics.style.order = '3';
|
|
569
|
+
} else {
|
|
570
|
+
cMetrics.style.order = '1';
|
|
571
|
+
cPlayer.style.order = '2';
|
|
572
|
+
cTerminal.style.order = '3';
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
document.getElementById('metrics-grid').style.display = cfg.showMetrics ? 'grid' : 'none';
|
|
576
|
+
document.getElementById('player-card').style.display = cfg.showMusic ? 'flex' : 'none';
|
|
577
|
+
document.getElementById('terminal-card').style.display = cfg.showTerminal ? 'block' : 'none';
|
|
578
|
+
|
|
579
|
+
if (cfg.botName) document.getElementById('cfg-bot-name').value = cfg.botName;
|
|
580
|
+
if (cfg.menuThumb) document.getElementById('cfg-menu-thumb').value = cfg.menuThumb;
|
|
581
|
+
if (cfg.antilink !== undefined) document.getElementById('cfg-antilink').checked = cfg.antilink;
|
|
582
|
+
if (cfg.antibot !== undefined) document.getElementById('cfg-antibot').checked = cfg.antibot;
|
|
583
|
+
if (cfg.antimedia !== undefined) document.getElementById('cfg-antimedia').checked = cfg.antimedia;
|
|
584
|
+
if (cfg.autoread !== undefined) document.getElementById('cfg-autoread').checked = cfg.autoread;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
window.addEventListener('DOMContentLoaded', () => {
|
|
588
|
+
const saved = localStorage.getItem('shiina_ui_config');
|
|
589
|
+
const savedName = localStorage.getItem('shiina_bot_name');
|
|
590
|
+
if (savedName) document.getElementById('dashboard-title').innerText = savedName;
|
|
591
|
+
|
|
592
|
+
if (saved) {
|
|
593
|
+
try {
|
|
594
|
+
const cfg = JSON.parse(saved);
|
|
595
|
+
document.getElementById('cfg-opacity').value = cfg.opacity || 0.75;
|
|
596
|
+
document.getElementById('opacity-val').innerText = Math.round((cfg.opacity || 0.75) * 100);
|
|
597
|
+
document.getElementById('cfg-order').value = cfg.order || 'default';
|
|
598
|
+
document.getElementById('cfg-w-metrics').checked = cfg.showMetrics !== false;
|
|
599
|
+
document.getElementById('cfg-w-music').checked = cfg.showMusicPlayer !== false;
|
|
600
|
+
document.getElementById('cfg-w-terminal').checked = cfg.showTerminal !== false;
|
|
601
|
+
if (cfg.botName) document.getElementById('cfg-bot-name').value = cfg.botName;
|
|
602
|
+
if (cfg.menuThumb) document.getElementById('cfg-menu-thumb').value = cfg.menuThumb;
|
|
603
|
+
if (cfg.antilink !== undefined) document.getElementById('cfg-antilink').checked = cfg.antilink;
|
|
604
|
+
if (cfg.antibot !== undefined) document.getElementById('cfg-antibot').checked = cfg.antibot;
|
|
605
|
+
if (cfg.antimedia !== undefined) document.getElementById('cfg-antimedia').checked = cfg.antimedia;
|
|
606
|
+
if (cfg.autoread !== undefined) document.getElementById('cfg-autoread').checked = cfg.autoread;
|
|
607
|
+
applyUI(cfg);
|
|
608
|
+
} catch(e) {}
|
|
609
|
+
}
|
|
473
610
|
});
|
|
474
611
|
</script>
|
|
475
612
|
</body>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/Utils/dashboard.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/Utils/dashboard.ts"],"names":[],"mappings":"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"}
|