Skip to content

Commit 545bb14

Browse files
authored
Add files via upload
1 parent 1a89aa5 commit 545bb14

16 files changed

Lines changed: 2224 additions & 579 deletions

sources/websocket/bilibili.html

Lines changed: 44 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -193,11 +193,15 @@
193193
font-size: 1.2em;
194194
}
195195

196-
.stats {
197-
display: flex;
198-
gap: 15px;
199-
margin-top: 5px;
200-
}
196+
.stats {
197+
display: flex;
198+
gap: 15px;
199+
margin-top: 5px;
200+
}
201+
202+
body.hide-metrics .stats {
203+
display: none !important;
204+
}
201205

202206
.stat-item {
203207
display: flex;
@@ -220,11 +224,17 @@ <h3>Configuration</h3>
220224
<label for="roomId">Room ID:</label>
221225
<input type="text" id="roomId" placeholder="Enter Bilibili room ID">
222226
</div>
223-
<div class="input-group">
224-
<label for="cookie">Cookie (Optional, for sending messages):</label>
225-
<textarea id="cookie" placeholder="SESSDATA=xxx; bili_jct=xxx; buvid3=xxx"></textarea>
226-
</div>
227-
<button id="connectBtn">Connect</button>
227+
<div class="input-group">
228+
<label for="cookie">Cookie (Optional, for sending messages):</label>
229+
<textarea id="cookie" placeholder="SESSDATA=xxx; bili_jct=xxx; buvid3=xxx"></textarea>
230+
</div>
231+
<div class="input-group">
232+
<label>
233+
<input type="checkbox" id="hideMetrics">
234+
Hide dashboard metrics
235+
</label>
236+
</div>
237+
<button id="connectBtn">Connect</button>
228238
<button id="disconnectBtn" disabled>Disconnect</button>
229239
</div>
230240

@@ -1112,12 +1122,30 @@ <h3>System Logs</h3>
11121122
const roomIdInput = document.getElementById('roomId');
11131123
const cookieInput = document.getElementById('cookie');
11141124
const messageInput = document.getElementById('messageInput');
1115-
const messageContainer = document.getElementById('messageContainer');
1116-
const systemLogContainer = document.getElementById('systemLog');
1117-
const roomInfoContainer = document.getElementById('roomInfo');
1118-
const connectBtn = document.getElementById('connectBtn');
1119-
const disconnectBtn = document.getElementById('disconnectBtn');
1120-
const sendBtn = document.getElementById('sendBtn');
1125+
const messageContainer = document.getElementById('messageContainer');
1126+
const systemLogContainer = document.getElementById('systemLog');
1127+
const roomInfoContainer = document.getElementById('roomInfo');
1128+
const connectBtn = document.getElementById('connectBtn');
1129+
const disconnectBtn = document.getElementById('disconnectBtn');
1130+
const sendBtn = document.getElementById('sendBtn');
1131+
const hideMetrics = document.getElementById('hideMetrics');
1132+
1133+
function applyMetricsVisibility() {
1134+
document.body.classList.toggle('hide-metrics', !!(hideMetrics && hideMetrics.checked));
1135+
}
1136+
1137+
if (hideMetrics) {
1138+
try {
1139+
hideMetrics.checked = localStorage.getItem('bilibiliHideMetrics') === '1';
1140+
} catch (e) {}
1141+
applyMetricsVisibility();
1142+
hideMetrics.addEventListener('change', function() {
1143+
try {
1144+
localStorage.setItem('bilibiliHideMetrics', hideMetrics.checked ? '1' : '0');
1145+
} catch (e) {}
1146+
applyMetricsVisibility();
1147+
});
1148+
}
11211149

11221150
// Initialize messageBridge for extension communication
11231151
window.messageBridge = new MessageBridge();

sources/websocket/facebook.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@
184184
}
185185
.stat-label { color: var(--fb-muted); font-size: 0.75rem; }
186186
.stat-value { font-size: 1rem; font-weight: 700; margin-top: 2px; }
187+
body.hide-metrics .metric-stat { display: none !important; }
187188
.chat-feed {
188189
background: #0d1218;
189190
border: 1px solid var(--fb-border);
@@ -304,6 +305,7 @@ <h2>Connection settings</h2>
304305
<div class="row">
305306
<label><input type="checkbox" id="auto-connect" checked> Auto-connect</label>
306307
<label><input type="checkbox" id="live-filter" checked> Live stream filter</label>
308+
<label><input type="checkbox" id="hide-metrics"> Hide dashboard metrics</label>
307309
</div>
308310
<details style="margin-top: 10px;">
309311
<summary>Advanced / manual setup</summary>
@@ -351,7 +353,7 @@ <h2>Status</h2>
351353
<div class="stat-label">Connection</div>
352354
<div class="stat-value" id="status-text">Disconnected</div>
353355
</div>
354-
<div class="stat">
356+
<div class="stat metric-stat">
355357
<div class="stat-label">Viewers</div>
356358
<div class="stat-value" id="viewer-count-display">-</div>
357359
</div>

sources/websocket/facebook.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ const state = {
5151
autoConnect: true,
5252
liveFilter: true,
5353
viewerCount: false,
54+
hideMetrics: false,
5455
connected: false,
5556
polling: false,
5657
pollTimer: null,
@@ -86,6 +87,7 @@ function cacheElements() {
8687
els.autoConnect = document.getElementById('auto-connect');
8788
els.liveFilter = document.getElementById('live-filter');
8889
els.viewerCount = document.getElementById('viewer-count');
90+
els.hideMetrics = document.getElementById('hide-metrics');
8991
els.showToken = document.getElementById('show-token');
9092
els.signinBtn = document.getElementById('signin-btn');
9193
els.clearAuthBtn = document.getElementById('clear-auth-btn');
@@ -383,6 +385,7 @@ function loadConfig() {
383385
? Boolean(saved.liveFilter)
384386
: true;
385387
state.viewerCount = saved.viewerCount !== undefined ? Boolean(saved.viewerCount) : false;
388+
state.hideMetrics = saved.hideMetrics !== undefined ? Boolean(saved.hideMetrics) : false;
386389
}
387390

388391
function saveConfig() {
@@ -394,7 +397,8 @@ function saveConfig() {
394397
pollInterval: state.pollInterval,
395398
autoConnect: state.autoConnect,
396399
liveFilter: state.liveFilter,
397-
viewerCount: state.viewerCount
400+
viewerCount: state.viewerCount,
401+
hideMetrics: state.hideMetrics
398402
};
399403
try {
400404
localStorage.setItem(STORAGE_KEY, JSON.stringify(payload));
@@ -466,6 +470,8 @@ function updateInputs() {
466470
if (els.pollInterval) els.pollInterval.value = state.pollInterval;
467471
if (els.autoConnect) els.autoConnect.checked = state.autoConnect;
468472
if (els.liveFilter) els.liveFilter.checked = state.liveFilter;
473+
if (els.hideMetrics) els.hideMetrics.checked = state.hideMetrics;
474+
applyMetricsVisibility();
469475
updateViewerCountControl();
470476
updateActionButtons();
471477
}
@@ -478,6 +484,8 @@ function syncStateFromInputs() {
478484
state.pollInterval = clamp((els.pollInterval && els.pollInterval.value) || DEFAULT_POLL_INTERVAL, MIN_POLL_INTERVAL, MAX_POLL_INTERVAL);
479485
state.autoConnect = !!(els.autoConnect && els.autoConnect.checked);
480486
state.liveFilter = !!(els.liveFilter && els.liveFilter.checked);
487+
state.hideMetrics = !!(els.hideMetrics && els.hideMetrics.checked);
488+
applyMetricsVisibility();
481489
if (!extension.settingsLoaded) {
482490
state.viewerCount = !!(els.viewerCount && els.viewerCount.checked);
483491
}
@@ -491,6 +499,12 @@ function syncStateFromInputs() {
491499
updateActionButtons();
492500
}
493501

502+
function applyMetricsVisibility() {
503+
if (typeof document !== 'undefined' && document.body) {
504+
document.body.classList.toggle('hide-metrics', !!state.hideMetrics);
505+
}
506+
}
507+
494508
function updateViewerCountControl() {
495509
if (!els.viewerCount) return;
496510
const enabled = isViewerTrackingEnabled();
@@ -1285,7 +1299,8 @@ function bindEvents() {
12851299
}
12861300
});
12871301
});
1288-
[els.autoConnect, els.liveFilter, els.viewerCount].forEach((checkbox) => {
1302+
[els.autoConnect, els.liveFilter, els.viewerCount, els.hideMetrics].forEach((checkbox) => {
1303+
if (!checkbox) return;
12891304
checkbox.addEventListener('change', () => {
12901305
syncStateFromInputs();
12911306
saveConfig();

0 commit comments

Comments
 (0)