Update script.js
Add some form validation
This commit is contained in:
parent
f19026eb22
commit
d56ca07e1c
1 changed files with 14 additions and 27 deletions
41
script.js
41
script.js
|
@ -61,11 +61,10 @@ let server = getUrlParameter('server') || 'https://mastodon.social';
|
||||||
|
|
||||||
// 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(`${server}/api/v1/timelines/tag/${hashtag}`);
|
return $.get(`${server}/api/v1/timelines/tag/${hashtag}?limit=20`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Function to fetch and display posts
|
// Function to fetch and display posts
|
||||||
const fetchAndDisplayPosts = function() {
|
const fetchAndDisplayPosts = function() {
|
||||||
|
|
||||||
|
@ -128,6 +127,11 @@ $(document).ready(function() {
|
||||||
percentPosition: true
|
percentPosition: true
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Re-arrange Masonry layout every 30 seconds
|
||||||
|
setInterval(function() {
|
||||||
|
$('.masonry-grid').masonry('layout');
|
||||||
|
}, 10000);
|
||||||
|
|
||||||
// Event listener for clicking on the hashtags
|
// Event listener for clicking on the hashtags
|
||||||
$('#hashtag-display').on('click', function() {
|
$('#hashtag-display').on('click', function() {
|
||||||
// Hide the main app content
|
// Hide the main app content
|
||||||
|
@ -161,29 +165,6 @@ $(document).ready(function() {
|
||||||
// Update the navbar info with the provided hashtags
|
// Update the navbar info with the provided hashtags
|
||||||
$('#hashtag-display').text(`${hashtagsArray.map(hashtag => `#${hashtag}`).join(' ')}`);
|
$('#hashtag-display').text(`${hashtagsArray.map(hashtag => `#${hashtag}`).join(' ')}`);
|
||||||
|
|
||||||
// Handle the form submit event
|
|
||||||
$('#hashtag-form').on('submit', function(e) {
|
|
||||||
// Prevent the default form submission
|
|
||||||
e.preventDefault();
|
|
||||||
|
|
||||||
// Get the entered hashtags
|
|
||||||
let hashtags = [
|
|
||||||
$('#hashtag1').val(),
|
|
||||||
$('#hashtag2').val(),
|
|
||||||
$('#hashtag3').val()
|
|
||||||
];
|
|
||||||
|
|
||||||
// Filter out any empty strings
|
|
||||||
hashtags = hashtags.filter(function(hashtag) {
|
|
||||||
return hashtag !== '';
|
|
||||||
});
|
|
||||||
|
|
||||||
// Create a new URL with the entered hashtags
|
|
||||||
let newUrl = window.location.origin + window.location.pathname + `?hashtags=${hashtags.join(',')}`;
|
|
||||||
|
|
||||||
// Reload the page with the new URL
|
|
||||||
window.location.href = newUrl;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Handle the form submit event
|
// Handle the form submit event
|
||||||
$('#hashtag-form').on('submit', function(e) {
|
$('#hashtag-form').on('submit', function(e) {
|
||||||
|
@ -197,14 +178,20 @@ $(document).ready(function() {
|
||||||
$('#hashtag3').val()
|
$('#hashtag3').val()
|
||||||
];
|
];
|
||||||
|
|
||||||
// Filter out any empty strings
|
// Filter out any empty strings and validate hashtag format
|
||||||
hashtags = hashtags.filter(function(hashtag) {
|
hashtags = hashtags.filter(function(hashtag) {
|
||||||
return hashtag !== '';
|
return hashtag !== '' && /^[\w]+$/.test(hashtag);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Get the entered server URL
|
// Get the entered server URL
|
||||||
let serverUrl = $('#serverUrl').val();
|
let serverUrl = $('#serverUrl').val();
|
||||||
|
|
||||||
|
// Validate server URL format
|
||||||
|
if (!/^https:\/\/[\w.\-]+\/?$/.test(serverUrl)) {
|
||||||
|
alert('Invalid server URL.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Create a new URL with the entered hashtags and server URL
|
// Create a new URL with the entered hashtags and server URL
|
||||||
let newUrl = window.location.origin + window.location.pathname + `?hashtags=${hashtags.join(',')}&server=${serverUrl}`;
|
let newUrl = window.location.origin + window.location.pathname + `?hashtags=${hashtags.join(',')}&server=${serverUrl}`;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue