instbyte 1.9.1 → 1.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +360 -230
- package/bin/instbyte.js +27 -27
- package/client/assets/lucide.min.js +12 -0
- package/client/css/app.css +1972 -1972
- package/client/index.html +94 -94
- package/client/js/app.js +1648 -1613
- package/package.json +11 -4
- package/server/cleanup.js +27 -26
- package/server/config.js +69 -69
- package/server/db.js +60 -60
- package/server/server.js +871 -865
package/client/index.html
CHANGED
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<title>Instbyte</title>
|
|
6
|
-
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-dynamic.png">
|
|
7
|
-
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-dynamic.png">
|
|
8
|
-
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
9
|
-
|
|
10
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css">
|
|
11
|
-
<link rel="stylesheet" href="/css/app.css">
|
|
12
|
-
|
|
13
|
-
<script src="
|
|
14
|
-
</head>
|
|
15
|
-
|
|
16
|
-
<body>
|
|
17
|
-
|
|
18
|
-
<header class="app-header">
|
|
19
|
-
<div class="header-left">
|
|
20
|
-
<img src="/assets/logo.png" class="logo" id="appLogo">
|
|
21
|
-
<span class="app-name" id="appName">Instbyte</span>
|
|
22
|
-
</div>
|
|
23
|
-
<div class="header-center">
|
|
24
|
-
<div class="search-wrapper">
|
|
25
|
-
<span class="search-icon">🔍</span>
|
|
26
|
-
<input id="search" type="text" placeholder="Search across channels...">
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
29
|
-
<div class="header-right">
|
|
30
|
-
<span id="who" class="username-display" onclick="changeName()" title="Click to change name"></span>
|
|
31
|
-
<span id="onlineCount" class="online-count"></span>
|
|
32
|
-
<button id="themeToggle" onclick="cycleTheme()" class="link-btn theme-toggle" title="Toggle theme">🌙</button>
|
|
33
|
-
<button id="logoutBtn" onclick="logout()" class="logout-btn">logout</button>
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
</header>
|
|
37
|
-
|
|
38
|
-
<div class="container">
|
|
39
|
-
<div class="channel-bar">
|
|
40
|
-
<div class="channels" id="channels"></div>
|
|
41
|
-
<button class="add-channel" id="addChannelBtnDesktop">+</button>
|
|
42
|
-
<button class="add-channel-mobile" id="addChannelBtn">+</button>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
<div class="composer">
|
|
46
|
-
<input id="msg" type="text" placeholder="Type message or paste link" onkeydown="handleEnter(event)" />
|
|
47
|
-
<button onclick="sendText()">Send</button>
|
|
48
|
-
<input type="file" id="fileInput" hidden multiple>
|
|
49
|
-
<button onclick="fileInput.click()">Upload</button>
|
|
50
|
-
</div>
|
|
51
|
-
<div class="drop" id="drop">Drag files anywhere to upload</div>
|
|
52
|
-
<div id="uploadStatus"
|
|
53
|
-
style="display:none;background:#111827;color:#fff;padding:10px;border-radius:8px;margin-top:10px;font-size:13px;">
|
|
54
|
-
<div id="uploadText">Uploading...</div>
|
|
55
|
-
<div style="background:#374151;height:6px;border-radius:4px;margin-top:6px;">
|
|
56
|
-
<div id="uploadBar" style="width:0%;height:6px;background:#10b981;border-radius:4px;"></div>
|
|
57
|
-
</div>
|
|
58
|
-
</div>
|
|
59
|
-
<div id="items"></div>
|
|
60
|
-
<div id="loadMoreWrapper" style="display:none; text-align:center; margin:16px 0;">
|
|
61
|
-
<button id="loadMoreBtn" onclick="loadMore()" class="load-more-btn">Load more</button>
|
|
62
|
-
</div>
|
|
63
|
-
</div>
|
|
64
|
-
|
|
65
|
-
<div id="dragOverlay"
|
|
66
|
-
style="position:fixed;inset:0;background:rgba(0,0,0,0.55);color:#fff;display:none;align-items:center;justify-content:center;font-size:28px;z-index:9999;pointer-events:none;">
|
|
67
|
-
Drop to upload
|
|
68
|
-
</div>
|
|
69
|
-
|
|
70
|
-
<div class="qr-widget">
|
|
71
|
-
<div class="qr-card" id="qrCard">
|
|
72
|
-
<div class="qr-label">Join on network</div>
|
|
73
|
-
<img id="qrImg" src="" alt="QR">
|
|
74
|
-
<div class="qr-url" id="qrUrl"></div>
|
|
75
|
-
</div>
|
|
76
|
-
<button class="qr-toggle" onclick="toggleQR()">📡 Join</button>
|
|
77
|
-
</div>
|
|
78
|
-
|
|
79
|
-
<div class="context-menu" id="channelMenu"></div>
|
|
80
|
-
|
|
81
|
-
<div id="undoToast" class="undo-toast">
|
|
82
|
-
<span id="undoMsg">Item deleted</span>
|
|
83
|
-
<button id="undoBtn" onclick="undoDelete()">Undo</button>
|
|
84
|
-
<div id="undoProgress" class="undo-progress"></div>
|
|
85
|
-
</div>
|
|
86
|
-
|
|
87
|
-
<script src="/socket.io/socket.io.js"></script>
|
|
88
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/9.1.6/marked.min.js"></script>
|
|
89
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
|
|
90
|
-
<script src="/js/app.js"></script>
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
</body>
|
|
94
|
-
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<title>Instbyte</title>
|
|
6
|
+
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-dynamic.png">
|
|
7
|
+
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-dynamic.png">
|
|
8
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
9
|
+
|
|
10
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css">
|
|
11
|
+
<link rel="stylesheet" href="/css/app.css">
|
|
12
|
+
|
|
13
|
+
<script src="/assets/lucide.min.js"></script>
|
|
14
|
+
</head>
|
|
15
|
+
|
|
16
|
+
<body>
|
|
17
|
+
|
|
18
|
+
<header class="app-header">
|
|
19
|
+
<div class="header-left">
|
|
20
|
+
<img src="/assets/logo.png" class="logo" id="appLogo">
|
|
21
|
+
<span class="app-name" id="appName">Instbyte</span>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="header-center">
|
|
24
|
+
<div class="search-wrapper">
|
|
25
|
+
<span class="search-icon">🔍</span>
|
|
26
|
+
<input id="search" type="text" placeholder="Search across channels...">
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="header-right">
|
|
30
|
+
<span id="who" class="username-display" onclick="changeName()" title="Click to change name"></span>
|
|
31
|
+
<span id="onlineCount" class="online-count"></span>
|
|
32
|
+
<button id="themeToggle" onclick="cycleTheme()" class="link-btn theme-toggle" title="Toggle theme">🌙</button>
|
|
33
|
+
<button id="logoutBtn" onclick="logout()" class="logout-btn">logout</button>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</header>
|
|
37
|
+
|
|
38
|
+
<div class="container">
|
|
39
|
+
<div class="channel-bar">
|
|
40
|
+
<div class="channels" id="channels"></div>
|
|
41
|
+
<button class="add-channel" id="addChannelBtnDesktop">+</button>
|
|
42
|
+
<button class="add-channel-mobile" id="addChannelBtn">+</button>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<div class="composer">
|
|
46
|
+
<input id="msg" type="text" placeholder="Type message or paste link" onkeydown="handleEnter(event)" />
|
|
47
|
+
<button onclick="sendText()">Send</button>
|
|
48
|
+
<input type="file" id="fileInput" hidden multiple>
|
|
49
|
+
<button onclick="fileInput.click()">Upload</button>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="drop" id="drop">Drag files anywhere to upload</div>
|
|
52
|
+
<div id="uploadStatus"
|
|
53
|
+
style="display:none;background:#111827;color:#fff;padding:10px;border-radius:8px;margin-top:10px;font-size:13px;">
|
|
54
|
+
<div id="uploadText">Uploading...</div>
|
|
55
|
+
<div style="background:#374151;height:6px;border-radius:4px;margin-top:6px;">
|
|
56
|
+
<div id="uploadBar" style="width:0%;height:6px;background:#10b981;border-radius:4px;"></div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
<div id="items"></div>
|
|
60
|
+
<div id="loadMoreWrapper" style="display:none; text-align:center; margin:16px 0;">
|
|
61
|
+
<button id="loadMoreBtn" onclick="loadMore()" class="load-more-btn">Load more</button>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<div id="dragOverlay"
|
|
66
|
+
style="position:fixed;inset:0;background:rgba(0,0,0,0.55);color:#fff;display:none;align-items:center;justify-content:center;font-size:28px;z-index:9999;pointer-events:none;">
|
|
67
|
+
Drop to upload
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
<div class="qr-widget">
|
|
71
|
+
<div class="qr-card" id="qrCard">
|
|
72
|
+
<div class="qr-label">Join on network</div>
|
|
73
|
+
<img id="qrImg" src="" alt="QR">
|
|
74
|
+
<div class="qr-url" id="qrUrl"></div>
|
|
75
|
+
</div>
|
|
76
|
+
<button class="qr-toggle" onclick="toggleQR()">📡 Join</button>
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
<div class="context-menu" id="channelMenu"></div>
|
|
80
|
+
|
|
81
|
+
<div id="undoToast" class="undo-toast">
|
|
82
|
+
<span id="undoMsg">Item deleted</span>
|
|
83
|
+
<button id="undoBtn" onclick="undoDelete()">Undo</button>
|
|
84
|
+
<div id="undoProgress" class="undo-progress"></div>
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
<script src="/socket.io/socket.io.js?v=1.9.1.1"></script>
|
|
88
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/9.1.6/marked.min.js"></script>
|
|
89
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
|
|
90
|
+
<script src="/js/app.js?v=1.9.1.2"></script>
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
</body>
|
|
94
|
+
|
|
95
95
|
</html>
|