From c8cb630532c7df72c23141020fd2177c09b1c4d1 Mon Sep 17 00:00:00 2001 From: ccd0 Date: Tue, 12 Aug 2014 22:48:56 -0700 Subject: [PATCH] indicate thread death when threads become archived --- src/General/Main.coffee | 2 ++ src/Monitoring/ThreadUpdater.coffee | 29 ++++++++++++++++++++--------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/General/Main.coffee b/src/General/Main.coffee index 3ada33895..887515ca2 100755 --- a/src/General/Main.coffee +++ b/src/General/Main.coffee @@ -159,6 +159,8 @@ Main = new Notice 'warning', 'Cookies need to be enabled on 4chan for <%= meta.name %> to operate properly.', 30 initThread: -> + g.DEAD = !!$('.closed')?.textContent.match(/Thread archived/) + if board = $ '.board' threads = [] posts = [] diff --git a/src/Monitoring/ThreadUpdater.coffee b/src/Monitoring/ThreadUpdater.coffee index e75ab2864..456f0c184 100755 --- a/src/Monitoring/ThreadUpdater.coffee +++ b/src/Monitoring/ThreadUpdater.coffee @@ -74,7 +74,10 @@ ThreadUpdater = $.on d, 'QRPostSuccessful', ThreadUpdater.cb.checkpost $.on d, 'visibilitychange', ThreadUpdater.cb.visibility - ThreadUpdater.cb.online() + if g.DEAD + ThreadUpdater.set 'status', 'Archived', 'warning' + else + ThreadUpdater.cb.online() ### http://freesound.org/people/pierrecartoons1979/sounds/90112/ @@ -84,6 +87,7 @@ ThreadUpdater = cb: online: -> + return if g.DEAD if ThreadUpdater.online = navigator.onLine ThreadUpdater.outdateCount = 0 ThreadUpdater.setInterval() @@ -127,18 +131,17 @@ ThreadUpdater = {req} = ThreadUpdater switch req.status when 200 - g.DEAD = false + g.DEAD = !!+req.response.posts[0].archived ThreadUpdater.parse req.response.posts - ThreadUpdater.setInterval() + if g.DEAD + ThreadUpdater.set 'status', 'Archived', 'warning' + ThreadUpdater.kill() + else + ThreadUpdater.setInterval() when 404 g.DEAD = true - ThreadUpdater.set 'timer', null ThreadUpdater.set 'status', '404', 'warning' - clearTimeout ThreadUpdater.timeoutID - ThreadUpdater.thread.kill() - $.event 'ThreadUpdate', - 404: true - threadID: ThreadUpdater.thread.fullID + ThreadUpdater.kill() else ThreadUpdater.outdateCount++ ThreadUpdater.setInterval() @@ -151,6 +154,14 @@ ThreadUpdater = if ThreadUpdater.postID ThreadUpdater.cb.checkpost() + kill: -> + ThreadUpdater.set 'timer', null + clearTimeout ThreadUpdater.timeoutID + ThreadUpdater.thread.kill() + $.event 'ThreadUpdate', + 404: true + threadID: ThreadUpdater.thread.fullID + setInterval: -> i = ThreadUpdater.interval + 1