From feda51029b725d9ca71524bd7a9413ff58bd10e2 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Fri, 7 Jun 2019 13:37:51 +0200
Subject: [PATCH] Better handling of toots date

---
 src/sources/mastodon.js | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/sources/mastodon.js b/src/sources/mastodon.js
index 1bdb51f..9b7757e 100644
--- a/src/sources/mastodon.js
+++ b/src/sources/mastodon.js
@@ -98,14 +98,20 @@ export default {
     // results.progress = 0
     // results.progressCount
     results.accounts = {}
-    let cont = true
-    while (cont) {
+    let tooOld = 0
+    let maxOld = 5
+    while (tooOld < maxOld) {
       let response = await client.get(url, {params: {limit: 40}})
       response.data.forEach((f) => {
         let date = moment(f.created_at)
+        // ugly hack because we don't have any way to query favorite date, and mastodon
+        // return toots in reverse favorite date order, so favoriting a very old toot
+        // can result in little to no suggestions
         if (date.isBefore(dateLimit)) {
-          cont = false
-          return
+          tooOld += 1
+        } else {
+          // we reset the counter
+          tooOld = 0
         }
         handledFavorites += 1
         results.progressCount += 1
-- 
GitLab