Update app.py
Browse files
app.py
CHANGED
|
@@ -175,7 +175,7 @@ BASE_STYLE = '''
|
|
| 175 |
color: white;
|
| 176 |
}
|
| 177 |
.logout-btn:hover {
|
| 178 |
-
background: #45b7b0;
|
| 179 |
}
|
| 180 |
.menu-btn {
|
| 181 |
display: none;
|
|
@@ -312,17 +312,6 @@ NAV_HTML = '''
|
|
| 312 |
</aside>
|
| 313 |
'''
|
| 314 |
|
| 315 |
-
# Новый маршрут для увеличения счётчика просмотров
|
| 316 |
-
@app.route('/increment_view/<post_id>', methods=['POST'])
|
| 317 |
-
def increment_view(post_id):
|
| 318 |
-
data = load_data()
|
| 319 |
-
post = next((p for p in data['posts'] if p['id'] == post_id), None)
|
| 320 |
-
if post:
|
| 321 |
-
post['views'] = post.get('views', 0) + 1
|
| 322 |
-
save_data(data)
|
| 323 |
-
return {"status": "success", "views": post['views']}, 200
|
| 324 |
-
return {"status": "error", "message": "Post not found"}, 404
|
| 325 |
-
|
| 326 |
# Registration
|
| 327 |
@app.route('/register', methods=['GET', 'POST'])
|
| 328 |
def register():
|
|
@@ -532,7 +521,7 @@ def login():
|
|
| 532 |
</body>
|
| 533 |
</html>
|
| 534 |
'''
|
| 535 |
-
return render_template_string(html, is_authenticated=
|
| 536 |
|
| 537 |
# Logout
|
| 538 |
@app.route('/logout')
|
|
@@ -674,7 +663,7 @@ def feed():
|
|
| 674 |
<source src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" type="video/mp4">
|
| 675 |
</video>
|
| 676 |
{% else %}
|
| 677 |
-
<img class="post-preview" src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" alt="{{ post['title'] }}" onclick="openModal(this.src, event
|
| 678 |
{% endif %}
|
| 679 |
<h2>{{ post['title'] }}</h2>
|
| 680 |
<p>{{ post['description'] }}</p>
|
|
@@ -695,28 +684,12 @@ def feed():
|
|
| 695 |
document.body.classList.toggle('dark');
|
| 696 |
localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light');
|
| 697 |
}
|
| 698 |
-
function openModal(src, event
|
| 699 |
event.preventDefault();
|
| 700 |
const modal = document.getElementById('imageModal');
|
| 701 |
const modalImg = document.getElementById('modalImage');
|
| 702 |
modal.style.display = 'flex';
|
| 703 |
modalImg.src = src;
|
| 704 |
-
|
| 705 |
-
// Увеличиваем счётчик просмотров через AJAX
|
| 706 |
-
fetch(`/increment_view/${postId}`, {
|
| 707 |
-
method: 'POST',
|
| 708 |
-
headers: {
|
| 709 |
-
'Content-Type': 'application/json',
|
| 710 |
-
}
|
| 711 |
-
})
|
| 712 |
-
.then(response => response.json())
|
| 713 |
-
.then(data => {
|
| 714 |
-
if (data.status === 'success') {
|
| 715 |
-
const statsElement = event.target.closest('.post-item').querySelector('.stats');
|
| 716 |
-
statsElement.textContent = `Views: ${data.views} | Likes: ${statsElement.textContent.split('|')[1].trim()}`;
|
| 717 |
-
}
|
| 718 |
-
})
|
| 719 |
-
.catch(error => console.error('Error incrementing view:', error));
|
| 720 |
}
|
| 721 |
function closeModal(event) {
|
| 722 |
if (event.target.tagName !== 'IMG') {
|
|
@@ -845,7 +818,7 @@ def post_page(post_id):
|
|
| 845 |
<source src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" type="video/mp4">
|
| 846 |
</video>
|
| 847 |
{% else %}
|
| 848 |
-
<img src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" alt="{{ post['title'] }}" onclick="openModal(this.src
|
| 849 |
{% endif %}
|
| 850 |
<p>{{ post['description'] }}</p>
|
| 851 |
<p>Uploaded by: <a href="{{ url_for('user_profile', username=post['uploader']) }}" class="username-link">{{ post['uploader'] }}</a> | {{ post['upload_date'] }}</p>
|
|
@@ -858,7 +831,7 @@ def post_page(post_id):
|
|
| 858 |
</form>
|
| 859 |
<form method="POST" class="comment-section">
|
| 860 |
<textarea name="comment" placeholder="Leave a comment" rows="4"></textarea>
|
| 861 |
-
<button type="
|
| 862 |
</form>
|
| 863 |
{% endif %}
|
| 864 |
<h3 style="margin-top: 40px; font-size: 1.8em;">Comments</h3>
|
|
@@ -883,26 +856,11 @@ def post_page(post_id):
|
|
| 883 |
document.body.classList.toggle('dark');
|
| 884 |
localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light');
|
| 885 |
}
|
| 886 |
-
function openModal(src
|
| 887 |
const modal = document.getElementById('imageModal');
|
| 888 |
const modalImg = document.getElementById('modalImage');
|
| 889 |
modal.style.display = 'flex';
|
| 890 |
modalImg.src = src;
|
| 891 |
-
|
| 892 |
-
// Увеличиваем счётчик просмотров через AJAX
|
| 893 |
-
fetch(`/increment_view/${postId}`, {
|
| 894 |
-
method: 'POST',
|
| 895 |
-
headers: {
|
| 896 |
-
'Content-Type': 'application/json',
|
| 897 |
-
}
|
| 898 |
-
})
|
| 899 |
-
.then(response => response.json())
|
| 900 |
-
.then(data => {
|
| 901 |
-
if (data.status === 'success') {
|
| 902 |
-
document.querySelector('p:contains("Views:")').textContent = `Views: ${data.views} | Likes: {{ post['likes']|length }}`;
|
| 903 |
-
}
|
| 904 |
-
})
|
| 905 |
-
.catch(error => console.error('Error incrementing view:', error));
|
| 906 |
}
|
| 907 |
function closeModal(event) {
|
| 908 |
if (event.target.tagName !== 'IMG') {
|
|
@@ -1107,7 +1065,7 @@ def profile():
|
|
| 1107 |
<source src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" type="video/mp4">
|
| 1108 |
</video>
|
| 1109 |
{% else %}
|
| 1110 |
-
<img class="post-preview" src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" alt="{{ post['title'] }}" onclick="openModal(this.src, event
|
| 1111 |
{% endif %}
|
| 1112 |
<h3>{{ post['title'] }}</h3>
|
| 1113 |
</a>
|
|
@@ -1135,30 +1093,12 @@ def profile():
|
|
| 1135 |
document.body.classList.toggle('dark');
|
| 1136 |
localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light');
|
| 1137 |
}
|
| 1138 |
-
function openModal(src, event
|
| 1139 |
event.preventDefault();
|
| 1140 |
const modal = document.getElementById('imageModal');
|
| 1141 |
const modalImg = document.getElementById('modalImage');
|
| 1142 |
modal.style.display = 'flex';
|
| 1143 |
modalImg.src = src;
|
| 1144 |
-
|
| 1145 |
-
// Увеличиваем счётчик просмотров через AJAX
|
| 1146 |
-
fetch(`/increment_view/${postId}`, {
|
| 1147 |
-
method: 'POST',
|
| 1148 |
-
headers: {
|
| 1149 |
-
'Content-Type': 'application/json',
|
| 1150 |
-
}
|
| 1151 |
-
})
|
| 1152 |
-
.then(response => response.json())
|
| 1153 |
-
.then(data => {
|
| 1154 |
-
if (data.status === 'success') {
|
| 1155 |
-
// Обновляем общее количество просмотров на странице профиля
|
| 1156 |
-
const totalViewsElement = document.querySelector('.profile-info p:contains("Views:")');
|
| 1157 |
-
const currentLikes = totalViewsElement.textContent.split('|')[1].trim();
|
| 1158 |
-
totalViewsElement.textContent = `Views: ${parseInt(totalViewsElement.textContent.split(' ')[1]) + 1} | ${currentLikes}`;
|
| 1159 |
-
}
|
| 1160 |
-
})
|
| 1161 |
-
.catch(error => console.error('Error incrementing view:', error));
|
| 1162 |
}
|
| 1163 |
function closeModal(event) {
|
| 1164 |
if (event.target.tagName !== 'IMG') {
|
|
@@ -1325,7 +1265,7 @@ def user_profile(username):
|
|
| 1325 |
<source src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" type="video/mp4">
|
| 1326 |
</video>
|
| 1327 |
{% else %}
|
| 1328 |
-
<img class="post-preview" src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" alt="{{ post['title'] }}" onclick="openModal(this.src, event
|
| 1329 |
{% endif %}
|
| 1330 |
<h3>{{ post['title'] }}</h3>
|
| 1331 |
</a>
|
|
@@ -1349,30 +1289,12 @@ def user_profile(username):
|
|
| 1349 |
document.body.classList.toggle('dark');
|
| 1350 |
localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light');
|
| 1351 |
}
|
| 1352 |
-
function openModal(src, event
|
| 1353 |
event.preventDefault();
|
| 1354 |
const modal = document.getElementById('imageModal');
|
| 1355 |
const modalImg = document.getElementById('modalImage');
|
| 1356 |
modal.style.display = 'flex';
|
| 1357 |
modalImg.src = src;
|
| 1358 |
-
|
| 1359 |
-
// Увеличиваем счётчик просмотров через AJAX
|
| 1360 |
-
fetch(`/increment_view/${postId}`, {
|
| 1361 |
-
method: 'POST',
|
| 1362 |
-
headers: {
|
| 1363 |
-
'Content-Type': 'application/json',
|
| 1364 |
-
}
|
| 1365 |
-
})
|
| 1366 |
-
.then(response => response.json())
|
| 1367 |
-
.then(data => {
|
| 1368 |
-
if (data.status === 'success') {
|
| 1369 |
-
// Обновляем общее количество просмотров на странице профиля
|
| 1370 |
-
const totalViewsElement = document.querySelector('.profile-info p:contains("Views:")');
|
| 1371 |
-
const currentLikes = totalViewsElement.textContent.split('|')[1].trim();
|
| 1372 |
-
totalViewsElement.textContent = `Views: ${parseInt(totalViewsElement.textContent.split(' ')[1]) + 1} | ${currentLikes}`;
|
| 1373 |
-
}
|
| 1374 |
-
})
|
| 1375 |
-
.catch(error => console.error('Error incrementing view:', error));
|
| 1376 |
}
|
| 1377 |
function closeModal(event) {
|
| 1378 |
if (event.target.tagName !== 'IMG') {
|
|
@@ -1463,7 +1385,7 @@ def upload():
|
|
| 1463 |
<head>
|
| 1464 |
<meta charset="UTF-8">
|
| 1465 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 1466 |
-
|
| 1467 |
<title>Upload Content - Content Hub</title>
|
| 1468 |
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&display=swap" rel="stylesheet">
|
| 1469 |
<style>
|
|
@@ -1698,7 +1620,7 @@ def admin_panel():
|
|
| 1698 |
<source src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" type="video/mp4">
|
| 1699 |
</video>
|
| 1700 |
{% else %}
|
| 1701 |
-
<img class="post-preview" src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" alt="{{ post['title'] }}"
|
| 1702 |
{% endif %}
|
| 1703 |
<h2>{{ post['title'] }}</h2>
|
| 1704 |
</a>
|
|
@@ -1715,9 +1637,6 @@ def admin_panel():
|
|
| 1715 |
{% endif %}
|
| 1716 |
</div>
|
| 1717 |
</div>
|
| 1718 |
-
<div class="modal" id="imageModal" onclick="closeModal(event)">
|
| 1719 |
-
<img id="modalImage" src="">
|
| 1720 |
-
</div>
|
| 1721 |
<script>
|
| 1722 |
function toggleSidebar() {
|
| 1723 |
document.getElementById('sidebar').classList.toggle('active');
|
|
@@ -1726,33 +1645,6 @@ def admin_panel():
|
|
| 1726 |
document.body.classList.toggle('dark');
|
| 1727 |
localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light');
|
| 1728 |
}
|
| 1729 |
-
function openModal(src, event, postId) {
|
| 1730 |
-
event.preventDefault();
|
| 1731 |
-
const modal = document.getElementById('imageModal');
|
| 1732 |
-
const modalImg = document.getElementById('modalImage');
|
| 1733 |
-
modal.style.display = 'flex';
|
| 1734 |
-
modalImg.src = src;
|
| 1735 |
-
|
| 1736 |
-
// Увеличиваем счётчик просмотров через AJAX
|
| 1737 |
-
fetch(`/increment_view/${postId}`, {
|
| 1738 |
-
method: 'POST',
|
| 1739 |
-
headers: {
|
| 1740 |
-
'Content-Type': 'application/json',
|
| 1741 |
-
}
|
| 1742 |
-
})
|
| 1743 |
-
.then(response => response.json())
|
| 1744 |
-
.then(data => {
|
| 1745 |
-
if (data.status === 'success') {
|
| 1746 |
-
alert('View incremented! New count: ' + data.views); // Временное уведомление для проверки
|
| 1747 |
-
}
|
| 1748 |
-
})
|
| 1749 |
-
.catch(error => console.error('Error incrementing view:', error));
|
| 1750 |
-
}
|
| 1751 |
-
function closeModal(event) {
|
| 1752 |
-
if (event.target.tagName !== 'IMG') {
|
| 1753 |
-
document.getElementById('imageModal').style.display = 'none';
|
| 1754 |
-
}
|
| 1755 |
-
}
|
| 1756 |
window.onload = () => {
|
| 1757 |
if (localStorage.getItem('theme') === 'dark') document.body.classList.add('dark');
|
| 1758 |
const videos = document.querySelectorAll('.post-preview');
|
|
|
|
| 175 |
color: white;
|
| 176 |
}
|
| 177 |
.logout-btn:hover {
|
| 178 |
+
background %s: #45b7b0;
|
| 179 |
}
|
| 180 |
.menu-btn {
|
| 181 |
display: none;
|
|
|
|
| 312 |
</aside>
|
| 313 |
'''
|
| 314 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 315 |
# Registration
|
| 316 |
@app.route('/register', methods=['GET', 'POST'])
|
| 317 |
def register():
|
|
|
|
| 521 |
</body>
|
| 522 |
</html>
|
| 523 |
'''
|
| 524 |
+
return render_template_string(html, is_authenticated=is_authenticated, username=username)
|
| 525 |
|
| 526 |
# Logout
|
| 527 |
@app.route('/logout')
|
|
|
|
| 663 |
<source src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" type="video/mp4">
|
| 664 |
</video>
|
| 665 |
{% else %}
|
| 666 |
+
<img class="post-preview" src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" alt="{{ post['title'] }}" onclick="openModal(this.src, event)">
|
| 667 |
{% endif %}
|
| 668 |
<h2>{{ post['title'] }}</h2>
|
| 669 |
<p>{{ post['description'] }}</p>
|
|
|
|
| 684 |
document.body.classList.toggle('dark');
|
| 685 |
localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light');
|
| 686 |
}
|
| 687 |
+
function openModal(src, event) {
|
| 688 |
event.preventDefault();
|
| 689 |
const modal = document.getElementById('imageModal');
|
| 690 |
const modalImg = document.getElementById('modalImage');
|
| 691 |
modal.style.display = 'flex';
|
| 692 |
modalImg.src = src;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 693 |
}
|
| 694 |
function closeModal(event) {
|
| 695 |
if (event.target.tagName !== 'IMG') {
|
|
|
|
| 818 |
<source src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" type="video/mp4">
|
| 819 |
</video>
|
| 820 |
{% else %}
|
| 821 |
+
<img src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" alt="{{ post['title'] }}" onclick="openModal(this.src)">
|
| 822 |
{% endif %}
|
| 823 |
<p>{{ post['description'] }}</p>
|
| 824 |
<p>Uploaded by: <a href="{{ url_for('user_profile', username=post['uploader']) }}" class="username-link">{{ post['uploader'] }}</a> | {{ post['upload_date'] }}</p>
|
|
|
|
| 831 |
</form>
|
| 832 |
<form method="POST" class="comment-section">
|
| 833 |
<textarea name="comment" placeholder="Leave a comment" rows="4"></textarea>
|
| 834 |
+
<button type="submit" class="btn">Submit</button>
|
| 835 |
</form>
|
| 836 |
{% endif %}
|
| 837 |
<h3 style="margin-top: 40px; font-size: 1.8em;">Comments</h3>
|
|
|
|
| 856 |
document.body.classList.toggle('dark');
|
| 857 |
localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light');
|
| 858 |
}
|
| 859 |
+
function openModal(src) {
|
| 860 |
const modal = document.getElementById('imageModal');
|
| 861 |
const modalImg = document.getElementById('modalImage');
|
| 862 |
modal.style.display = 'flex';
|
| 863 |
modalImg.src = src;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 864 |
}
|
| 865 |
function closeModal(event) {
|
| 866 |
if (event.target.tagName !== 'IMG') {
|
|
|
|
| 1065 |
<source src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" type="video/mp4">
|
| 1066 |
</video>
|
| 1067 |
{% else %}
|
| 1068 |
+
<img class="post-preview" src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" alt="{{ post['title'] }}" onclick="openModal(this.src, event)">
|
| 1069 |
{% endif %}
|
| 1070 |
<h3>{{ post['title'] }}</h3>
|
| 1071 |
</a>
|
|
|
|
| 1093 |
document.body.classList.toggle('dark');
|
| 1094 |
localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light');
|
| 1095 |
}
|
| 1096 |
+
function openModal(src, event) {
|
| 1097 |
event.preventDefault();
|
| 1098 |
const modal = document.getElementById('imageModal');
|
| 1099 |
const modalImg = document.getElementById('modalImage');
|
| 1100 |
modal.style.display = 'flex';
|
| 1101 |
modalImg.src = src;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1102 |
}
|
| 1103 |
function closeModal(event) {
|
| 1104 |
if (event.target.tagName !== 'IMG') {
|
|
|
|
| 1265 |
<source src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" type="video/mp4">
|
| 1266 |
</video>
|
| 1267 |
{% else %}
|
| 1268 |
+
<img class="post-preview" src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" alt="{{ post['title'] }}" onclick="openModal(this.src, event)">
|
| 1269 |
{% endif %}
|
| 1270 |
<h3>{{ post['title'] }}</h3>
|
| 1271 |
</a>
|
|
|
|
| 1289 |
document.body.classList.toggle('dark');
|
| 1290 |
localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light');
|
| 1291 |
}
|
| 1292 |
+
function openModal(src, event) {
|
| 1293 |
event.preventDefault();
|
| 1294 |
const modal = document.getElementById('imageModal');
|
| 1295 |
const modalImg = document.getElementById('modalImage');
|
| 1296 |
modal.style.display = 'flex';
|
| 1297 |
modalImg.src = src;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1298 |
}
|
| 1299 |
function closeModal(event) {
|
| 1300 |
if (event.target.tagName !== 'IMG') {
|
|
|
|
| 1385 |
<head>
|
| 1386 |
<meta charset="UTF-8">
|
| 1387 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 1388 |
+
<meta name="keywords" content="interracial porn, bbc porn, qos, queen of spades, big black cock">
|
| 1389 |
<title>Upload Content - Content Hub</title>
|
| 1390 |
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&display=swap" rel="stylesheet">
|
| 1391 |
<style>
|
|
|
|
| 1620 |
<source src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" type="video/mp4">
|
| 1621 |
</video>
|
| 1622 |
{% else %}
|
| 1623 |
+
<img class="post-preview" src="https://huggingface.co/datasets/{{ repo_id }}/resolve/main/{{ post['type'] }}s/{{ post['filename'] }}" alt="{{ post['title'] }}">
|
| 1624 |
{% endif %}
|
| 1625 |
<h2>{{ post['title'] }}</h2>
|
| 1626 |
</a>
|
|
|
|
| 1637 |
{% endif %}
|
| 1638 |
</div>
|
| 1639 |
</div>
|
|
|
|
|
|
|
|
|
|
| 1640 |
<script>
|
| 1641 |
function toggleSidebar() {
|
| 1642 |
document.getElementById('sidebar').classList.toggle('active');
|
|
|
|
| 1645 |
document.body.classList.toggle('dark');
|
| 1646 |
localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light');
|
| 1647 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1648 |
window.onload = () => {
|
| 1649 |
if (localStorage.getItem('theme') === 'dark') document.body.classList.add('dark');
|
| 1650 |
const videos = document.querySelectorAll('.post-preview');
|