Update script.js
- Dynamic hashtags vio URL
This commit is contained in:
parent
638c216eb4
commit
2b8406316f
1 changed files with 29 additions and 3 deletions
30
script.js
30
script.js
|
@ -26,16 +26,42 @@ const timeAgo = function(date) {
|
||||||
return Math.floor(seconds) + " seconds ago";
|
return Math.floor(seconds) + " seconds ago";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Function to get a parameter by name from URL
|
||||||
|
function getUrlParameter(name) {
|
||||||
|
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
|
||||||
|
var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
|
||||||
|
var results = regex.exec(location.search);
|
||||||
|
return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get hashtags from URL parameters
|
||||||
|
let hashtags = getUrlParameter('hashtags');
|
||||||
|
|
||||||
|
// Split the hashtags string into an array
|
||||||
|
let hashtagsArray = hashtags.split(',');
|
||||||
|
|
||||||
|
|
||||||
// Function to fetch posts for a given hashtag
|
// Function to fetch posts for a given hashtag
|
||||||
const getPosts = function(hashtag) {
|
const getPosts = function(hashtag) {
|
||||||
return $.get(`https://openbiblio.social/api/v1/timelines/tag/${hashtag}`);
|
return $.get(`https://openbiblio.social/api/v1/timelines/tag/${hashtag}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Function to fetch and display posts
|
// Function to fetch and display posts
|
||||||
const fetchAndDisplayPosts = function() {
|
const fetchAndDisplayPosts = function() {
|
||||||
// Fetch posts for each hashtag
|
// Fetch posts for each hashtag
|
||||||
$.when(getPosts('bibliocon23'), getPosts('111bibliocon'), getPosts('bibliocon')).then(function(bibliocon23Posts, bibliocon111Posts, biblioconPosts) {
|
$.when(...hashtagsArray.map(hashtag => getPosts(hashtag))).then(function(...hashtagPosts) {
|
||||||
let allPosts = bibliocon23Posts[0].concat(bibliocon111Posts[0], biblioconPosts[0]);
|
let allPosts;
|
||||||
|
|
||||||
|
// Check if there are multiple hashtags or just one
|
||||||
|
if (hashtagsArray.length > 1) {
|
||||||
|
// If there are multiple hashtags, `hashtagPosts` is an array of arrays
|
||||||
|
// We use Array.prototype.flat() to combine them into one array
|
||||||
|
allPosts = hashtagPosts.map(postData => postData[0]).flat();
|
||||||
|
} else {
|
||||||
|
// If there's only one hashtag, `hashtagPosts` is a single array
|
||||||
|
allPosts = hashtagPosts[0];
|
||||||
|
}
|
||||||
|
|
||||||
// Sort the posts by date/time
|
// Sort the posts by date/time
|
||||||
allPosts.sort((a, b) => new Date(a.created_at) - new Date(b.created_at));
|
allPosts.sort((a, b) => new Date(a.created_at) - new Date(b.created_at));
|
||||||
|
|
Loading…
Reference in a new issue