From db73a5f293dd646485bc73ba355a18a6e7ce535b Mon Sep 17 00:00:00 2001 From: ccd0 Date: Mon, 1 Sep 2014 15:08:02 -0700 Subject: [PATCH] work around false 404s from 4chan --- src/Monitoring/ThreadUpdater.coffee | 37 +++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/src/Monitoring/ThreadUpdater.coffee b/src/Monitoring/ThreadUpdater.coffee index 8e02ce74a..17c124f18 100755 --- a/src/Monitoring/ThreadUpdater.coffee +++ b/src/Monitoring/ThreadUpdater.coffee @@ -139,17 +139,25 @@ ThreadUpdater = else ThreadUpdater.setInterval() when 404 - g.DEAD = true - ThreadUpdater.set 'status', '404', 'warning' - ThreadUpdater.kill() + # XXX workaround for 4chan sending false 404s + $.ajax "//a.4cdn.org/#{ThreadUpdater.thread.board}/catalog.json", onloadend: -> + if @status is 200 + confirmed = true + for page in @response + for thread in page.threads + if thread.no is ThreadUpdater.thread.ID + confirmed = false + break + else + confirmed = false + if confirmed + g.DEAD = true + ThreadUpdater.set 'status', '404', 'warning' + ThreadUpdater.kill() + else + ThreadUpdater.error req else - ThreadUpdater.outdateCount++ - ThreadUpdater.setInterval() - [text, klass] = if req.status is 304 - [null, null] - else - ["#{req.statusText} (#{req.status})", 'warning'] - ThreadUpdater.set 'status', text, klass + ThreadUpdater.error req if ThreadUpdater.postID ThreadUpdater.cb.checkpost() @@ -162,6 +170,15 @@ ThreadUpdater = 404: true threadID: ThreadUpdater.thread.fullID + error: (req) -> + ThreadUpdater.outdateCount++ + ThreadUpdater.setInterval() + [text, klass] = if req.status is 304 + [null, null] + else + ["#{req.statusText} (#{req.status})", 'warning'] + ThreadUpdater.set 'status', text, klass + setInterval: -> i = ThreadUpdater.interval + 1