baileys-idn 1.0.9 → 1.0.11

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.
@@ -1,6 +1,18 @@
1
+ export interface ThemeOptions {
2
+ accentColor?: string;
3
+ opacity?: number;
4
+ bgImage?: string;
5
+ }
6
+ export interface WidgetOptions {
7
+ showMetrics?: boolean;
8
+ showTerminal?: boolean;
9
+ showMusicPlayer?: boolean;
10
+ }
1
11
  export interface DashboardOptions {
2
12
  port?: number;
3
13
  title?: string;
14
+ theme?: ThemeOptions;
15
+ widgets?: WidgetOptions;
4
16
  }
5
17
  export declare class Dashboard {
6
18
  private app;
@@ -8,6 +20,8 @@ export declare class Dashboard {
8
20
  private io;
9
21
  private port;
10
22
  private title;
23
+ private theme;
24
+ private widgets;
11
25
  private status;
12
26
  private pairingCode;
13
27
  private startTime;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/Utils/dashboard.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;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,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;IAO1C,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;CAuOrB;AAED,eAAO,MAAM,eAAe,GAAI,UAAU,gBAAgB,cAA2B,CAAA"}
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;CA8ZrB;AAED,eAAO,MAAM,eAAe,GAAI,UAAU,gBAAgB,cAA2B,CAAA"}
@@ -15,17 +15,25 @@ export class Dashboard {
15
15
  this.totalCommands = 0;
16
16
  this.totalGroups = 0;
17
17
  this.port = options.port || 3000;
18
- this.title = options.title || 'Baileys-IDN Control Center';
18
+ this.title = options.title || 'Shiina-MD Control Center';
19
+ this.theme = {
20
+ accentColor: options.theme?.accentColor || '#2563eb',
21
+ opacity: options.theme?.opacity !== undefined ? options.theme.opacity : 0.85,
22
+ bgImage: options.theme?.bgImage || ''
23
+ };
24
+ this.widgets = {
25
+ showMetrics: options.widgets?.showMetrics !== false,
26
+ showTerminal: options.widgets?.showTerminal !== false,
27
+ showMusicPlayer: options.widgets?.showMusicPlayer !== false
28
+ };
19
29
  this.setupRoutes();
20
30
  this.setupSockets();
21
31
  }
22
32
  setupRoutes() {
23
- // Mencegah browser menyimpan cache halaman HTML
24
33
  this.app.get('/', (req, res) => {
25
34
  res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, private');
26
35
  res.send(this.renderHTML());
27
36
  });
28
- // Endpoint API pencarian musik via Jerexd API
29
37
  this.app.get('/api/play', async (req, res) => {
30
38
  const query = req.query.q;
31
39
  if (!query) {
@@ -104,6 +112,9 @@ export class Dashboard {
104
112
  });
105
113
  }
106
114
  renderHTML() {
115
+ const bgStyle = this.theme.bgImage
116
+ ? `background: url('${this.theme.bgImage}') no-repeat center center fixed; background-size: cover;`
117
+ : `background-color: #0d1117;`;
107
118
  return `<!DOCTYPE html>
108
119
  <html lang="id">
109
120
  <head>
@@ -113,135 +124,250 @@ export class Dashboard {
113
124
  <script src="/socket.io/socket.io.js"></script>
114
125
  <style>
115
126
  * { margin: 0; padding: 0; box-sizing: border-box; }
116
- body { background-color: #0d1117; color: #c9d1d9; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; padding: 16px; display: flex; flex-direction: column; align-items: center; }
117
- .container { width: 100%; max-width: 900px; }
118
- .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; padding-bottom: 10px; border-bottom: 1px solid #21262d; width: 100%; }
127
+ body { ${bgStyle} color: #c9d1d9; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; padding: 16px; display: flex; flex-direction: column; align-items: center; min-height: 100vh; }
128
+ .container { width: 100%; max-width: 900px; display: flex; flex-direction: column; }
129
+
130
+ .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; padding: 10px 14px; background: rgba(22, 27, 34, ${this.theme.opacity}); backdrop-filter: blur(10px); border: 1px solid #30363d; border-radius: 6px; width: 100%; }
119
131
  .header h1 { font-size: 1.15rem; font-weight: 600; color: #f0f6fc; display: flex; align-items: center; gap: 8px; }
120
- .header h1::before { content: 'P'; background: #2563eb; color: #fff; width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; font-size: 11px; font-weight: 800; }
132
+ .header h1::before { content: 'P'; background: ${this.theme.accentColor}; color: #fff; width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; font-size: 11px; font-weight: 800; }
133
+ .header-right { display: flex; align-items: center; gap: 10px; }
134
+
135
+ .btn-settings { background: #21262d; color: #f0f6fc; border: 1px solid #30363d; padding: 6px 12px; border-radius: 6px; font-size: 0.75rem; font-weight: 600; cursor: pointer; transition: 0.2s; display: flex; align-items: center; gap: 4px; }
136
+ .btn-settings:hover { background: #30363d; border-color: #8b949e; }
137
+
121
138
  .badge { padding: 4px 10px; border-radius: 12px; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; }
122
139
  .badge.online { background: rgba(34, 197, 94, 0.15); color: #4ade80; border: 1px solid rgba(34, 197, 94, 0.3); }
123
140
  .badge.offline { background: rgba(239, 68, 68, 0.15); color: #f87171; border: 1px solid rgba(239, 68, 68, 0.3); }
124
141
  .badge.connecting { background: rgba(234, 179, 8, 0.15); color: #facc15; border: 1px solid rgba(234, 179, 8, 0.3); }
125
142
 
126
- .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 16px; width: 100%; }
127
- .card { background: #161b22; border: 1px solid #30363d; border-radius: 6px; padding: 12px; position: relative; overflow: hidden; }
143
+ #widget-metrics-container { order: 1; }
144
+ #widget-terminal-container { order: 2; }
145
+ #widget-player-container { order: 3; }
146
+
147
+ .grid { display: ${this.widgets.showMetrics ? 'grid' : 'none'}; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 16px; width: 100%; }
148
+ .card { background: rgba(22, 27, 34, ${this.theme.opacity}); backdrop-filter: blur(10px); border: 1px solid #30363d; border-radius: 6px; padding: 12px; position: relative; overflow: hidden; }
128
149
  .card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; }
129
- .card.blue::before { background: #3b82f6; }
150
+ .card.cyan::before { background: #06b6d4; }
151
+ .card.blue::before { background: ${this.theme.accentColor}; }
130
152
  .card.purple::before { background: #a855f7; }
131
153
  .card.orange::before { background: #f97316; }
132
154
  .card.green::before { background: #22c55e; }
133
155
  .card .title { font-size: 0.65rem; text-transform: uppercase; font-weight: 700; color: #8b949e; letter-spacing: 0.5px; margin-bottom: 4px; }
134
156
  .card .value { font-size: 1rem; font-weight: 700; color: #f0f6fc; }
135
157
  .card .subtext { font-size: 0.7rem; color: #6e7681; margin-top: 2px; }
136
-
137
- .terminal-card { background: #161b22; border: 1px solid #30363d; border-radius: 6px; overflow: hidden; margin-bottom: 16px; width: 100%; }
138
- .terminal-header { background: #010409; 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; }
158
+ .pairing-highlight { color: #38bdf8 !important; font-family: 'JetBrains Mono', monospace; font-size: 1.05rem !important; }
159
+
160
+ .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%; }
161
+ .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; }
139
162
  .dots { display: flex; gap: 5px; }
140
163
  .dot { width: 9px; height: 9px; border-radius: 50%; }
141
164
  .dot.red { background: #ef4444; }
142
165
  .dot.yellow { background: #eab308; }
143
166
  .dot.green { background: #22c55e; }
144
167
 
145
- /* Strict No-Gap Console Styling */
146
- #logs { padding: 10px; height: 300px; overflow-y: auto; background: #0d1117; color: #38bdf8; font-family: 'JetBrains Mono', monospace; font-size: 0.78rem; line-height: 1.1; margin: 0; white-space: pre-wrap; }
147
- .log-entry { margin: 0 !important; padding: 0 !important; display: block; line-height: 1.1 !important; word-break: break-all; }
148
-
149
- /* Music Search Player Style */
150
- .music-card { background: #161b22; border: 1px solid #30363d; border-radius: 6px; padding: 14px; display: flex; flex-direction: column; gap: 10px; width: 100%; }
151
- .music-header { display: flex; justify-content: space-between; align-items: center; font-size: 0.7rem; font-weight: 700; color: #8b949e; text-transform: uppercase; letter-spacing: 0.5px; }
152
- .search-box { display: flex; gap: 8px; width: 100%; }
153
- .search-input { flex: 1; background: #0d1117; color: #c9d1d9; border: 1px solid #30363d; padding: 6px 10px; border-radius: 4px; font-size: 0.78rem; outline: none; }
154
- .search-input:focus { border-color: #3b82f6; }
155
- .btn-search { background: #238636; color: #fff; border: none; padding: 6px 12px; border-radius: 4px; font-size: 0.78rem; font-weight: 600; cursor: pointer; transition: 0.2s; }
156
- .btn-search:hover { background: #2ea043; }
157
- .music-body { display: flex; align-items: center; gap: 12px; background: #0d1117; padding: 10px; border-radius: 6px; border: 1px solid #21262d; }
158
- .thumbnail { width: 48px; height: 48px; border-radius: 4px; object-fit: cover; background: #21262d; }
159
- .music-controls { display: flex; align-items: center; gap: 8px; }
160
- .btn-play { background: #2563eb; color: #fff; border: none; width: 34px; height: 34px; border-radius: 50%; font-size: 0.85rem; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: 0.2s; }
161
- .btn-play:hover { background: #1d4ed8; transform: scale(1.05); }
162
- .music-info { flex: 1; display: flex; flex-direction: column; gap: 2px; overflow: hidden; }
163
- .music-title { font-size: 0.8rem; font-weight: 700; color: #f0f6fc; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
164
- .music-artist { font-size: 0.68rem; color: #8b949e; }
165
- .seek-bar { width: 100%; accent-color: #3b82f6; cursor: pointer; margin-top: 3px; }
168
+ #logs {
169
+ padding: 8px 12px;
170
+ height: 280px;
171
+ overflow-y: auto;
172
+ background: rgba(13, 17, 23, 0.75);
173
+ color: #c9d1d9;
174
+ font-family: 'JetBrains Mono', 'Fira Code', monospace;
175
+ font-size: 0.76rem;
176
+ line-height: 1.15;
177
+ margin: 0;
178
+ white-space: pre-wrap;
179
+ word-break: break-all;
180
+ }
181
+
182
+ /* Minimalist Music Player (Tanpa Thumbnail, Tanpa Seekbar) */
183
+ .player-card {
184
+ display: ${this.widgets.showMusicPlayer ? 'flex' : 'none'};
185
+ background: rgba(22, 27, 34, ${this.theme.opacity});
186
+ backdrop-filter: blur(10px);
187
+ border: 1px solid #30363d;
188
+ border-radius: 8px;
189
+ padding: 16px;
190
+ flex-direction: column;
191
+ align-items: center;
192
+ gap: 12px;
193
+ width: 100%;
194
+ margin-bottom: 16px;
195
+ }
196
+
197
+ .player-info {
198
+ display: flex;
199
+ flex-direction: column;
200
+ align-items: center;
201
+ text-align: center;
202
+ gap: 2px;
203
+ width: 100%;
204
+ }
205
+
206
+ .player-title {
207
+ font-size: 0.88rem;
208
+ font-weight: 700;
209
+ color: #f0f6fc;
210
+ white-space: nowrap;
211
+ overflow: hidden;
212
+ text-overflow: ellipsis;
213
+ max-width: 100%;
214
+ }
215
+
216
+ .player-artist {
217
+ font-size: 0.72rem;
218
+ color: #8b949e;
219
+ }
220
+
221
+ .play-btn-circle {
222
+ background: #ffffff;
223
+ color: #000000;
224
+ border: none;
225
+ width: 44px;
226
+ height: 44px;
227
+ border-radius: 50%;
228
+ font-size: 1rem;
229
+ cursor: pointer;
230
+ display: flex;
231
+ align-items: center;
232
+ justify-content: center;
233
+ transition: transform 0.2s;
234
+ box-shadow: 0 4px 10px rgba(0,0,0,0.3);
235
+ }
236
+
237
+ .play-btn-circle:hover {
238
+ transform: scale(1.08);
239
+ }
240
+
241
+ /* Modal Settings Styling */
242
+ .modal-overlay { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.75); backdrop-filter: blur(6px); z-index: 1000; align-items: center; justify-content: center; padding: 16px; }
243
+ .modal-content { background: #161b22; border: 1px solid #30363d; border-radius: 8px; width: 100%; max-width: 420px; padding: 20px; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 10px 25px rgba(0,0,0,0.5); }
244
+ .modal-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #21262d; padding-bottom: 10px; }
245
+ .modal-header h2 { font-size: 1rem; color: #f0f6fc; }
246
+ .modal-close { background: transparent; border: none; color: #8b949e; font-size: 1.2rem; cursor: pointer; }
247
+ .form-group { display: flex; flex-direction: column; gap: 6px; }
248
+ .form-group label { font-size: 0.75rem; font-weight: 600; color: #8b949e; }
249
+ .form-control { background: #0d1117; border: 1px solid #30363d; color: #c9d1d9; padding: 8px; border-radius: 4px; font-size: 0.8rem; outline: none; }
250
+ .checkbox-group { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; color: #c9d1d9; cursor: pointer; }
251
+ .btn-save { background: #238636; color: #fff; border: none; padding: 10px; border-radius: 4px; font-weight: 600; cursor: pointer; margin-top: 6px; transition: 0.2s; }
252
+ .btn-save:hover { background: #2ea043; }
166
253
  </style>
167
254
  </head>
168
255
  <body>
169
256
  <div class="container">
170
257
  <div class="header">
171
258
  <h1 id="dashboard-title">${this.title}</h1>
172
- <span id="status-badge" class="badge ${this.status.toLowerCase()}">${this.status}</span>
259
+ <div class="header-right">
260
+ <button class="btn-settings" onclick="openModal()">⚙️ SETTINGS</button>
261
+ <span id="status-badge" class="badge ${this.status.toLowerCase()}">${this.status}</span>
262
+ </div>
173
263
  </div>
174
264
 
175
- <div class="grid">
176
- <div class="card blue">
177
- <div class="title">Operating System</div>
178
- <div class="value" id="os-name">-</div>
179
- <div class="subtext" id="cpu-name">-</div>
180
- </div>
181
- <div class="card purple">
182
- <div class="title">Memory Usage</div>
183
- <div class="value" id="ram-text">- / - MB</div>
184
- <div class="subtext" id="ram-percent">- % utilized</div>
185
- </div>
186
- <div class="card orange">
187
- <div class="title">Total Commands</div>
188
- <div class="value" id="total-commands">0</div>
189
- <div class="subtext">Executed commands</div>
265
+ <!-- Section Status Boxes & Pairing Code -->
266
+ <div id="widget-metrics-container">
267
+ <div class="grid" id="metrics-grid">
268
+ <div class="card cyan">
269
+ <div class="title">WhatsApp Pairing Code</div>
270
+ <div class="value pairing-highlight" id="pairing-code">-</div>
271
+ <div class="subtext">Kode tautan perangkat</div>
272
+ </div>
273
+ <div class="card blue">
274
+ <div class="title">Operating System</div>
275
+ <div class="value" id="os-name">-</div>
276
+ <div class="subtext" id="cpu-name">-</div>
277
+ </div>
278
+ <div class="card purple">
279
+ <div class="title">Memory Usage</div>
280
+ <div class="value" id="ram-text">- / - MB</div>
281
+ <div class="subtext" id="ram-percent">- % utilized</div>
282
+ </div>
283
+ <div class="card orange">
284
+ <div class="title">Total Commands</div>
285
+ <div class="value" id="total-commands">0</div>
286
+ <div class="subtext">Executed commands</div>
287
+ </div>
288
+ <div class="card green">
289
+ <div class="title">Total Groups</div>
290
+ <div class="value" id="total-groups">0</div>
291
+ <div class="subtext">Active WhatsApp groups</div>
292
+ </div>
190
293
  </div>
191
- <div class="card green">
192
- <div class="title">Total Groups</div>
193
- <div class="value" id="total-groups">0</div>
194
- <div class="subtext">Active WhatsApp groups</div>
294
+ </div>
295
+
296
+ <!-- Section Minimalist Music Player -->
297
+ <div id="widget-player-container">
298
+ <div class="player-card" id="player-card">
299
+ <div class="player-info">
300
+ <div class="player-title" id="track-title">Belum ada lagu diputar</div>
301
+ <div class="player-artist" id="track-channel">Atur judul lagu di menu Settings ⚙️</div>
302
+ </div>
303
+ <button class="play-btn-circle" id="play-btn" onclick="togglePlay()">▶</button>
304
+ <audio id="audio-player" preload="none"></audio>
195
305
  </div>
196
306
  </div>
197
307
 
198
- <div class="terminal-card">
199
- <div class="terminal-header">
200
- <span>TERMINAL / LIVE WHATSAPP LOGS</span>
201
- <div class="dots">
202
- <div class="dot red"></div>
203
- <div class="dot yellow"></div>
204
- <div class="dot green"></div>
308
+ <!-- Section Terminal Log -->
309
+ <div id="widget-terminal-container">
310
+ <div class="terminal-card" id="terminal-card">
311
+ <div class="terminal-header">
312
+ <span>TERMINAL / LIVE WHATSAPP LOGS</span>
313
+ <div class="dots">
314
+ <div class="dot red"></div>
315
+ <div class="dot yellow"></div>
316
+ <div class="dot green"></div>
317
+ </div>
205
318
  </div>
319
+ <pre id="logs">[SYSTEM] Pterodactyl-style console initialized. Listening for bot events...&#10;</pre>
206
320
  </div>
207
- <div id="logs"><span class="log-entry" style="color: #6e7681;">[SYSTEM] Pterodactyl-style console initialized. Listening for bot events...</span></div>
208
321
  </div>
322
+ </div>
209
323
 
210
- <!-- Music Search & Player Widget -->
211
- <div class="music-card">
212
- <div class="music-header">
213
- <span>🎧 YOUTUBE MUSIC SEARCH PLAYER</span>
214
- <span id="player-status" style="color: #38bdf8; font-size: 0.68rem;">Ready</span>
324
+ <!-- Modal Settings Dashboard UI -->
325
+ <div class="modal-overlay" id="settings-modal">
326
+ <div class="modal-content">
327
+ <div class="modal-header">
328
+ <h2>⚙️ Settings UI & Music Player</h2>
329
+ <button class="modal-close" onclick="closeModal()">✖</button>
215
330
  </div>
216
- <div class="search-box">
217
- <input type="text" id="search-query" class="search-input" placeholder="Ketik judul lagu (cth: Ada Apa Dengan Cinta)..." onkeypress="if(event.key === 'Enter') searchMusic()">
218
- <button class="btn-search" onclick="searchMusic()">Cari & Putar</button>
331
+
332
+ <div class="form-group">
333
+ <label>Cari & Ganti Lagu (YouTube)</label>
334
+ <input type="text" class="form-control" id="cfg-song" placeholder="Ketik judul lagu..." value="">
219
335
  </div>
220
- <div class="music-body">
221
- <img id="track-thumb" class="thumbnail" src="https://via.placeholder.com/50" alt="Thumb">
222
- <div class="music-controls">
223
- <button class="btn-play" id="play-btn" onclick="togglePlay()">▶</button>
224
- </div>
225
- <div class="music-info">
226
- <div class="music-title" id="track-title">Belum ada lagu diputar</div>
227
- <div class="music-artist" id="track-channel">Ketik pencarian di atas...</div>
228
- <input type="range" class="seek-bar" id="volume-bar" min="0" max="1" step="0.05" value="0.7" onchange="setVolume(this.value)">
229
- </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)">
230
340
  </div>
231
- <audio id="audio-player" preload="none"></audio>
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}">
345
+ </div>
346
+
347
+ <div class="form-group">
348
+ <label>Urutan Lokasi Widget</label>
349
+ <select class="form-control" id="cfg-order">
350
+ <option value="default">Status ➔ Player ➔ Terminal</option>
351
+ <option value="terminal-first">Terminal ➔ Player ➔ Status</option>
352
+ </select>
353
+ </div>
354
+
355
+ <div class="form-group">
356
+ <label>Toggle Widgets Visibility</label>
357
+ <label class="checkbox-group"><input type="checkbox" id="cfg-w-metrics" ${this.widgets.showMetrics ? 'checked' : ''}> Tampilkan Kotak Status</label>
358
+ <label class="checkbox-group"><input type="checkbox" id="cfg-w-music" ${this.widgets.showMusicPlayer ? 'checked' : ''}> Tampilkan Music Player</label>
359
+ <label class="checkbox-group"><input type="checkbox" id="cfg-w-terminal" ${this.widgets.showTerminal ? 'checked' : ''}> Tampilkan Terminal Log</label>
360
+ </div>
361
+
362
+ <button class="btn-save" onclick="saveSettings()">Terapkan & Simpan</button>
232
363
  </div>
233
364
  </div>
234
365
 
235
366
  <script>
236
367
  const socket = io();
237
368
 
238
- socket.on('init-data', (data) => {
239
- updateMetrics(data);
240
- });
241
-
242
- socket.on('metrics-update', (data) => {
243
- updateMetrics(data);
244
- });
369
+ socket.on('init-data', (data) => updateMetrics(data));
370
+ socket.on('metrics-update', (data) => updateMetrics(data));
245
371
 
246
372
  socket.on('status-update', (status) => {
247
373
  const badge = document.getElementById('status-badge');
@@ -249,18 +375,19 @@ export class Dashboard {
249
375
  badge.className = 'badge ' + status.toLowerCase();
250
376
  });
251
377
 
378
+ socket.on('pairing-update', (code) => {
379
+ document.getElementById('pairing-code').innerText = code;
380
+ });
381
+
252
382
  socket.on('stats-update', (stats) => {
253
383
  if (stats.commands !== undefined) document.getElementById('total-commands').innerText = stats.commands;
254
384
  if (stats.groups !== undefined) document.getElementById('total-groups').innerText = stats.groups;
255
385
  });
256
386
 
257
387
  socket.on('log-entry', (msg) => {
258
- const logsDiv = document.getElementById('logs');
259
- const entry = document.createElement('span');
260
- entry.className = 'log-entry';
261
- entry.innerText = msg + '\\n';
262
- logsDiv.appendChild(entry);
263
- logsDiv.scrollTop = logsDiv.scrollHeight;
388
+ const logsPre = document.getElementById('logs');
389
+ logsPre.appendChild(document.createTextNode(msg + '\\n'));
390
+ logsPre.scrollTop = logsPre.scrollHeight;
264
391
  });
265
392
 
266
393
  function updateMetrics(data) {
@@ -271,65 +398,128 @@ export class Dashboard {
271
398
  document.getElementById('ram-percent').innerText = data.ramPercent + '% utilized';
272
399
  document.getElementById('total-commands').innerText = data.commands;
273
400
  document.getElementById('total-groups').innerText = data.groups;
401
+ document.getElementById('pairing-code').innerText = data.pairingCode || '-';
274
402
 
275
403
  const badge = document.getElementById('status-badge');
276
404
  badge.innerText = data.status;
277
405
  badge.className = 'badge ' + data.status.toLowerCase();
278
406
  }
279
407
 
280
- // Music Player & Search Controller
408
+ // Music Player Logic
281
409
  const audio = document.getElementById('audio-player');
282
410
  const playBtn = document.getElementById('play-btn');
283
411
  const trackTitle = document.getElementById('track-title');
284
412
  const trackChannel = document.getElementById('track-channel');
285
- const trackThumb = document.getElementById('track-thumb');
286
- const playerStatus = document.getElementById('player-status');
287
- const searchQuery = document.getElementById('search-query');
288
413
 
289
- async function searchMusic() {
290
- const query = searchQuery.value.trim();
414
+ async function fetchAndPlaySong(query) {
291
415
  if (!query) return;
292
-
293
- playerStatus.innerText = 'Mencari...';
416
+ trackTitle.innerText = 'Memuat lagu...';
294
417
  try {
295
418
  const res = await fetch('/api/play?q=' + encodeURIComponent(query));
296
419
  const json = await res.json();
297
-
298
420
  if (json.status && json.result) {
299
421
  const data = json.result;
300
422
  trackTitle.innerText = data.title;
301
- trackChannel.innerText = data.channel + ' (' + data.duration + ')';
302
- trackThumb.src = data.thumbnail;
423
+ trackChannel.innerText = data.channel;
303
424
  audio.src = data.download || data.downloadUrl || data.download_url;
304
-
305
425
  audio.play();
306
426
  playBtn.innerText = '❚❚';
307
- playerStatus.innerText = 'Memutar';
308
427
  } else {
309
- playerStatus.innerText = 'Gagal ditemukan';
428
+ trackTitle.innerText = 'Lagu tidak ditemukan';
310
429
  }
311
430
  } catch (err) {
312
- playerStatus.innerText = 'Error API';
313
- console.error(err);
431
+ trackTitle.innerText = 'Gagal memuat lagu';
314
432
  }
315
433
  }
316
434
 
317
435
  function togglePlay() {
318
- if (!audio.src) return;
436
+ if (!audio.src) {
437
+ openModal();
438
+ return;
439
+ }
319
440
  if (audio.paused) {
320
441
  audio.play();
321
442
  playBtn.innerText = '❚❚';
322
- playerStatus.innerText = 'Memutar';
323
443
  } else {
324
444
  audio.pause();
325
445
  playBtn.innerText = '▶';
326
- playerStatus.innerText = 'Dijeda';
327
446
  }
328
447
  }
329
448
 
330
- function setVolume(val) {
331
- audio.volume = val;
449
+ // Script Customization & LocalStorage
450
+ function openModal() { document.getElementById('settings-modal').style.display = 'flex'; }
451
+ function closeModal() { document.getElementById('settings-modal').style.display = 'none'; }
452
+ function updateOpacityLabel(val) { document.getElementById('opacity-val').innerText = Math.round(val * 100); }
453
+
454
+ function saveSettings() {
455
+ const opacity = document.getElementById('cfg-opacity').value;
456
+ const bg = document.getElementById('cfg-bg').value;
457
+ const order = document.getElementById('cfg-order').value;
458
+ const showMetrics = document.getElementById('cfg-w-metrics').checked;
459
+ const showTerminal = document.getElementById('cfg-w-terminal').checked;
460
+ const showMusic = document.getElementById('cfg-w-music').checked;
461
+ const newSong = document.getElementById('cfg-song').value.trim();
462
+
463
+ const config = { opacity, bg, order, showMetrics, showTerminal, showMusic, newSong };
464
+ localStorage.setItem('shiina_ui_config', JSON.stringify(config));
465
+ applyUI(config);
466
+
467
+ if (newSong) {
468
+ fetchAndPlaySong(newSong);
469
+ }
470
+
471
+ closeModal();
472
+ }
473
+
474
+ function applyUI(cfg) {
475
+ if (!cfg) return;
476
+
477
+ document.querySelectorAll('.card, .header, .terminal-card, .player-card').forEach(el => {
478
+ el.style.background = 'rgba(22, 27, 34, ' + cfg.opacity + ')';
479
+ });
480
+
481
+ if (cfg.bg) {
482
+ document.body.style.background = "url('" + cfg.bg + "') no-repeat center center fixed";
483
+ document.body.style.backgroundSize = "cover";
484
+ } else {
485
+ document.body.style.background = "#0d1117";
486
+ }
487
+
488
+ const cMetrics = document.getElementById('widget-metrics-container');
489
+ const cPlayer = document.getElementById('widget-player-container');
490
+ const cTerminal = document.getElementById('widget-terminal-container');
491
+
492
+ if (cfg.order === 'terminal-first') {
493
+ cTerminal.style.order = '1';
494
+ cPlayer.style.order = '2';
495
+ cMetrics.style.order = '3';
496
+ } else {
497
+ cMetrics.style.order = '1';
498
+ cPlayer.style.order = '2';
499
+ cTerminal.style.order = '3';
500
+ }
501
+
502
+ document.getElementById('metrics-grid').style.display = cfg.showMetrics ? 'grid' : 'none';
503
+ document.getElementById('player-card').style.display = cfg.showMusic ? 'flex' : 'none';
504
+ document.getElementById('terminal-card').style.display = cfg.showTerminal ? 'block' : 'none';
332
505
  }
506
+
507
+ window.addEventListener('DOMContentLoaded', () => {
508
+ const saved = localStorage.getItem('shiina_ui_config');
509
+ if (saved) {
510
+ try {
511
+ const cfg = JSON.parse(saved);
512
+ document.getElementById('cfg-opacity').value = cfg.opacity || 0.85;
513
+ document.getElementById('opacity-val').innerText = Math.round((cfg.opacity || 0.85) * 100);
514
+ document.getElementById('cfg-bg').value = cfg.bg || '';
515
+ document.getElementById('cfg-order').value = cfg.order || 'default';
516
+ document.getElementById('cfg-w-metrics').checked = cfg.showMetrics !== false;
517
+ document.getElementById('cfg-w-music').checked = cfg.showMusicPlayer !== false;
518
+ document.getElementById('cfg-w-terminal').checked = cfg.showTerminal !== false;
519
+ applyUI(cfg);
520
+ } catch(e) {}
521
+ }
522
+ });
333
523
  </script>
334
524
  </body>
335
525
  </html>`;
@@ -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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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "baileys-idn",
3
3
  "type": "module",
4
- "version": "1.0.9",
4
+ "version": "1.0.11",
5
5
  "description": "A WebSockets library for interacting with WhatsApp Web",
6
6
  "keywords": [
7
7
  "whatsapp",