bep40 commited on
Commit
5d90550
·
verified ·
1 Parent(s): 12a645d

Remove static/auto_update.js (not in original commit)

Browse files
Files changed (1) hide show
  1. static/auto_update.js +0 -85
static/auto_update.js DELETED
@@ -1,85 +0,0 @@
1
- // VNEWS Auto-update Frontend - SSE listener for real-time homepage updates
2
- (function(){
3
- let evtSource = null;
4
-
5
- // Connect to SSE endpoint
6
- function connectSSE() {
7
- try {
8
- evtSource = new EventSource('/api/events');
9
- evtSource.onmessage = function(e) {
10
- try {
11
- const data = JSON.parse(e.data);
12
- if (data.type === 'new_post' || data.type === 'new_short') {
13
- console.log('[SSE] Received update:', data.type);
14
- // Reload wall and re-render short AI
15
- fetch('/api/ai_wall').then(r => r.json()).then(j => {
16
- _wallPosts = j.posts || [];
17
- if (typeof renderShortAISlide === 'function') {
18
- renderShortAISlide();
19
- }
20
- // Update wall on homepage
21
- const track = document.getElementById('ai-wall-track');
22
- if (track && _wallPosts.length) {
23
- track.innerHTML = _wallPosts.slice(0,20).map((p,i) => makeWallItem(p,i)).join('');
24
- }
25
- }).catch(() => {});
26
- }
27
- } catch(err) {}
28
- };
29
- evtSource.onerror = function() {
30
- evtSource.close();
31
- setTimeout(connectSSE, 5000); // Reconnect after 5s
32
- };
33
- } catch(err) {
34
- console.log('[SSE] Not supported or error');
35
- }
36
- }
37
-
38
- // Fallback polling (30s) - detects changes even without SSE
39
- let _lastWallLen = 0;
40
- function startPolling() {
41
- setInterval(function(){
42
- if (typeof _wallPosts === 'undefined') return;
43
- fetch('/api/ai_wall').then(r => r.json()).then(j => {
44
- const wall = j.posts || [];
45
- if (wall.length !== _lastWallLen) {
46
- console.log('[POLL] Wall changed:', _lastWallLen, '->', wall.length);
47
- _lastWallLen = wall.length;
48
- _wallPosts = wall;
49
- const track = document.getElementById('ai-wall-track');
50
- if (track && wall.length) {
51
- track.innerHTML = wall.slice(0,20).map((p,i) => makeWallItem(p,i)).join('');
52
- }
53
- if (typeof renderShortAISlide === 'function') {
54
- renderShortAISlide();
55
- }
56
- }
57
- }).catch(() => {});
58
- }, 30000);
59
- }
60
-
61
- // Start when DOM ready
62
- if (document.readyState === 'loading') {
63
- document.addEventListener('DOMContentLoaded', function(){
64
- connectSSE();
65
- startPolling();
66
- });
67
- } else {
68
- connectSSE();
69
- startPolling();
70
- }
71
-
72
- // Export for manual trigger
73
- window.triggerHomepageRefresh = function() {
74
- fetch('/api/ai_wall').then(r => r.json()).then(j => {
75
- _wallPosts = j.posts || [];
76
- if (typeof _renderWallIn === 'function') {
77
- const afterEl = document.getElementById('home-after-wc');
78
- if (afterEl) _renderWallIn(afterEl);
79
- }
80
- if (typeof renderShortAISlide === 'function') {
81
- renderShortAISlide();
82
- }
83
- });
84
- };
85
- })();