baileys-idn 1.0.11 → 1.0.13
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 +191 -131
- 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;
|
|
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;IAyBnB,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;CAydrB;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 || '#0a84ff',
|
|
21
|
+
opacity: options.theme?.opacity !== undefined ? options.theme.opacity : 0.75,
|
|
22
22
|
bgImage: options.theme?.bgImage || ''
|
|
23
23
|
};
|
|
24
24
|
this.widgets = {
|
|
@@ -31,7 +31,9 @@ export class Dashboard {
|
|
|
31
31
|
}
|
|
32
32
|
setupRoutes() {
|
|
33
33
|
this.app.get('/', (req, res) => {
|
|
34
|
-
res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate,
|
|
34
|
+
res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, proxy-revalidate');
|
|
35
|
+
res.setHeader('Pragma', 'no-cache');
|
|
36
|
+
res.setHeader('Expires', '0');
|
|
35
37
|
res.send(this.renderHTML());
|
|
36
38
|
});
|
|
37
39
|
this.app.get('/api/play', async (req, res) => {
|
|
@@ -87,7 +89,7 @@ export class Dashboard {
|
|
|
87
89
|
updatePairingCode(code) {
|
|
88
90
|
this.pairingCode = code;
|
|
89
91
|
this.io.emit('pairing-update', code);
|
|
90
|
-
const formattedLog =
|
|
92
|
+
const formattedLog = `PAIRING CODE: ${code}`;
|
|
91
93
|
log.info(formattedLog);
|
|
92
94
|
this.emitLog(formattedLog);
|
|
93
95
|
}
|
|
@@ -112,9 +114,12 @@ export class Dashboard {
|
|
|
112
114
|
});
|
|
113
115
|
}
|
|
114
116
|
renderHTML() {
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
117
|
+
const opacity = this.theme?.opacity ?? 0.75;
|
|
118
|
+
const accentColor = this.theme?.accentColor ?? '#0a84ff';
|
|
119
|
+
const bgImage = this.theme?.bgImage ?? '';
|
|
120
|
+
const bgStyle = bgImage
|
|
121
|
+
? `background: url('${bgImage}') no-repeat center center fixed; background-size: cover;`
|
|
122
|
+
: `background: linear-gradient(135deg, #0a0a0c 0%, #1c1c24 100%);`;
|
|
118
123
|
return `<!DOCTYPE html>
|
|
119
124
|
<html lang="id">
|
|
120
125
|
<head>
|
|
@@ -124,74 +129,74 @@ export class Dashboard {
|
|
|
124
129
|
<script src="/socket.io/socket.io.js"></script>
|
|
125
130
|
<style>
|
|
126
131
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
127
|
-
body { ${bgStyle} color: #
|
|
128
|
-
.container { width: 100%; max-width:
|
|
132
|
+
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; }
|
|
133
|
+
.container { width: 100%; max-width: 850px; display: flex; flex-direction: column; gap: 14px; }
|
|
129
134
|
|
|
130
|
-
.header { display: flex; justify-content: space-between; align-items: center;
|
|
131
|
-
.header h1 { font-size: 1.
|
|
132
|
-
.header h1::before { content: '
|
|
135
|
+
.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%; }
|
|
136
|
+
.header h1 { font-size: 1.1rem; font-weight: 600; color: #ffffff; display: flex; align-items: center; gap: 8px; letter-spacing: -0.3px; }
|
|
137
|
+
.header h1::before { content: '◈'; color: ${accentColor}; font-size: 0.9rem; }
|
|
133
138
|
.header-right { display: flex; align-items: center; gap: 10px; }
|
|
134
139
|
|
|
135
|
-
.btn-settings { background:
|
|
136
|
-
.btn-settings:hover { background:
|
|
140
|
+
.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); }
|
|
141
|
+
.btn-settings:hover { background: rgba(255, 255, 255, 0.2); }
|
|
137
142
|
|
|
138
|
-
.badge { padding: 4px 10px; border-radius:
|
|
139
|
-
.badge.online { background: rgba(
|
|
140
|
-
.badge.offline { background: rgba(
|
|
141
|
-
.badge.connecting { background: rgba(
|
|
143
|
+
.badge { padding: 4px 10px; border-radius: 20px; font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; }
|
|
144
|
+
.badge.online { background: rgba(48, 209, 88, 0.2); color: #30d158; border: 1px solid rgba(48, 209, 88, 0.4); }
|
|
145
|
+
.badge.offline { background: rgba(255, 69, 58, 0.2); color: #ff453a; border: 1px solid rgba(255, 69, 58, 0.4); }
|
|
146
|
+
.badge.connecting { background: rgba(255, 159, 10, 0.2); color: #ff9f0a; border: 1px solid rgba(255, 159, 10, 0.4); }
|
|
142
147
|
|
|
143
148
|
#widget-metrics-container { order: 1; }
|
|
144
|
-
#widget-
|
|
145
|
-
#widget-
|
|
146
|
-
|
|
147
|
-
.grid { display: ${this.widgets.showMetrics ? 'grid' : 'none'}; grid-template-columns: repeat(auto-fit, minmax(
|
|
148
|
-
.card { background: rgba(
|
|
149
|
-
.card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; }
|
|
150
|
-
.card.cyan::before { background: #
|
|
151
|
-
.card.blue::before { background: ${
|
|
152
|
-
.card.purple::before { background: #
|
|
153
|
-
.card.orange::before { background: #
|
|
154
|
-
.card.green::before { background: #
|
|
155
|
-
.card .title { font-size: 0.
|
|
156
|
-
.card .value { font-size:
|
|
157
|
-
.card .subtext { font-size: 0.
|
|
158
|
-
.pairing-highlight { color: #
|
|
159
|
-
|
|
160
|
-
.terminal-card { display: ${this.widgets.showTerminal ? 'block' : 'none'}; background: rgba(
|
|
161
|
-
.terminal-header { background: rgba(
|
|
149
|
+
#widget-player-container { order: 2; }
|
|
150
|
+
#widget-terminal-container { order: 3; }
|
|
151
|
+
|
|
152
|
+
.grid { display: ${this.widgets.showMetrics ? 'grid' : 'none'}; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; width: 100%; }
|
|
153
|
+
.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); }
|
|
154
|
+
.card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: rgba(255,255,255,0.4); }
|
|
155
|
+
.card.cyan::before { background: #64d2ff; }
|
|
156
|
+
.card.blue::before { background: ${accentColor}; }
|
|
157
|
+
.card.purple::before { background: #bf5af2; }
|
|
158
|
+
.card.orange::before { background: #ff9f0a; }
|
|
159
|
+
.card.green::before { background: #30d158; }
|
|
160
|
+
.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; }
|
|
161
|
+
.card .value { font-size: 0.95rem; font-weight: 700; color: #ffffff; letter-spacing: -0.2px; }
|
|
162
|
+
.card .subtext { font-size: 0.65rem; color: rgba(255,255,255,0.45); margin-top: 2px; }
|
|
163
|
+
.pairing-highlight { color: #64d2ff !important; font-family: monospace; font-size: 1rem !important; }
|
|
164
|
+
|
|
165
|
+
.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%; }
|
|
166
|
+
.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; }
|
|
162
167
|
.dots { display: flex; gap: 5px; }
|
|
163
|
-
.dot { width:
|
|
164
|
-
.dot.red { background: #
|
|
165
|
-
.dot.yellow { background: #
|
|
166
|
-
.dot.green { background: #
|
|
168
|
+
.dot { width: 8px; height: 8px; border-radius: 50%; }
|
|
169
|
+
.dot.red { background: #ff453a; }
|
|
170
|
+
.dot.yellow { background: #ff9f0a; }
|
|
171
|
+
.dot.green { background: #30d158; }
|
|
167
172
|
|
|
168
173
|
#logs {
|
|
169
|
-
padding:
|
|
170
|
-
height:
|
|
174
|
+
padding: 10px 14px;
|
|
175
|
+
height: 260px;
|
|
171
176
|
overflow-y: auto;
|
|
172
|
-
background:
|
|
173
|
-
color: #
|
|
174
|
-
font-family: '
|
|
175
|
-
font-size: 0.
|
|
176
|
-
line-height: 1.
|
|
177
|
+
background: transparent;
|
|
178
|
+
color: #d1d1d6;
|
|
179
|
+
font-family: 'SF Mono', SFMono-Regular, Consolas, monospace;
|
|
180
|
+
font-size: 0.74rem;
|
|
181
|
+
line-height: 1.2;
|
|
177
182
|
margin: 0;
|
|
178
183
|
white-space: pre-wrap;
|
|
179
184
|
word-break: break-all;
|
|
180
185
|
}
|
|
181
186
|
|
|
182
|
-
/* Minimalist Music Player (Tanpa Thumbnail, Tanpa Seekbar) */
|
|
183
187
|
.player-card {
|
|
184
188
|
display: ${this.widgets.showMusicPlayer ? 'flex' : 'none'};
|
|
185
|
-
background: rgba(
|
|
186
|
-
backdrop-filter: blur(
|
|
187
|
-
|
|
188
|
-
border
|
|
189
|
-
|
|
189
|
+
background: rgba(255, 255, 255, ${opacity * 0.07});
|
|
190
|
+
backdrop-filter: blur(20px);
|
|
191
|
+
-webkit-backdrop-filter: blur(20px);
|
|
192
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
193
|
+
border-radius: 14px;
|
|
194
|
+
padding: 14px 18px;
|
|
190
195
|
flex-direction: column;
|
|
191
196
|
align-items: center;
|
|
192
|
-
gap:
|
|
197
|
+
gap: 10px;
|
|
193
198
|
width: 100%;
|
|
194
|
-
|
|
199
|
+
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.25);
|
|
195
200
|
}
|
|
196
201
|
|
|
197
202
|
.player-info {
|
|
@@ -204,9 +209,9 @@ export class Dashboard {
|
|
|
204
209
|
}
|
|
205
210
|
|
|
206
211
|
.player-title {
|
|
207
|
-
font-size: 0.
|
|
212
|
+
font-size: 0.82rem;
|
|
208
213
|
font-weight: 700;
|
|
209
|
-
color: #
|
|
214
|
+
color: #ffffff;
|
|
210
215
|
white-space: nowrap;
|
|
211
216
|
overflow: hidden;
|
|
212
217
|
text-overflow: ellipsis;
|
|
@@ -214,42 +219,49 @@ export class Dashboard {
|
|
|
214
219
|
}
|
|
215
220
|
|
|
216
221
|
.player-artist {
|
|
217
|
-
font-size: 0.
|
|
218
|
-
color:
|
|
222
|
+
font-size: 0.68rem;
|
|
223
|
+
color: rgba(255,255,255,0.5);
|
|
219
224
|
}
|
|
220
225
|
|
|
221
226
|
.play-btn-circle {
|
|
222
227
|
background: #ffffff;
|
|
223
228
|
color: #000000;
|
|
224
229
|
border: none;
|
|
225
|
-
width:
|
|
226
|
-
height:
|
|
230
|
+
width: 38px;
|
|
231
|
+
height: 38px;
|
|
227
232
|
border-radius: 50%;
|
|
228
|
-
font-size:
|
|
233
|
+
font-size: 0.85rem;
|
|
229
234
|
cursor: pointer;
|
|
230
235
|
display: flex;
|
|
231
236
|
align-items: center;
|
|
232
237
|
justify-content: center;
|
|
233
238
|
transition: transform 0.2s;
|
|
234
|
-
box-shadow: 0 4px
|
|
239
|
+
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
|
|
235
240
|
}
|
|
236
241
|
|
|
237
242
|
.play-btn-circle:hover {
|
|
238
243
|
transform: scale(1.08);
|
|
239
244
|
}
|
|
240
245
|
|
|
241
|
-
|
|
242
|
-
.modal-
|
|
243
|
-
.modal-
|
|
244
|
-
.modal-header {
|
|
245
|
-
.modal-
|
|
246
|
-
|
|
246
|
+
.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; }
|
|
247
|
+
.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; }
|
|
248
|
+
.modal-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 10px; }
|
|
249
|
+
.modal-header h2 { font-size: 0.9rem; color: #ffffff; font-family: monospace; letter-spacing: -0.2px; }
|
|
250
|
+
.modal-close { background: transparent; border: none; color: rgba(255,255,255,0.5); font-size: 1rem; cursor: pointer; }
|
|
251
|
+
|
|
252
|
+
.tab-nav { display: flex; gap: 6px; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 8px; }
|
|
253
|
+
.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; }
|
|
254
|
+
.tab-btn.active { background: rgba(255,255,255,0.15); color: #ffffff; border-color: rgba(255,255,255,0.3); }
|
|
255
|
+
|
|
256
|
+
.tab-pane { display: none; flex-direction: column; gap: 12px; }
|
|
257
|
+
.tab-pane.active { display: flex; }
|
|
258
|
+
|
|
247
259
|
.form-group { display: flex; flex-direction: column; gap: 6px; }
|
|
248
|
-
.form-group label { font-size: 0.
|
|
249
|
-
.form-control { background:
|
|
250
|
-
.checkbox-group { display: flex; align-items: center; gap: 8px; font-size: 0.
|
|
251
|
-
.btn-save { background: #
|
|
252
|
-
.btn-save:hover { background: #
|
|
260
|
+
.form-group label { font-size: 0.72rem; font-weight: 600; color: rgba(255,255,255,0.6); }
|
|
261
|
+
.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; }
|
|
262
|
+
.checkbox-group { display: flex; align-items: center; gap: 8px; font-size: 0.78rem; color: rgba(255,255,255,0.8); cursor: pointer; }
|
|
263
|
+
.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; }
|
|
264
|
+
.btn-save:hover { background: #0071e3; }
|
|
253
265
|
</style>
|
|
254
266
|
</head>
|
|
255
267
|
<body>
|
|
@@ -257,18 +269,17 @@ export class Dashboard {
|
|
|
257
269
|
<div class="header">
|
|
258
270
|
<h1 id="dashboard-title">${this.title}</h1>
|
|
259
271
|
<div class="header-right">
|
|
260
|
-
<button class="btn-settings" onclick="openModal()"
|
|
272
|
+
<button class="btn-settings" onclick="openModal()">[+] SETTINGS</button>
|
|
261
273
|
<span id="status-badge" class="badge ${this.status.toLowerCase()}">${this.status}</span>
|
|
262
274
|
</div>
|
|
263
275
|
</div>
|
|
264
276
|
|
|
265
|
-
<!-- Section Status Boxes & Pairing Code -->
|
|
266
277
|
<div id="widget-metrics-container">
|
|
267
278
|
<div class="grid" id="metrics-grid">
|
|
268
279
|
<div class="card cyan">
|
|
269
280
|
<div class="title">WhatsApp Pairing Code</div>
|
|
270
|
-
<div class="value pairing-highlight" id="pairing-code"
|
|
271
|
-
<div class="subtext">
|
|
281
|
+
<div class="value pairing-highlight" id="pairing-code">------</div>
|
|
282
|
+
<div class="subtext">Device auth code</div>
|
|
272
283
|
</div>
|
|
273
284
|
<div class="card blue">
|
|
274
285
|
<div class="title">Operating System</div>
|
|
@@ -283,29 +294,27 @@ export class Dashboard {
|
|
|
283
294
|
<div class="card orange">
|
|
284
295
|
<div class="title">Total Commands</div>
|
|
285
296
|
<div class="value" id="total-commands">0</div>
|
|
286
|
-
<div class="subtext">Executed
|
|
297
|
+
<div class="subtext">Executed</div>
|
|
287
298
|
</div>
|
|
288
299
|
<div class="card green">
|
|
289
300
|
<div class="title">Total Groups</div>
|
|
290
301
|
<div class="value" id="total-groups">0</div>
|
|
291
|
-
<div class="subtext">Active
|
|
302
|
+
<div class="subtext">Active chats</div>
|
|
292
303
|
</div>
|
|
293
304
|
</div>
|
|
294
305
|
</div>
|
|
295
306
|
|
|
296
|
-
<!-- Section Minimalist Music Player -->
|
|
297
307
|
<div id="widget-player-container">
|
|
298
308
|
<div class="player-card" id="player-card">
|
|
299
309
|
<div class="player-info">
|
|
300
|
-
<div class="player-title" id="track-title">
|
|
301
|
-
<div class="player-artist" id="track-channel">
|
|
310
|
+
<div class="player-title" id="track-title">[ NO AUDIO PLAYING ]</div>
|
|
311
|
+
<div class="player-artist" id="track-channel">Use [SETTINGS] to search & play song</div>
|
|
302
312
|
</div>
|
|
303
313
|
<button class="play-btn-circle" id="play-btn" onclick="togglePlay()">▶</button>
|
|
304
314
|
<audio id="audio-player" preload="none"></audio>
|
|
305
315
|
</div>
|
|
306
316
|
</div>
|
|
307
317
|
|
|
308
|
-
<!-- Section Terminal Log -->
|
|
309
318
|
<div id="widget-terminal-container">
|
|
310
319
|
<div class="terminal-card" id="terminal-card">
|
|
311
320
|
<div class="terminal-header">
|
|
@@ -316,50 +325,55 @@ export class Dashboard {
|
|
|
316
325
|
<div class="dot green"></div>
|
|
317
326
|
</div>
|
|
318
327
|
</div>
|
|
319
|
-
<pre id="logs">[SYSTEM]
|
|
328
|
+
<pre id="logs">[SYSTEM] iOS Glass console initialized. Listening for events... </pre>
|
|
320
329
|
</div>
|
|
321
330
|
</div>
|
|
322
331
|
</div>
|
|
323
332
|
|
|
324
|
-
<!-- Modal Settings
|
|
333
|
+
<!-- Dual Tab Modal Settings -->
|
|
325
334
|
<div class="modal-overlay" id="settings-modal">
|
|
326
335
|
<div class="modal-content">
|
|
327
336
|
<div class="modal-header">
|
|
328
|
-
<h2
|
|
329
|
-
<button class="modal-close" onclick="closeModal()"
|
|
337
|
+
<h2>[+] IOS CONTROL PANEL</h2>
|
|
338
|
+
<button class="modal-close" onclick="closeModal()">[X]</button>
|
|
330
339
|
</div>
|
|
331
340
|
|
|
332
|
-
<div class="
|
|
333
|
-
<
|
|
334
|
-
<
|
|
335
|
-
</div>
|
|
336
|
-
|
|
337
|
-
<div class="form-group">
|
|
338
|
-
<label>Transparansi Widget (<span id="opacity-val">85</span>%)</label>
|
|
339
|
-
<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)">
|
|
340
|
-
</div>
|
|
341
|
-
|
|
342
|
-
<div class="form-group">
|
|
343
|
-
<label>URL Wallpaper Background</label>
|
|
344
|
-
<input type="text" class="form-control" id="cfg-bg" placeholder="https://..." value="${this.theme.bgImage}">
|
|
341
|
+
<div class="tab-nav">
|
|
342
|
+
<button class="tab-btn active" onclick="switchTab('tab-ui', this)">UI & BACKGROUND</button>
|
|
343
|
+
<button class="tab-btn" onclick="switchTab('tab-bot', this)">BOT SETTINGS</button>
|
|
345
344
|
</div>
|
|
346
345
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
<
|
|
350
|
-
<
|
|
351
|
-
<
|
|
352
|
-
</
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
<
|
|
358
|
-
|
|
359
|
-
|
|
346
|
+
<!-- Tab 1: UI & Background Settings -->
|
|
347
|
+
<div class="tab-pane active" id="tab-ui">
|
|
348
|
+
<div class="form-group">
|
|
349
|
+
<label>Search & Play YouTube Song</label>
|
|
350
|
+
<input type="text" class="form-control" id="cfg-song" placeholder="Type song title..." value="">
|
|
351
|
+
</div>
|
|
352
|
+
<div class="form-group">
|
|
353
|
+
<label>Glass Opacity (<span id="opacity-val">${Math.round(opacity * 100)}</span>%)</label>
|
|
354
|
+
<input type="range" class="form-control" id="cfg-opacity" min="0.1" max="1" step="0.05" value="${opacity}" oninput="updateOpacityLabel(this.value)">
|
|
355
|
+
</div>
|
|
356
|
+
<div class="form-group">
|
|
357
|
+
<label>Pilih File Background (Dari Perangkat)</label>
|
|
358
|
+
<input type="file" class="form-control" id="cfg-bg-file" accept="image/*" onchange="previewFileBg(event)">
|
|
359
|
+
</div>
|
|
360
|
+
<div class="form-group">
|
|
361
|
+
<label>Widgets Layout Order</label>
|
|
362
|
+
<select class="form-control" id="cfg-order">
|
|
363
|
+
<option value="default">Status -> Player -> Terminal</option>
|
|
364
|
+
<option value="terminal-first">Terminal -> Player -> Status</option>
|
|
365
|
+
</select>
|
|
366
|
+
</div>
|
|
367
|
+
<div class="form-group">
|
|
368
|
+
<label>Toggle Widgets Visibility</label>
|
|
369
|
+
label class="checkbox-group"><input type="checkbox" id="cfg-antilink" checked> Anti Link (Block group/web links)</label>
|
|
370
|
+
<label class="checkbox-group"><input type="checkbox" id="cfg-antibot" checked> Anti Bot (Prevent bot collisions)</label>
|
|
371
|
+
<label class="checkbox-group"><input type="checkbox" id="cfg-antimedia" checked> Anti Spammed Media</label>
|
|
372
|
+
<label class="checkbox-group"><input type="checkbox" id="cfg-autoread" checked> Auto-Read Incoming Messages</label>
|
|
373
|
+
</div>
|
|
360
374
|
</div>
|
|
361
375
|
|
|
362
|
-
<button class="btn-save" onclick="saveSettings()">
|
|
376
|
+
<button class="btn-save" onclick="saveSettings()">APPLY & SAVE CHANGES</button>
|
|
363
377
|
</div>
|
|
364
378
|
</div>
|
|
365
379
|
|
|
@@ -391,29 +405,32 @@ export class Dashboard {
|
|
|
391
405
|
});
|
|
392
406
|
|
|
393
407
|
function updateMetrics(data) {
|
|
394
|
-
|
|
408
|
+
const storedName = localStorage.getItem('shiina_bot_name') || data.title;
|
|
409
|
+
document.getElementById('dashboard-title').innerText = storedName;
|
|
395
410
|
document.getElementById('os-name').innerText = data.os;
|
|
396
411
|
document.getElementById('cpu-name').innerText = data.cpu;
|
|
397
412
|
document.getElementById('ram-text').innerText = data.ramUsed + ' MB / ' + data.ramTotal + ' MB';
|
|
398
413
|
document.getElementById('ram-percent').innerText = data.ramPercent + '% utilized';
|
|
399
414
|
document.getElementById('total-commands').innerText = data.commands;
|
|
400
415
|
document.getElementById('total-groups').innerText = data.groups;
|
|
401
|
-
|
|
416
|
+
if (data.pairingCode && data.pairingCode !== '-') {
|
|
417
|
+
document.getElementById('pairing-code').innerText = data.pairingCode;
|
|
418
|
+
}
|
|
402
419
|
|
|
403
420
|
const badge = document.getElementById('status-badge');
|
|
404
421
|
badge.innerText = data.status;
|
|
405
422
|
badge.className = 'badge ' + data.status.toLowerCase();
|
|
406
423
|
}
|
|
407
424
|
|
|
408
|
-
// Music Player Logic
|
|
409
425
|
const audio = document.getElementById('audio-player');
|
|
410
426
|
const playBtn = document.getElementById('play-btn');
|
|
411
427
|
const trackTitle = document.getElementById('track-title');
|
|
412
428
|
const trackChannel = document.getElementById('track-channel');
|
|
429
|
+
let uploadedBgBase64 = '';
|
|
413
430
|
|
|
414
431
|
async function fetchAndPlaySong(query) {
|
|
415
432
|
if (!query) return;
|
|
416
|
-
trackTitle.innerText = '
|
|
433
|
+
trackTitle.innerText = '[ LOADING AUDIO... ]';
|
|
417
434
|
try {
|
|
418
435
|
const res = await fetch('/api/play?q=' + encodeURIComponent(query));
|
|
419
436
|
const json = await res.json();
|
|
@@ -425,10 +442,10 @@ export class Dashboard {
|
|
|
425
442
|
audio.play();
|
|
426
443
|
playBtn.innerText = '❚❚';
|
|
427
444
|
} else {
|
|
428
|
-
trackTitle.innerText = '
|
|
445
|
+
trackTitle.innerText = '[ SONG NOT FOUND ]';
|
|
429
446
|
}
|
|
430
447
|
} catch (err) {
|
|
431
|
-
trackTitle.innerText = '
|
|
448
|
+
trackTitle.innerText = '[ API ERROR ]';
|
|
432
449
|
}
|
|
433
450
|
}
|
|
434
451
|
|
|
@@ -446,22 +463,57 @@ export class Dashboard {
|
|
|
446
463
|
}
|
|
447
464
|
}
|
|
448
465
|
|
|
449
|
-
// Script Customization & LocalStorage
|
|
450
466
|
function openModal() { document.getElementById('settings-modal').style.display = 'flex'; }
|
|
451
467
|
function closeModal() { document.getElementById('settings-modal').style.display = 'none'; }
|
|
452
468
|
function updateOpacityLabel(val) { document.getElementById('opacity-val').innerText = Math.round(val * 100); }
|
|
453
469
|
|
|
470
|
+
function switchTab(tabId, btn) {
|
|
471
|
+
document.querySelectorAll('.tab-pane').forEach(p => p.classList.remove('active'));
|
|
472
|
+
document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));
|
|
473
|
+
document.getElementById(tabId).classList.add('active');
|
|
474
|
+
btn.classList.add('active');
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
function previewFileBg(event) {
|
|
478
|
+
const file = event.target.files[0];
|
|
479
|
+
if (file) {
|
|
480
|
+
const reader = new FileReader();
|
|
481
|
+
reader.onload = function(e) {
|
|
482
|
+
uploadedBgBase64 = e.target.result;
|
|
483
|
+
};
|
|
484
|
+
reader.readAsDataURL(file);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
|
|
454
488
|
function saveSettings() {
|
|
455
489
|
const opacity = document.getElementById('cfg-opacity').value;
|
|
456
|
-
const bg = document.getElementById('cfg-bg').value;
|
|
457
490
|
const order = document.getElementById('cfg-order').value;
|
|
458
491
|
const showMetrics = document.getElementById('cfg-w-metrics').checked;
|
|
459
492
|
const showTerminal = document.getElementById('cfg-w-terminal').checked;
|
|
460
493
|
const showMusic = document.getElementById('cfg-w-music').checked;
|
|
461
494
|
const newSong = document.getElementById('cfg-song').value.trim();
|
|
462
|
-
|
|
463
|
-
const
|
|
495
|
+
|
|
496
|
+
const botName = document.getElementById('cfg-bot-name').value.trim();
|
|
497
|
+
const menuThumb = document.getElementById('cfg-menu-thumb').value.trim();
|
|
498
|
+
const antilink = document.getElementById('cfg-antilink').checked;
|
|
499
|
+
const antibot = document.getElementById('cfg-antibot').checked;
|
|
500
|
+
const antimedia = document.getElementById('cfg-antimedia').checked;
|
|
501
|
+
const autoread = document.getElementById('cfg-autoread').checked;
|
|
502
|
+
|
|
503
|
+
const existingConfig = JSON.parse(localStorage.getItem('shiina_ui_config') || '{}');
|
|
504
|
+
const bg = uploadedBgBase64 || existingConfig.bg || '';
|
|
505
|
+
|
|
506
|
+
const config = {
|
|
507
|
+
opacity, bg, order, showMetrics, showTerminal, showMusic, newSong,
|
|
508
|
+
botName, menuThumb, antilink, antibot, antimedia, autoread
|
|
509
|
+
};
|
|
510
|
+
|
|
464
511
|
localStorage.setItem('shiina_ui_config', JSON.stringify(config));
|
|
512
|
+
if (botName) {
|
|
513
|
+
localStorage.setItem('shiina_bot_name', botName);
|
|
514
|
+
document.getElementById('dashboard-title').innerText = botName;
|
|
515
|
+
}
|
|
516
|
+
|
|
465
517
|
applyUI(config);
|
|
466
518
|
|
|
467
519
|
if (newSong) {
|
|
@@ -474,15 +526,21 @@ export class Dashboard {
|
|
|
474
526
|
function applyUI(cfg) {
|
|
475
527
|
if (!cfg) return;
|
|
476
528
|
|
|
477
|
-
document.querySelectorAll('.card, .header
|
|
478
|
-
el.style.background = 'rgba(
|
|
529
|
+
document.querySelectorAll('.card, .header').forEach(el => {
|
|
530
|
+
el.style.background = 'rgba(255, 255, 255, ' + (cfg.opacity * 0.07) + ')';
|
|
531
|
+
});
|
|
532
|
+
document.querySelectorAll('.player-card').forEach(el => {
|
|
533
|
+
el.style.background = 'rgba(255, 255, 255, ' + (cfg.opacity * 0.07) + ')';
|
|
534
|
+
});
|
|
535
|
+
document.querySelectorAll('.terminal-card').forEach(el => {
|
|
536
|
+
el.style.background = 'rgba(20, 20, 25, ' + cfg.opacity + ')';
|
|
479
537
|
});
|
|
480
538
|
|
|
481
539
|
if (cfg.bg) {
|
|
482
540
|
document.body.style.background = "url('" + cfg.bg + "') no-repeat center center fixed";
|
|
483
541
|
document.body.style.backgroundSize = "cover";
|
|
484
542
|
} else {
|
|
485
|
-
document.body.style.background = "#
|
|
543
|
+
document.body.style.background = "linear-gradient(135deg, #0a0a0c 0%, #1c1c24 100%);";
|
|
486
544
|
}
|
|
487
545
|
|
|
488
546
|
const cMetrics = document.getElementById('widget-metrics-container');
|
|
@@ -506,12 +564,14 @@ export class Dashboard {
|
|
|
506
564
|
|
|
507
565
|
window.addEventListener('DOMContentLoaded', () => {
|
|
508
566
|
const saved = localStorage.getItem('shiina_ui_config');
|
|
567
|
+
const savedName = localStorage.getItem('shiina_bot_name');
|
|
568
|
+
if (savedName) document.getElementById('dashboard-title').innerText = savedName;
|
|
569
|
+
|
|
509
570
|
if (saved) {
|
|
510
571
|
try {
|
|
511
572
|
const cfg = JSON.parse(saved);
|
|
512
|
-
document.getElementById('cfg-opacity').value = cfg.opacity || 0.
|
|
513
|
-
document.getElementById('opacity-val').innerText = Math.round((cfg.opacity || 0.
|
|
514
|
-
document.getElementById('cfg-bg').value = cfg.bg || '';
|
|
573
|
+
document.getElementById('cfg-opacity').value = cfg.opacity || 0.75;
|
|
574
|
+
document.getElementById('opacity-val').innerText = Math.round((cfg.opacity || 0.75) * 100);
|
|
515
575
|
document.getElementById('cfg-order').value = cfg.order || 'default';
|
|
516
576
|
document.getElementById('cfg-w-metrics').checked = cfg.showMetrics !== false;
|
|
517
577
|
document.getElementById('cfg-w-music').checked = cfg.showMusicPlayer !== false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/Utils/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAqB9B,MAAM,OAAO,SAAS;IAclB,YAAY,UAA4B,EAAE;QAblC,QAAG,GAAG,OAAO,EAAE,CAAA;QACf,WAAM,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/B,OAAE,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAK5B,WAAM,GAAwC,SAAS,CAAA;QACvD,gBAAW,GAAW,GAAG,CAAA;QACzB,cAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,kBAAa,GAAW,CAAC,CAAA;QACzB,gBAAW,GAAW,CAAC,CAAA;QAG3B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAA;QAChC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,0BAA0B,CAAA;QAExD,IAAI,CAAC,KAAK,GAAG;YACT,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,IAAI,SAAS;YACpD,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC5E,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE;SACxC,CAAA;QAED,IAAI,CAAC,OAAO,GAAG;YACX,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,KAAK,KAAK;YACnD,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,YAAY,KAAK,KAAK;YACrD,eAAe,EAAE,OAAO,CAAC,OAAO,EAAE,eAAe,KAAK,KAAK;SAC9D,CAAA;QAED,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,YAAY,EAAE,CAAA;IACvB,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC3B,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/Utils/dashboard.ts"],"names":[],"mappings":"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"}
|