baileys-idn 1.0.8 → 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;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;CAwOrB;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,15 +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
33
  this.app.get('/', (req, res) => {
34
+ res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, private');
24
35
  res.send(this.renderHTML());
25
36
  });
26
- // Endpoint API proxy untuk pencarian musik dari dashboard ke jerexd API
27
37
  this.app.get('/api/play', async (req, res) => {
28
38
  const query = req.query.q;
29
39
  if (!query) {
@@ -102,6 +112,9 @@ export class Dashboard {
102
112
  });
103
113
  }
104
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;`;
105
118
  return `<!DOCTYPE html>
106
119
  <html lang="id">
107
120
  <head>
@@ -111,65 +124,117 @@ export class Dashboard {
111
124
  <script src="/socket.io/socket.io.js"></script>
112
125
  <style>
113
126
  * { margin: 0; padding: 0; box-sizing: border-box; }
114
- body { background-color: #0d1117; color: #c9d1d9; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; padding: 20px; 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; }
115
128
  .container { width: 100%; max-width: 900px; }
116
- .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid #21262d; width: 100%; }
117
- .header h1 { font-size: 1.25rem; font-weight: 600; color: #f0f6fc; display: flex; align-items: center; gap: 8px; }
118
- .header h1::before { content: 'P'; background: #2563eb; color: #fff; width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; font-size: 12px; font-weight: 800; }
119
- .badge { padding: 4px 10px; border-radius: 12px; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; }
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; }
132
+ .header h1 { font-size: 1.15rem; font-weight: 600; color: #f0f6fc; display: flex; align-items: center; gap: 8px; }
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
+
139
+ .badge { padding: 4px 10px; border-radius: 12px; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; }
120
140
  .badge.online { background: rgba(34, 197, 94, 0.15); color: #4ade80; border: 1px solid rgba(34, 197, 94, 0.3); }
121
141
  .badge.offline { background: rgba(239, 68, 68, 0.15); color: #f87171; border: 1px solid rgba(239, 68, 68, 0.3); }
122
142
  .badge.connecting { background: rgba(234, 179, 8, 0.15); color: #facc15; border: 1px solid rgba(234, 179, 8, 0.3); }
123
143
 
124
- .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin-bottom: 20px; width: 100%; }
125
- .card { background: #161b22; border: 1px solid #30363d; border-radius: 6px; padding: 14px; 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; }
126
146
  .card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; }
127
- .card.blue::before { background: #3b82f6; }
147
+ .card.blue::before { background: ${this.theme.accentColor}; }
128
148
  .card.purple::before { background: #a855f7; }
129
149
  .card.orange::before { background: #f97316; }
130
150
  .card.green::before { background: #22c55e; }
131
- .card .title { font-size: 0.7rem; text-transform: uppercase; font-weight: 700; color: #8b949e; letter-spacing: 0.5px; margin-bottom: 6px; }
132
- .card .value { font-size: 1.1rem; font-weight: 700; color: #f0f6fc; }
133
- .card .subtext { font-size: 0.75rem; color: #6e7681; margin-top: 4px; }
151
+ .card.cyan::before { background: #06b6d4; }
152
+ .card .title { font-size: 0.65rem; text-transform: uppercase; font-weight: 700; color: #8b949e; letter-spacing: 0.5px; margin-bottom: 4px; }
153
+ .card .value { font-size: 1rem; font-weight: 700; color: #f0f6fc; }
154
+ .card .subtext { font-size: 0.7rem; color: #6e7681; margin-top: 2px; }
134
155
 
135
- .terminal-card { background: #161b22; border: 1px solid #30363d; border-radius: 6px; overflow: hidden; margin-bottom: 20px; width: 100%; }
136
- .terminal-header { background: #010409; padding: 10px 14px; font-size: 0.75rem; font-weight: 600; color: #8b949e; border-bottom: 1px solid #21262d; display: flex; justify-content: space-between; align-items: center; }
137
- .dots { display: flex; gap: 6px; }
138
- .dot { width: 10px; height: 10px; border-radius: 50%; }
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; }
160
+ .dots { display: flex; gap: 5px; }
161
+ .dot { width: 9px; height: 9px; border-radius: 50%; }
139
162
  .dot.red { background: #ef4444; }
140
163
  .dot.yellow { background: #eab308; }
141
164
  .dot.green { background: #22c55e; }
142
165
 
143
- #logs { padding: 12px; height: 320px; overflow-y: auto; font-size: 0.8rem; color: #38bdf8; font-family: 'JetBrains Mono', monospace; display: flex; flex-direction: column; }
144
- .log-entry { margin: 0 !important; padding: 0 !important; line-height: 1.15 !important; word-break: break-all; }
145
-
146
- /* Music Search Player Style */
147
- .music-card { background: #161b22; border: 1px solid #30363d; border-radius: 6px; padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; width: 100%; }
148
- .music-header { display: flex; justify-content: space-between; align-items: center; font-size: 0.75rem; font-weight: 700; color: #8b949e; text-transform: uppercase; letter-spacing: 0.5px; }
149
- .search-box { display: flex; gap: 8px; width: 100%; }
150
- .search-input { flex: 1; background: #0d1117; color: #c9d1d9; border: 1px solid #30363d; padding: 6px 10px; border-radius: 4px; font-size: 0.8rem; outline: none; }
151
- .search-input:focus { border-color: #3b82f6; }
152
- .btn-search { background: #238636; color: #fff; border: none; padding: 6px 14px; border-radius: 4px; font-size: 0.8rem; font-weight: 600; cursor: pointer; transition: 0.2s; }
153
- .btn-search:hover { background: #2ea043; }
154
- .music-body { display: flex; align-items: center; gap: 14px; background: #0d1117; padding: 10px; border-radius: 6px; border: 1px solid #21262d; }
155
- .thumbnail { width: 50px; height: 50px; border-radius: 4px; object-fit: cover; background: #21262d; }
156
- .music-controls { display: flex; align-items: center; gap: 10px; }
157
- .btn-play { background: #2563eb; color: #fff; border: none; width: 36px; height: 36px; border-radius: 50%; font-size: 0.9rem; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: 0.2s; }
158
- .btn-play:hover { background: #1d4ed8; transform: scale(1.05); }
159
- .music-info { flex: 1; display: flex; flex-direction: column; gap: 3px; overflow: hidden; }
160
- .music-title { font-size: 0.85rem; font-weight: 700; color: #f0f6fc; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
161
- .music-artist { font-size: 0.7rem; color: #8b949e; }
162
- .seek-bar { width: 100%; accent-color: #3b82f6; cursor: pointer; margin-top: 4px; }
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; }
163
218
  </style>
164
219
  </head>
165
220
  <body>
166
221
  <div class="container">
167
222
  <div class="header">
168
- <h1 id="dashboard-title">${this.title}</h1>
169
- <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>
170
230
  </div>
171
231
 
172
- <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>
173
238
  <div class="card blue">
174
239
  <div class="title">Operating System</div>
175
240
  <div class="value" id="os-name">-</div>
@@ -192,7 +257,7 @@ export class Dashboard {
192
257
  </div>
193
258
  </div>
194
259
 
195
- <div class="terminal-card">
260
+ <div class="terminal-card" id="terminal-card">
196
261
  <div class="terminal-header">
197
262
  <span>TERMINAL / LIVE WHATSAPP LOGS</span>
198
263
  <div class="dots">
@@ -201,46 +266,70 @@ export class Dashboard {
201
266
  <div class="dot green"></div>
202
267
  </div>
203
268
  </div>
204
- <div id="logs">
205
- <div class="log-entry" style="color: #6e7681;">[SYSTEM] Pterodactyl-style console initialized. Listening for bot events...</div>
206
- </div>
269
+ <pre id="logs">[SYSTEM] Pterodactyl-style console initialized. Listening for bot events...&#10;</pre>
207
270
  </div>
208
271
 
209
- <!-- Music Search & Player Widget -->
210
- <div class="music-card">
211
- <div class="music-header">
212
- <span>🎧 YOUTUBE MUSIC SEARCH PLAYER</span>
213
- <span id="player-status" style="color: #38bdf8; font-size: 0.7rem;">Ready</span>
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>
214
276
  </div>
215
- <div class="search-box">
216
- <input type="text" id="search-query" class="search-input" placeholder="Ketik judul lagu (cth: Ada Apa Dengan Cinta)..." onkeypress="if(event.key === 'Enter') searchMusic()">
217
- <button class="btn-search" onclick="searchMusic()">Cari & Putar</button>
218
- </div>
219
- <div class="music-body">
220
- <img id="track-thumb" class="thumbnail" src="https://via.placeholder.com/50" alt="Thumb">
221
- <div class="music-controls">
222
- <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>
223
283
  </div>
224
- <div class="music-info">
225
- <div class="music-title" id="track-title">Belum ada lagu diputar</div>
226
- <div class="music-artist" id="track-channel">Ketik pencarian di atas...</div>
227
- <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>
228
291
  </div>
229
292
  </div>
293
+
294
+ <button class="play-btn-circle" id="play-btn" onclick="togglePlay()">▶</button>
230
295
  <audio id="audio-player" preload="none"></audio>
231
296
  </div>
232
297
  </div>
233
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
+
234
328
  <script>
235
329
  const socket = io();
236
330
 
237
- socket.on('init-data', (data) => {
238
- updateMetrics(data);
239
- });
240
-
241
- socket.on('metrics-update', (data) => {
242
- updateMetrics(data);
243
- });
331
+ socket.on('init-data', (data) => updateMetrics(data));
332
+ socket.on('metrics-update', (data) => updateMetrics(data));
244
333
 
245
334
  socket.on('status-update', (status) => {
246
335
  const badge = document.getElementById('status-badge');
@@ -248,18 +337,19 @@ export class Dashboard {
248
337
  badge.className = 'badge ' + status.toLowerCase();
249
338
  });
250
339
 
340
+ socket.on('pairing-update', (code) => {
341
+ document.getElementById('pairing-code').innerText = code;
342
+ });
343
+
251
344
  socket.on('stats-update', (stats) => {
252
345
  if (stats.commands !== undefined) document.getElementById('total-commands').innerText = stats.commands;
253
346
  if (stats.groups !== undefined) document.getElementById('total-groups').innerText = stats.groups;
254
347
  });
255
348
 
256
349
  socket.on('log-entry', (msg) => {
257
- const logsDiv = document.getElementById('logs');
258
- const entry = document.createElement('div');
259
- entry.className = 'log-entry';
260
- entry.innerText = msg;
261
- logsDiv.appendChild(entry);
262
- logsDiv.scrollTop = logsDiv.scrollHeight;
350
+ const logsPre = document.getElementById('logs');
351
+ logsPre.appendChild(document.createTextNode(msg + '\\n'));
352
+ logsPre.scrollTop = logsPre.scrollHeight;
263
353
  });
264
354
 
265
355
  function updateMetrics(data) {
@@ -270,26 +360,60 @@ export class Dashboard {
270
360
  document.getElementById('ram-percent').innerText = data.ramPercent + '% utilized';
271
361
  document.getElementById('total-commands').innerText = data.commands;
272
362
  document.getElementById('total-groups').innerText = data.groups;
363
+ document.getElementById('pairing-code').innerText = data.pairingCode || '-';
273
364
 
274
365
  const badge = document.getElementById('status-badge');
275
366
  badge.innerText = data.status;
276
367
  badge.className = 'badge ' + data.status.toLowerCase();
277
368
  }
278
369
 
279
- // 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
280
402
  const audio = document.getElementById('audio-player');
281
403
  const playBtn = document.getElementById('play-btn');
282
404
  const trackTitle = document.getElementById('track-title');
283
405
  const trackChannel = document.getElementById('track-channel');
284
406
  const trackThumb = document.getElementById('track-thumb');
285
- const playerStatus = document.getElementById('player-status');
286
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');
287
411
 
288
412
  async function searchMusic() {
289
413
  const query = searchQuery.value.trim();
290
414
  if (!query) return;
291
415
 
292
- playerStatus.innerText = 'Mencari...';
416
+ trackTitle.innerText = 'Mencari lagu...';
293
417
  try {
294
418
  const res = await fetch('/api/play?q=' + encodeURIComponent(query));
295
419
  const json = await res.json();
@@ -297,19 +421,17 @@ export class Dashboard {
297
421
  if (json.status && json.result) {
298
422
  const data = json.result;
299
423
  trackTitle.innerText = data.title;
300
- trackChannel.innerText = data.channel + ' (' + data.duration + ')';
424
+ trackChannel.innerText = data.channel;
301
425
  trackThumb.src = data.thumbnail;
302
426
  audio.src = data.download || data.downloadUrl || data.download_url;
303
427
 
304
428
  audio.play();
305
429
  playBtn.innerText = '❚❚';
306
- playerStatus.innerText = 'Memutar';
307
430
  } else {
308
- playerStatus.innerText = 'Gagal ditemukan';
431
+ trackTitle.innerText = 'Lagu tidak ditemukan';
309
432
  }
310
433
  } catch (err) {
311
- playerStatus.innerText = 'Error API';
312
- console.error(err);
434
+ trackTitle.innerText = 'Gagal memanggil API';
313
435
  }
314
436
  }
315
437
 
@@ -318,17 +440,37 @@ export class Dashboard {
318
440
  if (audio.paused) {
319
441
  audio.play();
320
442
  playBtn.innerText = '❚❚';
321
- playerStatus.innerText = 'Memutar';
322
443
  } else {
323
444
  audio.pause();
324
445
  playBtn.innerText = '▶';
325
- playerStatus.innerText = 'Dijeda';
326
446
  }
327
447
  }
328
448
 
329
- function setVolume(val) {
330
- audio.volume = val;
449
+ function seekAudio(val) {
450
+ if (audio.duration) audio.currentTime = val;
331
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
+ });
332
474
  </script>
333
475
  </body>
334
476
  </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.8",
4
+ "version": "1.0.10",
5
5
  "description": "A WebSockets library for interacting with WhatsApp Web",
6
6
  "keywords": [
7
7
  "whatsapp",