@@ -69,7 +69,7 @@ title: Home
69
69
<header>
70
70
<h2>LatePost</h2>
71
71
</header>
72
- <div id="medium -feed"></div>
72
+ <div id="rss -feed"></div>
73
73
<header>
74
74
<h2></h2>
75
75
</header>
@@ -94,10 +94,6 @@ title: Home
94
94
<header>
95
95
<h2>. . .</h2>
96
96
</header>
97
- <header>
98
- <h2>WalkThrough</h2>
99
- </header>
100
- <div id="wordpress-feed"></div>
101
97
</div>
102
98
</section >
103
99
@@ -126,59 +122,57 @@ title: Home
126
122
});
127
123
});
128
124
129
- async function fetchMediumRSS () {
130
- const rssFeedUrl = ' https://medium.com/feed/@bibib' ; // Your Medium RSS feed URL
131
- const rssToJsonUrl = ` https://api.rss2json.com/v1/api.json?rss_url=${ encodeURIComponent (rssFeedUrl)} ` ;
125
+ async function fetchRSSFeeds () {
126
+ const feeds = [
127
+ { url: ' https://medium.com/feed/@bibib' , source: ' Medium' },
128
+ { url: ' https://nbsc7.wordpress.com/feed' , source: ' WordPress' }
129
+ ];
132
130
133
- try {
134
- const response = await fetch (rssToJsonUrl);
135
- if (! response .ok ) {
136
- throw new Error (' Network response was not ok' );
137
- }
138
- const data = await response .json ();
139
- displayFeed (data, ' medium-feed' );
140
- } catch (error) {
141
- console .error (' Error fetching Medium RSS feed:' , error);
142
- const mediumFeedContainer = document .getElementById (' medium-feed' );
143
- if (mediumFeedContainer) {
144
- mediumFeedContainer .innerHTML = ' Failed to load Medium feed.' ;
145
- }
146
- }
147
- }
131
+ let allItems = [];
148
132
149
- async function fetchWordPressRSS () {
150
- const rssFeedUrl = ' https://nbsc7.wordpress.com/feed' ; // Replace with your WordPress RSS feed URL
151
- const rssToJsonUrl = ` https://api.rss2json.com/v1/api.json?rss_url=${ encodeURIComponent (rssFeedUrl)} ` ;
133
+ for (const feed of feeds) {
134
+ const rssToJsonUrl = ` https://api.rss2json.com/v1/api.json?rss_url=${ encodeURIComponent (feed .url )} ` ;
152
135
153
- try {
154
- const response = await fetch (rssToJsonUrl);
155
- if (! response .ok ) {
156
- throw new Error (' Network response was not ok' );
157
- }
158
- const data = await response .json ();
159
- displayFeed (data, ' wordpress-feed' );
160
- } catch (error) {
161
- console .error (' Error fetching WordPress RSS feed:' , error);
162
- const wpFeedContainer = document .getElementById (' wordpress-feed' );
163
- if (wpFeedContainer) {
164
- wpFeedContainer .innerHTML = ' Failed to load WordPress feed.' ;
136
+ try {
137
+ const response = await fetch (rssToJsonUrl);
138
+ if (! response .ok ) {
139
+ throw new Error (` Failed to fetch feed from ${ feed .source } ` );
140
+ }
141
+ const data = await response .json ();
142
+ const items = data .items .map (item => ({
143
+ title: item .title ,
144
+ link: item .link ,
145
+ pubDate: new Date (item .pubDate ),
146
+ source: feed .source
147
+ }));
148
+ allItems = allItems .concat (items);
149
+ } catch (error) {
150
+ console .error (` Error fetching ${ feed .source } feed:` , error);
151
+ const feedContainer = document .getElementById (' rss-feed' );
152
+ if (feedContainer) {
153
+ feedContainer .innerHTML += ` <p >Failed to load ${ feed .source } feed.</p >` ;
154
+ }
165
155
}
166
156
}
157
+
158
+ displayMergedFeed (allItems);
167
159
}
168
160
169
- function displayFeed ( data , containerId ) {
170
- const feedContainer = document .getElementById (containerId );
161
+ function displayMergedFeed ( items ) {
162
+ const feedContainer = document .getElementById (' rss-feed ' );
171
163
if (! feedContainer) {
172
- console .error (' Feed container not found: ' , containerId );
164
+ console .error (' Feed container not found. ' );
173
165
return ;
174
166
}
175
167
176
- const items = data .items ;
177
- if (items && items .length ) {
168
+ // Sort items by date, descending (most recent first)
169
+ items .sort ((a , b ) => b .pubDate - a .pubDate );
170
+
171
+ if (items .length ) {
178
172
items .forEach (item => {
179
173
const feedItem = document .createElement (' div' );
180
174
feedItem .innerHTML = `
181
- <h3 >${ new Date ( item .pubDate ) .toLocaleDateString ()} | <a href =" ${item.link}" target =" _blank" >${ item .title } </a ></h3 >
175
+ <h3 >${ item .pubDate .toLocaleDateString ()} | <a href =" ${item.link}" target =" _blank" >${ item .title } </a > ( ${ item . source } ) </h3 >
182
176
` ;
183
177
feedContainer .appendChild (feedItem);
184
178
});
@@ -187,7 +181,6 @@ title: Home
187
181
}
188
182
}
189
183
190
- fetchMediumRSS ();
191
- fetchWordPressRSS ();
184
+ fetchRSSFeeds ();
192
185
});
193
186
</script >
0 commit comments