From d49fbd3b0b4c0fb1c60cd892006a11277133a819 Mon Sep 17 00:00:00 2001 From: ccd0 Date: Wed, 5 Dec 2018 10:26:32 -0800 Subject: [PATCH] Recheck site properties every load. --- src/site/SW.tinyboard.coffee | 2 +- src/site/Site.coffee | 29 ++++++++++++++++++----------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/site/SW.tinyboard.coffee b/src/site/SW.tinyboard.coffee index 97581f63a..6a032cfad 100644 --- a/src/site/SW.tinyboard.coffee +++ b/src/site/SW.tinyboard.coffee @@ -44,7 +44,7 @@ SW.tinyboard = detect: -> for script in $$ 'script:not([src])', d.head - return true if /\bvar configRoot=".*?"/.test(script.textContent) + return {} if /\bvar configRoot=".*?"/.test(script.textContent) false urls: diff --git a/src/site/Site.coffee b/src/site/Site.coffee index a95b470d0..b33658864 100644 --- a/src/site/Site.coffee +++ b/src/site/Site.coffee @@ -5,19 +5,26 @@ Site = hostname = hostname.replace(/^[^.]*\.?/, '') hostname = '4chan.org' if hostname is '4channel.org' if hostname and Conf['siteProperties'][hostname].software of SW - @set hostname, Conf['siteProperties'][hostname] + @set hostname cb() - else - $.onExists doc, 'body', => - for software of SW - if SW[software].detect?() - properties = {software} - @set location.hostname.replace(/^www\./, ''), properties - Conf['siteProperties'][@hostname] = properties - $.set 'siteProperties', Conf['siteProperties'] - cb() + $.onExists doc, 'body', => + for software of SW when (changes = SW[software].detect?()) + changes.software = software + hostname = location.hostname.replace(/^www\./, '') + properties = (Conf['siteProperties'][hostname] or= {}) + changed = 0 + for key of changes when properties[key] isnt changes[key] + properties[key] = changes[key] + changed++ + if changed + $.set 'siteProperties', Conf['siteProperties'] + unless @hostname + @set hostname + cb() return + return - set: (@hostname, @properties) -> + set: (@hostname) -> + @properties = Conf['siteProperties'][@hostname] @software = @properties.software $.extend @, SW[@software]