school44s commited on
Commit
0fabf08
·
verified ·
1 Parent(s): f3ffc97

Upload index.html

Browse files
Files changed (1) hide show
  1. index.html +364 -0
index.html ADDED
@@ -0,0 +1,364 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="vi">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>OBTSX</title>
7
+ <style>
8
+ body {
9
+ font-family: Arial, sans-serif;
10
+ margin: 0;
11
+ padding: 0;
12
+ background-color: #f8f9fa;
13
+ }
14
+ header {
15
+ background-color: #ff4500;
16
+ color: white;
17
+ padding: 15px;
18
+ text-align: center;
19
+ }
20
+ header nav {
21
+ margin-top: 10px;
22
+ }
23
+ header nav a {
24
+ color: white;
25
+ margin: 0 15px;
26
+ text-decoration: none;
27
+ font-weight: bold;
28
+ }
29
+ main {
30
+ padding: 20px;
31
+ }
32
+ .countdown {
33
+ text-align: center;
34
+ margin-bottom: 20px;
35
+ }
36
+ .upload-section, .message-section {
37
+ margin: 20px auto;
38
+ max-width: 600px;
39
+ background: white;
40
+ padding: 20px;
41
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
42
+ border-radius: 10px;
43
+ }
44
+ .upload-section h2, .message-section h2 {
45
+ margin-top: 0;
46
+ color: #ff4500;
47
+ }
48
+ .video-list, .message-list {
49
+ margin-top: 30px;
50
+ }
51
+ .video-item, .message-item {
52
+ margin-bottom: 15px;
53
+ padding: 10px;
54
+ border: 1px solid #ddd;
55
+ border-radius: 5px;
56
+ background-color: #fff;
57
+ }
58
+ .loading-screen {
59
+ display: flex;
60
+ position: fixed;
61
+ top: 0;
62
+ left: 0;
63
+ width: 100%;
64
+ height: 100%;
65
+ background: rgba(0, 0, 0, 0.8);
66
+ color: white;
67
+ justify-content: center;
68
+ align-items: center;
69
+ z-index: 1000;
70
+ flex-direction: column;
71
+ opacity: 1;
72
+ animation: fadeout 3s forwards;
73
+ }
74
+ .loading-screen img {
75
+ width: 150px;
76
+ margin-bottom: 20px;
77
+ }
78
+ .loading-screen h1 {
79
+ font-size: 24px;
80
+ font-weight: bold;
81
+ animation: fadeout-text 3s forwards;
82
+ }
83
+ .loading-message {
84
+ display: none;
85
+ text-align: center;
86
+ color: #888;
87
+ font-style: italic;
88
+ margin-top: 20px;
89
+ }
90
+ .news-section {
91
+ margin: 20px auto;
92
+ max-width: 800px;
93
+ background: white;
94
+ padding: 20px;
95
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
96
+ border-radius: 10px;
97
+ }
98
+ .news-section h2 {
99
+ margin-top: 0;
100
+ color: #ff4500;
101
+ }
102
+ .news-item {
103
+ margin-bottom: 15px;
104
+ padding: 10px;
105
+ border: 1px solid #ddd;
106
+ border-radius: 5px;
107
+ background-color: #fff;
108
+ }
109
+ .star-rating {
110
+ display: flex;
111
+ gap: 5px;
112
+ align-items: center;
113
+ }
114
+ .star {
115
+ font-size: 20px;
116
+ color: #ccc;
117
+ cursor: pointer;
118
+ }
119
+ .star.selected {
120
+ color: #ff4500;
121
+ }
122
+ @keyframes fadeout {
123
+ 0% {
124
+ opacity: 1;
125
+ }
126
+ 100% {
127
+ opacity: 0;
128
+ display: none;
129
+ }
130
+ }
131
+ @keyframes fadeout-text {
132
+ 0% {
133
+ opacity: 1;
134
+ }
135
+ 100% {
136
+ opacity: 0;
137
+ }
138
+ }
139
+ .music_playlist{
140
+ margin: 20px auto;
141
+ max-width: 600px;
142
+ background: white;
143
+ padding: 20px;
144
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
145
+ border-radius: 10px;
146
+ }
147
+ </style>
148
+ </head>
149
+ <body>
150
+ <div class="loading-screen" id="loadingScreen">
151
+ <img src="original.png" alt="Logo">
152
+ <h1>OBTSX</h1>
153
+ <p>wellcome ghest</p>
154
+ </div>
155
+ <header>
156
+ <h1>OBTSX</h1>
157
+ <p></p>
158
+ <nav>
159
+ <a href="#home">Home OBTSX</a>
160
+ <a href="VnexpressX/vnexpressX.html">VnexpressX</a>
161
+ <a href="b7/b7.html">My setup</a>
162
+ </nav>
163
+ </header>
164
+ <main>
165
+ <div class="countdown">
166
+ <!-- Đồng hồ đếm ngược nhúng từ iframe -->
167
+ <iframe width="350" height="180" src="https://tienichhay.net/ma-nhung.html?action=countdown&n=Lunar%20New%20Year&dl=Ng%C3%A0y&hl=Gi%E1%BB%9D&ml=Ph%C3%BAt&sl=Gi%C3%A2y&date=2025-01-25&eh=0&em=0&style=horizontal&size=2&r=10px&c=ffffff&bg=c82254&t=no&hide=no&al=center&isln=no&rpy=no" title="Đếm ngược" style="width:100%;max-height:100%;" frameborder="0" scrolling="no" allowfullscreen></iframe>
168
+ </div>
169
+ <div class="music_playlist">
170
+ <h1>My best music playlist</h1>
171
+ <h3>from sao kirito</h3>
172
+ <iframe
173
+ id="soundcloud-player"
174
+ width="100%"
175
+ height="450"
176
+ scrolling="no"
177
+ frameborder="no"
178
+ allow="autoplay"
179
+ src="https://w.soundcloud.com/player/?url=https://soundcloud.com/sao-kirito-3/sets/anime&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true">
180
+ </iframe>
181
+ </div>
182
+ <section class="upload-section">
183
+ <h2>Upload video</h2>
184
+ <form id="uploadForm">
185
+ <label for="videoTitle">Tên video:</label><br>
186
+ <input type="text" id="videoTitle" name="videoTitle" required style="width: 100%; padding: 10px; margin: 10px 0;"><br>
187
+
188
+ <label for="videoFile">Chọn tệp video:</label><br>
189
+ <input type="file" id="videoFile" name="videoFile" accept="video/*" required style="margin: 10px 0;"><br>
190
+
191
+ <button type="submit" style="background-color: #ff4500; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;">Upload</button>
192
+ </form>
193
+ <div class="loading-message" id="videoLoadingMessage">Đang tải...</div>
194
+ </section>
195
+
196
+ <section class="video-list">
197
+ <h2>Video community</h2>
198
+ <div id="videoContainer">
199
+ <!-- Các video sẽ được thêm vào đây -->
200
+ </div>
201
+ </section>
202
+
203
+ <section class="message-section">
204
+ <h2>Bình luận</h2>
205
+ <form id="messageForm">
206
+ <label for="messageContent">Nội dung bình luận:</label><br>
207
+ <textarea id="messageContent" name="messageContent" required style="width: 100%; padding: 10px; margin: 10px 0; height: 100px;"></textarea><br>
208
+
209
+ <div class="star-rating">
210
+ <span class="star" data-value="1">★</span>
211
+ <span class="star" data-value="2">★</span>
212
+ <span class="star" data-value="3">★</span>
213
+ <span class="star" data-value="4">★</span>
214
+ <span class="star" data-value="5">★</span>
215
+ </div>
216
+
217
+ <button type="submit" style="background-color: #ff4500; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;">Bình luận</button>
218
+ </form>
219
+
220
+ <div class="loading-message" id="messageLoadingMessage">Đang tải</div>
221
+ <div class="message-list" id="messageContainer">
222
+ <!-- Tin nhắn sẽ được thêm vào đây -->
223
+ </div>
224
+ </section>
225
+ </main>
226
+
227
+ <script>
228
+ const uploadForm = document.getElementById('uploadForm');
229
+ const videoContainer = document.getElementById('videoContainer');
230
+ const messageForm = document.getElementById('messageForm');
231
+ const messageContainer = document.getElementById('messageContainer');
232
+ const loadingScreen = document.getElementById('loadingScreen');
233
+ const videoLoadingMessage = document.getElementById('videoLoadingMessage');
234
+ const messageLoadingMessage = document.getElementById('messageLoadingMessage');
235
+ const newsContainer = document.getElementById('newsContainer');
236
+ const stars = document.querySelectorAll('.star');
237
+
238
+ let selectedRating = 0;
239
+
240
+ window.addEventListener('load', () => {
241
+ setTimeout(() => {
242
+ loadingScreen.style.display = 'none';
243
+ }, 5000); // Hiển thị màn hình chờ trong 3 giây
244
+
245
+ fetchNews();
246
+ });
247
+
248
+ // Xử lý tải lên video
249
+ uploadForm.addEventListener('submit', function(event) {
250
+ event.preventDefault();
251
+ videoLoadingMessage.style.display = 'block';
252
+
253
+ const videoTitle = document.getElementById('videoTitle').value;
254
+ const videoFile = document.getElementById('videoFile').files[0];
255
+
256
+ if (!videoFile) {
257
+ alert('Vui lòng chọn tệp video.');
258
+ videoLoadingMessage.style.display = 'none';
259
+ return;
260
+ }
261
+
262
+ setTimeout(() => {
263
+ const videoItem = document.createElement('div');
264
+ videoItem.className = 'video-item';
265
+
266
+ const videoElement = document.createElement('video');
267
+ videoElement.controls = true;
268
+ videoElement.src = URL.createObjectURL(videoFile);
269
+ videoElement.style.width = '100%';
270
+
271
+ const titleElement = document.createElement('p');
272
+ titleElement.textContent = videoTitle;
273
+
274
+ const timestampElement = document.createElement('p');
275
+ const uploadTime = new Date();
276
+ timestampElement.textContent = `Tải lên lúc: ${uploadTime.toLocaleString()}`;
277
+ timestampElement.style.fontSize = '12px';
278
+ timestampElement.style.color = '#888';
279
+
280
+ videoItem.appendChild(titleElement);
281
+ videoItem.appendChild(videoElement);
282
+ videoItem.appendChild(timestampElement);
283
+
284
+ videoContainer.appendChild(videoItem);
285
+
286
+ uploadForm.reset();
287
+ videoLoadingMessage.style.display = 'none';
288
+ }, 2000); // Giả lập thời gian xử lý
289
+ });
290
+
291
+ // Xử lý gửi tin nhắn
292
+ messageForm.addEventListener('submit', function(event) {
293
+ event.preventDefault();
294
+ messageLoadingMessage.style.display = 'block';
295
+
296
+ const messageContent = document.getElementById('messageContent').value;
297
+
298
+ setTimeout(() => {
299
+ const messageItem = document.createElement('div');
300
+ messageItem.className = 'message-item';
301
+
302
+ const commentText = document.createElement('p');
303
+ commentText.textContent = messageContent;
304
+
305
+ const ratingText = document.createElement('p');
306
+ ratingText.textContent = `Đánh giá: ${selectedRating}/5 sao`;
307
+ ratingText.style.color = '#888';
308
+ ratingText.style.fontSize = '12px';
309
+
310
+ messageItem.appendChild(commentText);
311
+ messageItem.appendChild(ratingText);
312
+
313
+ messageContainer.appendChild(messageItem);
314
+
315
+ messageForm.reset();
316
+ selectedRating = 0;
317
+ stars.forEach(star => star.classList.remove('selected'));
318
+ messageLoadingMessage.style.display = 'none';
319
+ }, 5000); // Giả lập thời gian xử lý
320
+ });
321
+
322
+ // Xử lý đánh giá sao
323
+ stars.forEach(star => {
324
+ star.addEventListener('click', () => {
325
+ selectedRating = star.getAttribute('data-value');
326
+ stars.forEach(s => s.classList.remove('selected'));
327
+ for (let i = 0; i < selectedRating; i++) {
328
+ stars[i].classList.add('selected');
329
+ }
330
+ });
331
+ });
332
+
333
+ // Lấy tin tức từ VnExpress
334
+ function fetchNews() {
335
+ fetch('https://vnexpress.net/rss/tin-moi-nhat.rss')
336
+ .then(response => response.text())
337
+ .then(data => {
338
+ const parser = new DOMParser();
339
+ const xml = parser.parseFromString(data, 'text/xml');
340
+ const items = xml.querySelectorAll('item');
341
+
342
+ for (let i = 0; i < 4; i++) {
343
+ const item = items[i];
344
+ const title = item.querySelector('title').textContent;
345
+ const link = item.querySelector('link').textContent;
346
+
347
+ const newsItem = document.createElement('div');
348
+ newsItem.className = 'news-item';
349
+
350
+ const newsLink = document.createElement('a');
351
+ newsLink.href = link;
352
+ newsLink.textContent = title;
353
+ newsLink.target = '_blank';
354
+ newsLink.style.textDecoration = 'none';
355
+
356
+ newsItem.appendChild(newsLink);
357
+ newsContainer.appendChild(newsItem);
358
+ }
359
+ })
360
+ .catch(error => console.error('Lỗi khi lấy tin tức:', error));
361
+ }
362
+ </script>
363
+ </body>
364
+ </html>