baileys-idn 1.0.9 → 1.0.10

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;CA6WrB;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,66 +124,117 @@ 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; }
127
+ body { id="body-bg"; ${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; }
117
128
  .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%; }
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%; }
131
+ .header-title { display: flex; align-items: center; gap: 8px; }
119
132
  .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; }
133
+ .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; }
134
+ .header-actions { display: flex; align-items: center; gap: 10px; }
135
+
136
+ .btn-settings { background: #21262d; color: #f0f6fc; border: 1px solid #30363d; padding: 5px 10px; border-radius: 6px; font-size: 0.75rem; font-weight: 600; cursor: pointer; transition: 0.2s; }
137
+ .btn-settings:hover { background: #30363d; }
138
+
121
139
  .badge { padding: 4px 10px; border-radius: 12px; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; }
122
140
  .badge.online { background: rgba(34, 197, 94, 0.15); color: #4ade80; border: 1px solid rgba(34, 197, 94, 0.3); }
123
141
  .badge.offline { background: rgba(239, 68, 68, 0.15); color: #f87171; border: 1px solid rgba(239, 68, 68, 0.3); }
124
142
  .badge.connecting { background: rgba(234, 179, 8, 0.15); color: #facc15; border: 1px solid rgba(234, 179, 8, 0.3); }
125
143
 
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; }
144
+ .grid { display: ${this.widgets.showMetrics ? 'grid' : 'none'}; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 16px; width: 100%; }
145
+ .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
146
  .card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; }
129
- .card.blue::before { background: #3b82f6; }
147
+ .card.blue::before { background: ${this.theme.accentColor}; }
130
148
  .card.purple::before { background: #a855f7; }
131
149
  .card.orange::before { background: #f97316; }
132
150
  .card.green::before { background: #22c55e; }
151
+ .card.cyan::before { background: #06b6d4; }
133
152
  .card .title { font-size: 0.65rem; text-transform: uppercase; font-weight: 700; color: #8b949e; letter-spacing: 0.5px; margin-bottom: 4px; }
134
153
  .card .value { font-size: 1rem; font-weight: 700; color: #f0f6fc; }
135
154
  .card .subtext { font-size: 0.7rem; color: #6e7681; margin-top: 2px; }
136
155
 
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; }
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; }
139
160
  .dots { display: flex; gap: 5px; }
140
161
  .dot { width: 9px; height: 9px; border-radius: 50%; }
141
162
  .dot.red { background: #ef4444; }
142
163
  .dot.yellow { background: #eab308; }
143
164
  .dot.green { background: #22c55e; }
144
165
 
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; }
166
+ #logs {
167
+ padding: 8px 12px;
168
+ height: 280px;
169
+ overflow-y: auto;
170
+ background: rgba(13, 17, 23, 0.75);
171
+ color: #38bdf8;
172
+ font-family: 'JetBrains Mono', 'Fira Code', monospace;
173
+ font-size: 0.76rem;
174
+ line-height: 1.15;
175
+ margin: 0;
176
+ white-space: pre-wrap;
177
+ word-break: break-all;
178
+ }
179
+
180
+ .player-card {
181
+ display: ${this.widgets.showMusicPlayer ? 'flex' : 'none'};
182
+ background: rgba(0, 0, 0, ${this.theme.opacity});
183
+ backdrop-filter: blur(12px);
184
+ border: 1px solid #30363d;
185
+ border-radius: 8px;
186
+ padding: 16px;
187
+ flex-direction: column;
188
+ align-items: center;
189
+ gap: 14px;
190
+ width: 100%;
191
+ }
192
+
193
+ .player-search-bar { display: flex; align-items: center; background: #ffffff; border-radius: 6px; width: 100%; padding: 2px 8px; }
194
+ .player-search-input { flex: 1; border: none; outline: none; background: transparent; padding: 8px 10px; font-size: 0.85rem; color: #000000; font-weight: 500; }
195
+ .player-search-btn { background: transparent; border: none; cursor: pointer; font-size: 1.1rem; padding: 4px 8px; color: #000000; }
196
+ .song-details { display: flex; align-items: center; gap: 12px; width: 100%; }
197
+ .song-thumb { width: 44px; height: 44px; border-radius: 6px; object-fit: cover; background: #21262d; }
198
+ .song-info { display: flex; flex-direction: column; overflow: hidden; flex: 1; }
199
+ .song-title { font-size: 0.85rem; font-weight: 700; color: #ffffff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
200
+ .song-artist { font-size: 0.72rem; color: #8b949e; }
201
+ .seek-container { width: 100%; display: flex; flex-direction: column; gap: 6px; }
202
+ .seek-slider { width: 100%; height: 4px; border-radius: 2px; accent-color: #ffffff; cursor: pointer; background: #333333; }
203
+ .time-labels { display: flex; justify-content: space-between; width: 100%; font-size: 0.72rem; font-weight: 600; color: #ffffff; font-family: 'JetBrains Mono', monospace; }
204
+ .play-btn-circle { background: #ffffff; color: #000000; border: none; width: 48px; height: 48px; border-radius: 50%; font-size: 1.1rem; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: transform 0.2s; }
205
+ .play-btn-circle:hover { transform: scale(1.08); }
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; }
213
+ .form-group { display: flex; flex-direction: column; gap: 6px; }
214
+ .form-group label { font-size: 0.75rem; font-weight: 600; color: #8b949e; }
215
+ .form-control { background: #0d1117; border: 1px solid #30363d; color: #c9d1d9; padding: 8px; border-radius: 4px; font-size: 0.8rem; outline: none; }
216
+ .checkbox-group { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; color: #c9d1d9; cursor: pointer; }
217
+ .btn-save { background: #238636; color: #fff; border: none; padding: 8px; border-radius: 4px; font-weight: 600; cursor: pointer; margin-top: 6px; }
166
218
  </style>
167
219
  </head>
168
220
  <body>
169
221
  <div class="container">
170
222
  <div class="header">
171
- <h1 id="dashboard-title">${this.title}</h1>
172
- <span id="status-badge" class="badge ${this.status.toLowerCase()}">${this.status}</span>
223
+ <div class="header-title">
224
+ <h1 id="dashboard-title">${this.title}</h1>
225
+ </div>
226
+ <div class="header-actions">
227
+ <button class="btn-settings" onclick="openModal()">⚙️ SETTINGS</button>
228
+ <span id="status-badge" class="badge ${this.status.toLowerCase()}">${this.status}</span>
229
+ </div>
173
230
  </div>
174
231
 
175
- <div class="grid">
232
+ <div class="grid" id="metrics-grid">
233
+ <div class="card cyan">
234
+ <div class="title">WhatsApp Pairing Code</div>
235
+ <div class="value pairing-highlight" id="pairing-code">-</div>
236
+ <div class="subtext">Kode tautan perangkat</div>
237
+ </div>
176
238
  <div class="card blue">
177
239
  <div class="title">Operating System</div>
178
240
  <div class="value" id="os-name">-</div>
@@ -195,7 +257,7 @@ export class Dashboard {
195
257
  </div>
196
258
  </div>
197
259
 
198
- <div class="terminal-card">
260
+ <div class="terminal-card" id="terminal-card">
199
261
  <div class="terminal-header">
200
262
  <span>TERMINAL / LIVE WHATSAPP LOGS</span>
201
263
  <div class="dots">
@@ -204,44 +266,70 @@ export class Dashboard {
204
266
  <div class="dot green"></div>
205
267
  </div>
206
268
  </div>
207
- <div id="logs"><span class="log-entry" style="color: #6e7681;">[SYSTEM] Pterodactyl-style console initialized. Listening for bot events...</span></div>
269
+ <pre id="logs">[SYSTEM] Pterodactyl-style console initialized. Listening for bot events...&#10;</pre>
208
270
  </div>
209
271
 
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>
215
- </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>
272
+ <div class="player-card" id="player-card">
273
+ <div class="player-search-bar">
274
+ <input type="text" id="search-query" class="player-search-input" placeholder="Cari musik / judul lagu..." onkeypress="if(event.key === 'Enter') searchMusic()">
275
+ <button class="player-search-btn" onclick="searchMusic()">🔍</button>
219
276
  </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>
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>
224
283
  </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)">
284
+ </div>
285
+
286
+ <div class="seek-container">
287
+ <input type="range" class="seek-slider" id="seek-bar" min="0" value="0" step="1" oninput="seekAudio(this.value)">
288
+ <div class="time-labels">
289
+ <span id="current-time">0:00</span>
290
+ <span id="remaining-time">-0:00</span>
229
291
  </div>
230
292
  </div>
293
+
294
+ <button class="play-btn-circle" id="play-btn" onclick="togglePlay()">▶</button>
231
295
  <audio id="audio-player" preload="none"></audio>
232
296
  </div>
233
297
  </div>
234
298
 
299
+ <!-- Modal Web Customization Settings -->
300
+ <div class="modal-overlay" id="settings-modal">
301
+ <div class="modal-content">
302
+ <div class="modal-header">
303
+ <h2>⚙️ Customize Dashboard UI</h2>
304
+ <button class="modal-close" onclick="closeModal()">✖</button>
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)">
309
+ </div>
310
+ <div class="form-group">
311
+ <label>URL Wallpaper Background</label>
312
+ <input type="text" class="form-control" id="cfg-bg" placeholder="https://..." value="${this.theme.bgImage}">
313
+ </div>
314
+ <div class="form-group">
315
+ <label>Warna Aksen Utama</label>
316
+ <input type="color" class="form-control" id="cfg-color" value="${this.theme.accentColor}">
317
+ </div>
318
+ <div class="form-group">
319
+ <label>Toggle Widgets Visibility</label>
320
+ <label class="checkbox-group"><input type="checkbox" id="cfg-w-metrics" ${this.widgets.showMetrics ? 'checked' : ''}> Tampilkan Status & Pairing Code Metrics</label>
321
+ <label class="checkbox-group"><input type="checkbox" id="cfg-w-terminal" ${this.widgets.showTerminal ? 'checked' : ''}> Tampilkan Terminal Log Console</label>
322
+ <label class="checkbox-group"><input type="checkbox" id="cfg-w-music" ${this.widgets.showMusicPlayer ? 'checked' : ''}> Tampilkan Music Player Widget</label>
323
+ </div>
324
+ <button class="btn-save" onclick="saveSettings()">Terapkan Pengaturan</button>
325
+ </div>
326
+ </div>
327
+
235
328
  <script>
236
329
  const socket = io();
237
330
 
238
- socket.on('init-data', (data) => {
239
- updateMetrics(data);
240
- });
241
-
242
- socket.on('metrics-update', (data) => {
243
- updateMetrics(data);
244
- });
331
+ socket.on('init-data', (data) => updateMetrics(data));
332
+ socket.on('metrics-update', (data) => updateMetrics(data));
245
333
 
246
334
  socket.on('status-update', (status) => {
247
335
  const badge = document.getElementById('status-badge');
@@ -249,18 +337,19 @@ export class Dashboard {
249
337
  badge.className = 'badge ' + status.toLowerCase();
250
338
  });
251
339
 
340
+ socket.on('pairing-update', (code) => {
341
+ document.getElementById('pairing-code').innerText = code;
342
+ });
343
+
252
344
  socket.on('stats-update', (stats) => {
253
345
  if (stats.commands !== undefined) document.getElementById('total-commands').innerText = stats.commands;
254
346
  if (stats.groups !== undefined) document.getElementById('total-groups').innerText = stats.groups;
255
347
  });
256
348
 
257
349
  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;
350
+ const logsPre = document.getElementById('logs');
351
+ logsPre.appendChild(document.createTextNode(msg + '\\n'));
352
+ logsPre.scrollTop = logsPre.scrollHeight;
264
353
  });
265
354
 
266
355
  function updateMetrics(data) {
@@ -271,26 +360,60 @@ export class Dashboard {
271
360
  document.getElementById('ram-percent').innerText = data.ramPercent + '% utilized';
272
361
  document.getElementById('total-commands').innerText = data.commands;
273
362
  document.getElementById('total-groups').innerText = data.groups;
363
+ document.getElementById('pairing-code').innerText = data.pairingCode || '-';
274
364
 
275
365
  const badge = document.getElementById('status-badge');
276
366
  badge.innerText = data.status;
277
367
  badge.className = 'badge ' + data.status.toLowerCase();
278
368
  }
279
369
 
280
- // Music Player & Search Controller
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
281
402
  const audio = document.getElementById('audio-player');
282
403
  const playBtn = document.getElementById('play-btn');
283
404
  const trackTitle = document.getElementById('track-title');
284
405
  const trackChannel = document.getElementById('track-channel');
285
406
  const trackThumb = document.getElementById('track-thumb');
286
- const playerStatus = document.getElementById('player-status');
287
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');
288
411
 
289
412
  async function searchMusic() {
290
413
  const query = searchQuery.value.trim();
291
414
  if (!query) return;
292
415
 
293
- playerStatus.innerText = 'Mencari...';
416
+ trackTitle.innerText = 'Mencari lagu...';
294
417
  try {
295
418
  const res = await fetch('/api/play?q=' + encodeURIComponent(query));
296
419
  const json = await res.json();
@@ -298,19 +421,17 @@ export class Dashboard {
298
421
  if (json.status && json.result) {
299
422
  const data = json.result;
300
423
  trackTitle.innerText = data.title;
301
- trackChannel.innerText = data.channel + ' (' + data.duration + ')';
424
+ trackChannel.innerText = data.channel;
302
425
  trackThumb.src = data.thumbnail;
303
426
  audio.src = data.download || data.downloadUrl || data.download_url;
304
427
 
305
428
  audio.play();
306
429
  playBtn.innerText = '❚❚';
307
- playerStatus.innerText = 'Memutar';
308
430
  } else {
309
- playerStatus.innerText = 'Gagal ditemukan';
431
+ trackTitle.innerText = 'Lagu tidak ditemukan';
310
432
  }
311
433
  } catch (err) {
312
- playerStatus.innerText = 'Error API';
313
- console.error(err);
434
+ trackTitle.innerText = 'Gagal memanggil API';
314
435
  }
315
436
  }
316
437
 
@@ -319,17 +440,37 @@ export class Dashboard {
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
+ function seekAudio(val) {
450
+ if (audio.duration) audio.currentTime = val;
332
451
  }
452
+
453
+ audio.addEventListener('timeupdate', () => {
454
+ if (audio.duration) {
455
+ seekBar.max = Math.floor(audio.duration);
456
+ seekBar.value = Math.floor(audio.currentTime);
457
+
458
+ const curMins = Math.floor(audio.currentTime / 60);
459
+ const curSecs = Math.floor(audio.currentTime % 60);
460
+ currentTimeLabel.innerText = curMins + ':' + (curSecs < 10 ? '0' : '') + curSecs;
461
+
462
+ const remSecsTotal = Math.floor(audio.duration - audio.currentTime);
463
+ const remMins = Math.floor(remSecsTotal / 60);
464
+ const remSecs = Math.floor(remSecsTotal % 60);
465
+ remainingTimeLabel.innerText = '-' + remMins + ':' + (remSecs < 10 ? '0' : '') + remSecs;
466
+ }
467
+ });
468
+
469
+ audio.addEventListener('ended', () => {
470
+ playBtn.innerText = '▶';
471
+ seekBar.value = 0;
472
+ currentTimeLabel.innerText = '0:00';
473
+ });
333
474
  </script>
334
475
  </body>
335
476
  </html>`;
@@ -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;AAO9B,MAAM,OAAO,SAAS;IAYlB,YAAY,UAA4B,EAAE;QAXlC,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;QAG5B,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,4BAA4B,CAAA;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,YAAY,EAAE,CAAA;IACvB,CAAC;IAEO,WAAW;QACf,gDAAgD;QAChD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC3B,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,8CAA8C,CAAC,CAAA;YAC9E,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QAEF,8CAA8C;QAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAW,CAAA;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAA;YAC9F,CAAC;YACD,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAA;gBAClD,MAAM,MAAM,GAAG,0EAA0E,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAA;gBACpH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAA;gBACpC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAClC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClB,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACnE,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,YAAY;QAChB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;YAChC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;QAEF,WAAW,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAC3D,CAAC,EAAE,IAAI,CAAC,CAAA;IACZ,CAAC;IAEO,gBAAgB;QACpB,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;QAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;QAC5B,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;QAClC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAA;QACtB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAA;QACpF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAA;QAEpE,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG;YACjC,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,QAAQ,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,UAAU,EAAE,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACnD,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,IAAI,CAAC,aAAa;YAC5B,MAAM,EAAE,IAAI,CAAC,WAAW;SAC3B,CAAA;IACL,CAAC;IAEM,YAAY,CAAC,MAA2C;QAC3D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC;IAEM,iBAAiB,CAAC,IAAY;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;QAEpC,MAAM,YAAY,GAAG,oBAAoB,IAAI,EAAE,CAAA;QAC/C,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACtB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9B,CAAC;IAEM,WAAW,CAAC,KAA6C;QAC5D,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAA;QAC3E,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAA;QACrE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IAC5F,CAAC;IAEM,gBAAgB;QACnB,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;IACtD,CAAC;IAEM,OAAO,CAAC,OAAe;QAC1B,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC5C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YAC/B,GAAG,CAAC,IAAI,CAAC,0DAA0D,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACnF,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,UAAU;QACd,OAAO;;;;;aAKF,IAAI,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCA2DgB,IAAI,CAAC,KAAK;mDACE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAmKpF,CAAC;IACL,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAA0B,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAA"}
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.10",
5
5
  "description": "A WebSockets library for interacting with WhatsApp Web",
6
6
  "keywords": [
7
7
  "whatsapp",