duplcanada commited on
Commit
8bfd5f7
·
verified ·
1 Parent(s): c78bde1

Add 2 files

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +309 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Awesome
3
- emoji: 🌍
4
- colorFrom: indigo
5
- colorTo: pink
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: awesome
3
+ emoji: 🐳
4
+ colorFrom: yellow
5
+ colorTo: yellow
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,309 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Justin Bieber Live Cam</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ @keyframes wave {
11
+ 0%, 100% { transform: rotate(0deg); }
12
+ 25% { transform: rotate(10deg); }
13
+ 50% { transform: rotate(0deg); }
14
+ 75% { transform: rotate(-10deg); }
15
+ }
16
+
17
+ .wave-animation {
18
+ animation: wave 1.5s infinite;
19
+ transform-origin: 70% 70%;
20
+ }
21
+
22
+ .camera-light {
23
+ animation: pulse 2s infinite;
24
+ }
25
+
26
+ @keyframes pulse {
27
+ 0%, 100% { opacity: 0.6; }
28
+ 50% { opacity: 1; }
29
+ }
30
+
31
+ .video-container {
32
+ border-radius: 15px;
33
+ overflow: hidden;
34
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
35
+ position: relative;
36
+ background: #111;
37
+ }
38
+
39
+ .speech-bubble {
40
+ position: absolute;
41
+ background: rgba(255, 255, 255, 0.9);
42
+ border-radius: 20px;
43
+ padding: 15px;
44
+ max-width: 80%;
45
+ bottom: 120px;
46
+ left: 50%;
47
+ transform: translateX(-50%);
48
+ animation: fadeIn 0.5s ease-out;
49
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
50
+ }
51
+
52
+ @keyframes fadeIn {
53
+ from { opacity: 0; transform: translateX(-50%) translateY(20px); }
54
+ to { opacity: 1; transform: translateX(-50%) translateY(0); }
55
+ }
56
+
57
+ .viewer-count {
58
+ position: absolute;
59
+ top: 15px;
60
+ right: 15px;
61
+ background: rgba(0, 0, 0, 0.7);
62
+ color: white;
63
+ padding: 5px 10px;
64
+ border-radius: 20px;
65
+ font-size: 14px;
66
+ display: flex;
67
+ align-items: center;
68
+ }
69
+
70
+ .live-badge {
71
+ position: absolute;
72
+ top: 15px;
73
+ left: 15px;
74
+ background: #ff0000;
75
+ color: white;
76
+ padding: 5px 10px;
77
+ border-radius: 4px;
78
+ font-size: 14px;
79
+ font-weight: bold;
80
+ display: flex;
81
+ align-items: center;
82
+ }
83
+
84
+ .chat-message {
85
+ animation: slideIn 0.3s ease-out;
86
+ }
87
+
88
+ @keyframes slideIn {
89
+ from { transform: translateY(10px); opacity: 0; }
90
+ to { transform: translateY(0); opacity: 1; }
91
+ }
92
+ </style>
93
+ </head>
94
+ <body class="bg-gray-900 min-h-screen flex items-center justify-center p-4">
95
+ <div class="max-w-4xl w-full">
96
+ <div class="flex flex-col lg:flex-row gap-6">
97
+ <!-- Video Stream -->
98
+ <div class="flex-1">
99
+ <div class="video-container relative">
100
+ <!-- Camera light -->
101
+ <div class="absolute top-4 left-1/2 transform -translate-x-1/2 w-3 h-3 bg-red-500 rounded-full camera-light"></div>
102
+
103
+ <!-- Live badge -->
104
+ <div class="live-badge">
105
+ <div class="w-2 h-2 bg-white rounded-full mr-2"></div>
106
+ LIVE
107
+ </div>
108
+
109
+ <!-- Viewer count -->
110
+ <div class="viewer-count">
111
+ <i class="fas fa-eye mr-2"></i>
112
+ <span id="viewerCount">24,589</span>
113
+ </div>
114
+
115
+ <!-- Video feed -->
116
+ <div class="aspect-w-16 aspect-h-9 bg-black flex items-center justify-center">
117
+ <img id="bieberFace" src="https://i.imgur.com/JQ9wZfN.png" alt="Justin Bieber" class="w-full h-auto max-h-[500px] object-contain wave-animation">
118
+ </div>
119
+
120
+ <!-- Speech bubble -->
121
+ <div class="speech-bubble hidden" id="speechBubble">
122
+ Hey world! What's up? 😊
123
+ </div>
124
+
125
+ <!-- Controls -->
126
+ <div class="bg-gray-800 p-3 flex justify-between items-center">
127
+ <div class="flex space-x-3">
128
+ <button class="text-white bg-gray-700 hover:bg-gray-600 p-2 rounded-full">
129
+ <i class="fas fa-microphone"></i>
130
+ </button>
131
+ <button class="text-white bg-gray-700 hover:bg-gray-600 p-2 rounded-full">
132
+ <i class="fas fa-video"></i>
133
+ </button>
134
+ <button class="text-white bg-gray-700 hover:bg-gray-600 p-2 rounded-full">
135
+ <i class="fas fa-cog"></i>
136
+ </button>
137
+ </div>
138
+ <button class="text-white bg-red-600 hover:bg-red-700 px-4 py-2 rounded-full font-medium">
139
+ End Stream
140
+ </button>
141
+ </div>
142
+ </div>
143
+
144
+ <!-- Stream title -->
145
+ <div class="mt-4 text-white">
146
+ <h1 class="text-2xl font-bold">Justin Bieber LIVE from Toronto</h1>
147
+ <p class="text-gray-400 mt-1">Started streaming 12 minutes ago</p>
148
+ </div>
149
+ </div>
150
+
151
+ <!-- Chat section -->
152
+ <div class="w-full lg:w-80 bg-gray-800 rounded-lg overflow-hidden flex flex-col">
153
+ <div class="bg-gray-700 p-3 text-white font-medium flex justify-between items-center">
154
+ <span>Live Chat</span>
155
+ <span class="text-xs bg-gray-600 px-2 py-1 rounded">4,289 online</span>
156
+ </div>
157
+
158
+ <div class="flex-1 p-3 overflow-y-auto max-h-96" id="chatContainer">
159
+ <!-- Chat messages will appear here -->
160
+ </div>
161
+
162
+ <div class="p-3 border-t border-gray-700">
163
+ <div class="flex items-center">
164
+ <input type="text" placeholder="Send a message" class="flex-1 bg-gray-700 text-white px-3 py-2 rounded-l focus:outline-none">
165
+ <button class="bg-purple-600 hover:bg-purple-700 text-white px-4 py-2 rounded-r">
166
+ <i class="fas fa-paper-plane"></i>
167
+ </button>
168
+ </div>
169
+ </div>
170
+ </div>
171
+ </div>
172
+
173
+ <!-- Fan reactions -->
174
+ <div class="mt-6 grid grid-cols-2 sm:grid-cols-4 gap-4">
175
+ <div class="bg-gray-800 p-4 rounded-lg text-center">
176
+ <div class="text-yellow-400 text-2xl mb-2">
177
+ <i class="fas fa-heart"></i>
178
+ </div>
179
+ <div class="text-white font-medium" id="hearts">12.4K</div>
180
+ </div>
181
+ <div class="bg-gray-800 p-4 rounded-lg text-center">
182
+ <div class="text-blue-400 text-2xl mb-2">
183
+ <i class="fas fa-thumbs-up"></i>
184
+ </div>
185
+ <div class="text-white font-medium" id="likes">8.7K</div>
186
+ </div>
187
+ <div class="bg-gray-800 p-4 rounded-lg text-center">
188
+ <div class="text-green-400 text-2xl mb-2">
189
+ <i class="fas fa-star"></i>
190
+ </div>
191
+ <div class="text-white font-medium" id="stars">5.2K</div>
192
+ </div>
193
+ <div class="bg-gray-800 p-4 rounded-lg text-center">
194
+ <div class="text-red-400 text-2xl mb-2">
195
+ <i class="fas fa-gift"></i>
196
+ </div>
197
+ <div class="text-white font-medium" id="gifts">1.9K</div>
198
+ </div>
199
+ </div>
200
+ </div>
201
+
202
+ <script>
203
+ // Simulate Justin saying hello
204
+ setTimeout(() => {
205
+ document.getElementById('speechBubble').classList.remove('hidden');
206
+
207
+ // Make the face wave
208
+ document.getElementById('bieberFace').classList.add('wave-animation');
209
+
210
+ // Remove wave after animation completes
211
+ setTimeout(() => {
212
+ document.getElementById('bieberFace').classList.remove('wave-animation');
213
+ }, 1500);
214
+ }, 1000);
215
+
216
+ // Simulate chat messages
217
+ const messages = [
218
+ {name: "BieberFan4Life", text: "OMG JUSTIN!! 😍", color: "text-pink-400"},
219
+ {name: "MusicLover22", text: "You're the best!", color: "text-blue-400"},
220
+ {name: "SarahJ", text: "Can you sing Yummy please??", color: "text-green-400"},
221
+ {name: "Diego_T", text: "Greetings from Mexico!", color: "text-yellow-400"},
222
+ {name: "Belieber99", text: "I love you Justin!!!", color: "text-purple-400"},
223
+ {name: "MusicCritic", text: "When's the new album coming?", color: "text-red-400"},
224
+ ];
225
+
226
+ const chatContainer = document.getElementById('chatContainer');
227
+
228
+ function addChatMessage() {
229
+ const randomMsg = messages[Math.floor(Math.random() * messages.length)];
230
+ const messageElement = document.createElement('div');
231
+ messageElement.className = `chat-message text-white mb-2`;
232
+ messageElement.innerHTML = `
233
+ <span class="${randomMsg.color} font-medium">${randomMsg.name}:</span>
234
+ <span>${randomMsg.text}</span>
235
+ `;
236
+ chatContainer.appendChild(messageElement);
237
+ chatContainer.scrollTop = chatContainer.scrollHeight;
238
+
239
+ // Random interval for next message
240
+ setTimeout(addChatMessage, Math.random() * 2000 + 500);
241
+ }
242
+
243
+ // Start chat simulation
244
+ setTimeout(addChatMessage, 1500);
245
+
246
+ // Simulate viewer count increase
247
+ setInterval(() => {
248
+ const viewerCount = document.getElementById('viewerCount');
249
+ let count = parseInt(viewerCount.textContent.replace(/,/g, ''));
250
+ count += Math.floor(Math.random() * 10);
251
+ viewerCount.textContent = count.toLocaleString();
252
+ }, 3000);
253
+
254
+ // Simulate reaction counts increasing
255
+ setInterval(() => {
256
+ const hearts = document.getElementById('hearts');
257
+ let heartCount = parseFloat(hearts.textContent.replace(/[^\d.]/g, ''));
258
+ heartCount += Math.random();
259
+ hearts.textContent = heartCount >= 1000 ? (heartCount/1000).toFixed(1) + "K" : Math.round(heartCount);
260
+
261
+ const likes = document.getElementById('likes');
262
+ let likeCount = parseFloat(likes.textContent.replace(/[^\d.]/g, ''));
263
+ likeCount += Math.random() * 0.8;
264
+ likes.textContent = likeCount >= 1000 ? (likeCount/1000).toFixed(1) + "K" : Math.round(likeCount);
265
+
266
+ const stars = document.getElementById('stars');
267
+ let starCount = parseFloat(stars.textContent.replace(/[^\d.]/g, ''));
268
+ starCount += Math.random() * 0.5;
269
+ stars.textContent = starCount >= 1000 ? (starCount/1000).toFixed(1) + "K" : Math.round(starCount);
270
+
271
+ const gifts = document.getElementById('gifts');
272
+ let giftCount = parseFloat(gifts.textContent.replace(/[^\d.]/g, ''));
273
+ giftCount += Math.random() * 0.3;
274
+ gifts.textContent = giftCount >= 1000 ? (giftCount/1000).toFixed(1) + "K" : Math.round(giftCount);
275
+ }, 2000);
276
+
277
+ // Make the speech bubble change messages periodically
278
+ const phrases = [
279
+ "What's up world?",
280
+ "Toronto is lit today!",
281
+ "Love you guys!",
282
+ "Who's watching from outside Canada?",
283
+ "New music coming soon!",
284
+ "Stay awesome everyone!",
285
+ "Sending love to all my fans ❤️"
286
+ ];
287
+
288
+ setInterval(() => {
289
+ const bubble = document.getElementById('speechBubble');
290
+ const randomPhrase = phrases[Math.floor(Math.random() * phrases.length)];
291
+ bubble.textContent = randomPhrase;
292
+
293
+ // Trigger animation
294
+ bubble.style.animation = 'none';
295
+ void bubble.offsetWidth; // Trigger reflow
296
+ bubble.style.animation = 'fadeIn 0.5s ease-out';
297
+
298
+ // Make the face wave
299
+ const face = document.getElementById('bieberFace');
300
+ face.classList.add('wave-animation');
301
+
302
+ // Remove wave after animation completes
303
+ setTimeout(() => {
304
+ face.classList.remove('wave-animation');
305
+ }, 1500);
306
+ }, 8000);
307
+ </script>
308
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=duplcanada/awesome" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
309
+ </html>