From 238892360e5b352b2d50538fb134584b5dc39cec Mon Sep 17 00:00:00 2001 From: idotj Date: Wed, 27 Apr 2022 14:57:44 +0200 Subject: [PATCH] Add reblog txt condition --- src/mastodon-timeline.js | 159 ++++++++++++++++++++------------------- 1 file changed, 82 insertions(+), 77 deletions(-) diff --git a/src/mastodon-timeline.js b/src/mastodon-timeline.js index 2e28a2b..a811b19 100644 --- a/src/mastodon-timeline.js +++ b/src/mastodon-timeline.js @@ -34,9 +34,9 @@ let MastodonApi = function (params_) { this.mtIdContainer.addEventListener('click', function (event) { let urlToot = event.target.closest('.mt-toot').dataset.location; // Open Toot in new page avoiding any other natural link - if(event.target.localName != 'a' && event.target.localName != 'span' && urlToot){ + if (event.target.localName != 'a' && event.target.localName != 'span' && urlToot) { window.open(urlToot, '_blank'); - } + } }); } @@ -47,36 +47,36 @@ MastodonApi.prototype.getToots = function () { // Get request fetch(this.INSTANCE_URI + '/api/v1/accounts/' + this.USER_ID + '/statuses?limit=' + this.TOOTS_LIMIT, { - method: 'get', - }) - .then(response => response.json()) - .then(jsonData => { - // console.log('jsonData: ', jsonData); - - // Clear the loading message - this.mtBodyContainer.innerHTML = ''; - - // Add toots - for (let i in jsonData) { - if (jsonData[i].visibility == 'public') { - // List only public toots - appendToot.call(mapi, jsonData[i]); - } - } - - // Add target="_blank" to all hashtags - let allHashtags = document.querySelectorAll("#mt-timeline .hashtag"); - for(let j=0; j' + mapi.BTN_SEE_MORE + ''); + method: 'get', }) - .catch(err => { - this.mtBodyContainer.innerHTML = '
✖️
Request Failed:
' + err + '
'; - }); + .then(response => response.json()) + .then(jsonData => { + console.log('jsonData: ', jsonData); + + // Clear the loading message + this.mtBodyContainer.innerHTML = ''; + + // Add toots + for (let i in jsonData) { + if (jsonData[i].visibility == 'public') { + // List only public toots + appendToot.call(mapi, jsonData[i]); + } + } + + // Add target="_blank" to all hashtags + let allHashtags = document.querySelectorAll("#mt-timeline .hashtag"); + for (let j = 0; j < allHashtags.length; j++) { + allHashtags[j].target = "_blank"; + allHashtags[j].rel = "tag noopener noreferrer"; + } + + // Insert button to visit account page, after last toot + this.mtBodyContainer.insertAdjacentHTML('beforeend', ''); + }) + .catch(err => { + this.mtBodyContainer.innerHTML = '
✖️
Request Failed:
' + err + '
'; + }); // Inner function to add each toot content in container let appendToot = function (status_) { @@ -90,23 +90,23 @@ MastodonApi.prototype.getToots = function () { // Boosted avatar avatar = '' - + '
' - + '
' - + '' - + status_.account.username + ' avatar' - + '' + + '
' + + '
' + + '' + + status_.account.username + ' avatar' + + '' + '
'; // User name and url - user = + user = ''; // Date - date = this.formatDate(status_.reblog.created_at); + date = this.formatDate(status_.reblog.created_at); } else { // STANDARD toot // Toot url @@ -115,49 +115,54 @@ MastodonApi.prototype.getToots = function () { // Avatar avatar = '' - + '' - + status_.account.username + ' avatar' - + '' + + '' + + status_.account.username + ' avatar' + + '' + ''; // User name and url user = ''; // Date - date = this.formatDate(status_.created_at); + date = this.formatDate(status_.created_at); } // Main content - if(status_.spoiler_text != '') { - content = - '
' + if (status_.spoiler_text != '') { + content = + '
' + status_.spoiler_text + ' [Show more...]' - + '
'; + + '
'; + } else if (status_.reblog && status_.reblog.content != '') { + content = + '
' + + status_.reblog.content + + '
'; } else { - content = - '
' + content = + '
' + status_.content - + '
'; + + '
'; } // Media attachments let media = ''; - if (status_.media_attachments.length > 0 ) { + if (status_.media_attachments.length > 0) { for (let picid in status_.media_attachments) { media = this.replaceMedias(status_.media_attachments[picid], status_.sensitive); } } - if (status_.reblog && status_.reblog.media_attachments.length > 0 ) { + if (status_.reblog && status_.reblog.media_attachments.length > 0) { for (let picid in status_.reblog.media_attachments) { media = this.replaceMedias(status_.reblog.media_attachments[picid], status_.sensitive); } - } + } // Poll let poll = ''; @@ -166,34 +171,34 @@ MastodonApi.prototype.getToots = function () { for (let i in status_.poll.options) { pollOption += '
  • ' - + status_.poll.options[i].title + + status_.poll.options[i].title + '
  • '; } - poll = + poll = '
    ' - + '
      ' - + pollOption - + '
    ' - +'
    '; + + '' + + ''; } // Date let timestamp = ''; // Add all to main toot container let toot = '
    ' - + avatar - + user - + content - + media - + poll - + timestamp + + avatar + + user + + content + + media + + poll + + timestamp + '
    '; this.mtBodyContainer.insertAdjacentHTML('beforeend', toot); @@ -204,10 +209,10 @@ MastodonApi.prototype.getToots = function () { // Place media MastodonApi.prototype.replaceMedias = function (media_, spoiler_) { let spoiler = spoiler_ || false; - let pic = - '
    ' + let pic = + '
    ' + '' - + '
    '; + + '
    '; return pic; }; @@ -232,7 +237,7 @@ function removeSpinner(element) { const spinnerCSS = 'loading-spinner'; // Find closest parent container (1st, 2nd or 3rd level) let spinnerContainer = element.closest('.' + spinnerCSS); - if(spinnerContainer){ + if (spinnerContainer) { spinnerContainer.classList.remove(spinnerCSS); } }