Bläddra i källkod

fix dead loop if no media ever posted

Mike L 3 år sedan
förälder
incheckning
ebca27736f
2 ändrade filer med 12 tillägg och 3 borttagningar
  1. 4 1
      dist/twitter.js
  2. 8 2
      src/twitter.ts

+ 4 - 1
dist/twitter.js

@@ -271,15 +271,18 @@ class default_1 {
             promise.then((tweets) => {
                 logger.debug(`api returned ${JSON.stringify(tweets)} for feed ${currentFeed}`);
                 const currentThread = lock.threads[currentFeed];
+                const setOffset = (offset) => currentThread.offset = offset;
                 const updateDate = () => currentThread.updatedAt = new Date().toString();
                 if (!tweets || tweets.length === 0) {
+                    if (currentThread.offset < -1) {
+                        setOffset(utils_1.BigNumOps.plus('1', currentThread.offset));
+                    }
                     updateDate();
                     return;
                 }
                 const topOfFeed = tweets[0].id_str;
                 logger.info(`current offset: ${currentThread.offset}, current top of feed: ${topOfFeed}`);
                 const bottomOfFeed = tweets[tweets.length - 1].id_str;
-                const setOffset = (offset) => currentThread.offset = offset;
                 const updateOffset = () => setOffset(topOfFeed);
                 tweets = tweets.filter(twi => !twi.retweeted_status && twi.extended_entities);
                 logger.info(`found ${tweets.length} tweets with extended entities`);

+ 8 - 2
src/twitter.ts

@@ -415,13 +415,19 @@ export default class {
       logger.debug(`api returned ${JSON.stringify(tweets)} for feed ${currentFeed}`);
       const currentThread = lock.threads[currentFeed];
 
+      const setOffset = (offset: string) => currentThread.offset = offset;
       const updateDate = () => currentThread.updatedAt = new Date().toString();
-      if (!tweets || tweets.length === 0) { updateDate(); return; }
+      if (!tweets || tweets.length === 0) {
+        if (currentThread.offset as unknown as number < -1) {
+          setOffset(BigNumOps.plus('1', currentThread.offset));
+        }
+        updateDate();
+        return;
+      }
 
       const topOfFeed = tweets[0].id_str;
       logger.info(`current offset: ${currentThread.offset}, current top of feed: ${topOfFeed}`);
       const bottomOfFeed = tweets[tweets.length - 1].id_str;
-      const setOffset = (offset: string) => currentThread.offset = offset;
       const updateOffset = () => setOffset(topOfFeed);
       tweets = tweets.filter(twi => !twi.retweeted_status && twi.extended_entities);
       logger.info(`found ${tweets.length} tweets with extended entities`);