From 2fb01f85b6dbc27d02168294fe6ecef3ec2e17dd Mon Sep 17 00:00:00 2001 From: ccd0 Date: Sat, 8 Oct 2016 22:59:13 -0700 Subject: [PATCH] Begin work on supporting other imageboards. --- Makefile | 2 +- src/config/Config.coffee | 4 ++++ src/main/Main.coffee | 3 +++ src/site/SW.js | 1 + src/site/SW.tinyboard.coffee | 1 + src/site/SW.yotsuba.coffee | 1 + src/site/Site.coffee | 13 +++++++++++++ 7 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/site/SW.js create mode 100644 src/site/SW.tinyboard.coffee create mode 100644 src/site/SW.yotsuba.coffee create mode 100644 src/site/Site.coffee diff --git a/Makefile b/Makefile index b8fbfc907..ef29cf83a 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ $(eval $(shell node tools/pkgvars.js)) version = $(shell node -p "JSON.parse(require('fs').readFileSync('version.json')).version") source_directories := \ - globals config css platform classes \ + globals config css platform classes site \ Archive Filtering General Images Linkification \ Menu Miscellaneous Monitoring Posting Quotelinks \ main diff --git a/src/config/Config.coffee b/src/config/Config.coffee index 3a38e5985..9622a3245 100644 --- a/src/config/Config.coffee +++ b/src/config/Config.coffee @@ -1049,3 +1049,7 @@ Config = 'Max Replies': 1000 'Autohiding Scrollbar': false + + siteSoftware: """ + 4chan.org yotsuba + """ diff --git a/src/main/Main.coffee b/src/main/Main.coffee index d2af67dd9..101333950 100644 --- a/src/main/Main.coffee +++ b/src/main/Main.coffee @@ -100,6 +100,9 @@ Main = new Notice 'info', el, 15 initFeatures: -> + Site.init() + return unless Site.software + {hostname, search} = location pathname = location.pathname.split /\/+/ g.BOARD = new Board pathname[1] unless hostname is 'www.4chan.org' diff --git a/src/site/SW.js b/src/site/SW.js new file mode 100644 index 000000000..120a971ba --- /dev/null +++ b/src/site/SW.js @@ -0,0 +1 @@ +SW = {}; diff --git a/src/site/SW.tinyboard.coffee b/src/site/SW.tinyboard.coffee new file mode 100644 index 000000000..006b1fd9e --- /dev/null +++ b/src/site/SW.tinyboard.coffee @@ -0,0 +1 @@ +SW.tinyboard = {} diff --git a/src/site/SW.yotsuba.coffee b/src/site/SW.yotsuba.coffee new file mode 100644 index 000000000..c1a6c6ae6 --- /dev/null +++ b/src/site/SW.yotsuba.coffee @@ -0,0 +1 @@ +SW.yotsuba = {} diff --git a/src/site/Site.coffee b/src/site/Site.coffee new file mode 100644 index 000000000..5cc652656 --- /dev/null +++ b/src/site/Site.coffee @@ -0,0 +1,13 @@ +Site = + init: -> + swDict = {} + for line in Conf['siteSoftware'].split('\n') when line[0] isnt '#' + [hostname, software] = line.split(' ') + swDict[hostname] = software if software of SW + {hostname} = location + while hostname and hostname not of swDict + hostname = hostname.replace(/^[^.]*\.?/, '') + return unless hostname + @hostname = hostname + @software = swDict[hostname] + $.extend @, SW[@software]