Release 4chan X v1.10.8.0.

This commit is contained in:
ccd0 2015-04-05 15:27:00 -07:00
parent 9a27b74127
commit 936ea58335
13 changed files with 122 additions and 36 deletions

View File

@ -2,6 +2,14 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor
The links to individual versions below are to copies of the script with the update URL removed. If you want automatic updates, install the script from the links on the [main page](https://github.com/ccd0/4chan-x). The links to individual versions below are to copies of the script with the update URL removed. If you want automatic updates, install the script from the links on the [main page](https://github.com/ccd0/4chan-x).
### v1.10.8
**v1.10.8.0** *(2015-04-05)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.8.0/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.8.0/builds/4chan-X-noupdate.crx "Chromium version")]
- Based on v1.10.7.4.
- Make the thread watcher remember whether it was closed or open.
- Remove the close button from the thread watcher when `Toggleable Thread Watcher` is disabled.
- Add an API for getting and setting the contents of the selected file in the Quick Reply (`QRGetFile`, `QRFile`, and `QRSetFile` events).
### v1.10.7 ### v1.10.7
**v1.10.7.4** *(2015-04-05)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.7.4/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.7.4/builds/4chan-X-noupdate.crx "Chromium version")] **v1.10.7.4** *(2015-04-05)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.7.4/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.7.4/builds/4chan-X-noupdate.crx "Chromium version")]

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X beta // @name 4chan X beta
// @version 1.10.7.4 // @version 1.10.8.0
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript // Generated by CoffeeScript
// ==UserScript== // ==UserScript==
// @name 4chan X beta // @name 4chan X beta
// @version 1.10.7.4 // @version 1.10.8.0
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -278,6 +278,7 @@
'Auto Prune': [false, 'Automatically remove dead threads.'], 'Auto Prune': [false, 'Automatically remove dead threads.'],
'Show Unread Count': [true, 'Show number of unread posts in watched threads.'] 'Show Unread Count': [true, 'Show number of unread posts in watched threads.']
}, },
'Thread Watcher Hidden': true,
filter: { filter: {
name: "# Filter any namefags:\n#/^(?!Anonymous$)/", name: "# Filter any namefags:\n#/^(?!Anonymous$)/",
uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/", uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/",
@ -395,7 +396,7 @@
doc = d.documentElement; doc = d.documentElement;
g = { g = {
VERSION: '1.10.7.4', VERSION: '1.10.8.0',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -6760,6 +6761,8 @@
$.prepend($('.navLinksBot'), linkBot); $.prepend($('.navLinksBot'), linkBot);
} }
$.before($.id('togglePostFormLink'), link); $.before($.id('togglePostFormLink'), link);
$.on(d, 'QRGetFile', QR.getFile);
$.on(d, 'QRSetFile', QR.setFile);
$.on(d, 'paste', QR.paste); $.on(d, 'paste', QR.paste);
$.on(d, 'dragover', QR.dragOver); $.on(d, 'dragover', QR.dragOver);
$.on(d, 'drop', QR.dropFile); $.on(d, 'drop', QR.dropFile);
@ -7045,6 +7048,19 @@
counter.hidden = count < 1000; counter.hidden = count < 1000;
return (count > 1500 ? $.addClass : $.rmClass)(counter, 'warning'); return (count > 1500 ? $.addClass : $.rmClass)(counter, 'warning');
}, },
getFile: function() {
var ref;
return $.event('QRFile', (ref = QR.selected) != null ? ref.file : void 0);
},
setFile: function(e) {
var file, name, ref;
ref = e.detail, file = ref.file, name = ref.name;
if (name != null) {
file.name = name;
}
QR.open();
return QR.handleFiles([file]);
},
drag: function(e) { drag: function(e) {
var toggle; var toggle;
toggle = e.type === 'dragstart' ? $.off : $.on; toggle = e.type === 'dragstart' ? $.off : $.on;
@ -12394,11 +12410,17 @@
this.status = $('#watcher-status', this.dialog); this.status = $('#watcher-status', this.dialog);
this.list = this.dialog.lastElementChild; this.list = this.dialog.lastElementChild;
this.refreshButton = $('.refresh', this.dialog); this.refreshButton = $('.refresh', this.dialog);
this.closeButon = $('.move > .close', this.dialog);
this.unreaddb = Unread.db || new DataBoard('lastReadPosts'); this.unreaddb = Unread.db || new DataBoard('lastReadPosts');
this.closeButon.hidden = !Conf['Toggleable Thread Watcher'];
if (Conf['Toggleable Thread Watcher']) {
this.setHidden(Conf['Thread Watcher Hidden']);
$.sync('Thread Watcher Hidden', this.setHidden);
}
$.on(d, 'QRPostSuccessful', this.cb.post); $.on(d, 'QRPostSuccessful', this.cb.post);
$.on(sc, 'click', this.toggleWatcher); $.on(sc, 'click', this.toggleHidden);
$.on(this.refreshButton, 'click', this.fetchAllStatus); $.on(this.refreshButton, 'click', this.fetchAllStatus);
$.on($('.move > .close', this.dialog), 'click', this.toggleWatcher); $.on(this.closeButon, 'click', this.toggleHidden);
$.on(d, '4chanXInitFinished', this.ready); $.on(d, '4chanXInitFinished', this.ready);
switch (g.VIEW) { switch (g.VIEW) {
case 'index': case 'index':
@ -12490,9 +12512,6 @@
} }
ThreadWatcher.refresh(); ThreadWatcher.refresh();
$.add(d.body, ThreadWatcher.dialog); $.add(d.body, ThreadWatcher.dialog);
if (Conf['Toggleable Thread Watcher']) {
ThreadWatcher.dialog.hidden = true;
}
if (!Conf['Auto Watch']) { if (!Conf['Auto Watch']) {
return; return;
} }
@ -12506,9 +12525,16 @@
return $["delete"]('AutoWatch'); return $["delete"]('AutoWatch');
}); });
}, },
toggleWatcher: function() { setHidden: function(hide) {
$.toggleClass(ThreadWatcher.shortcut, 'disabled'); ThreadWatcher.shortcut.classList.toggle('disabled', hide);
return ThreadWatcher.dialog.hidden = !ThreadWatcher.dialog.hidden; ThreadWatcher.dialog.hidden = hide;
return Conf['Thread Watcher Hidden'] = hide;
},
toggleHidden: function() {
var hide;
hide = !ThreadWatcher.dialog.hidden;
ThreadWatcher.setHidden(hide);
return $.set('Thread Watcher Hidden', hide);
}, },
cb: { cb: {
openAll: function() { openAll: function() {

Binary file not shown.

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript // Generated by CoffeeScript
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.10.7.4 // @version 1.10.8.0
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -277,6 +277,7 @@
'Auto Prune': [false, 'Automatically remove dead threads.'], 'Auto Prune': [false, 'Automatically remove dead threads.'],
'Show Unread Count': [true, 'Show number of unread posts in watched threads.'] 'Show Unread Count': [true, 'Show number of unread posts in watched threads.']
}, },
'Thread Watcher Hidden': true,
filter: { filter: {
name: "# Filter any namefags:\n#/^(?!Anonymous$)/", name: "# Filter any namefags:\n#/^(?!Anonymous$)/",
uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/", uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/",
@ -394,7 +395,7 @@
doc = d.documentElement; doc = d.documentElement;
g = { g = {
VERSION: '1.10.7.4', VERSION: '1.10.8.0',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -6759,6 +6760,8 @@
$.prepend($('.navLinksBot'), linkBot); $.prepend($('.navLinksBot'), linkBot);
} }
$.before($.id('togglePostFormLink'), link); $.before($.id('togglePostFormLink'), link);
$.on(d, 'QRGetFile', QR.getFile);
$.on(d, 'QRSetFile', QR.setFile);
$.on(d, 'paste', QR.paste); $.on(d, 'paste', QR.paste);
$.on(d, 'dragover', QR.dragOver); $.on(d, 'dragover', QR.dragOver);
$.on(d, 'drop', QR.dropFile); $.on(d, 'drop', QR.dropFile);
@ -7044,6 +7047,19 @@
counter.hidden = count < 1000; counter.hidden = count < 1000;
return (count > 1500 ? $.addClass : $.rmClass)(counter, 'warning'); return (count > 1500 ? $.addClass : $.rmClass)(counter, 'warning');
}, },
getFile: function() {
var ref;
return $.event('QRFile', (ref = QR.selected) != null ? ref.file : void 0);
},
setFile: function(e) {
var file, name, ref;
ref = e.detail, file = ref.file, name = ref.name;
if (name != null) {
file.name = name;
}
QR.open();
return QR.handleFiles([file]);
},
drag: function(e) { drag: function(e) {
var toggle; var toggle;
toggle = e.type === 'dragstart' ? $.off : $.on; toggle = e.type === 'dragstart' ? $.off : $.on;
@ -12393,11 +12409,17 @@
this.status = $('#watcher-status', this.dialog); this.status = $('#watcher-status', this.dialog);
this.list = this.dialog.lastElementChild; this.list = this.dialog.lastElementChild;
this.refreshButton = $('.refresh', this.dialog); this.refreshButton = $('.refresh', this.dialog);
this.closeButon = $('.move > .close', this.dialog);
this.unreaddb = Unread.db || new DataBoard('lastReadPosts'); this.unreaddb = Unread.db || new DataBoard('lastReadPosts');
this.closeButon.hidden = !Conf['Toggleable Thread Watcher'];
if (Conf['Toggleable Thread Watcher']) {
this.setHidden(Conf['Thread Watcher Hidden']);
$.sync('Thread Watcher Hidden', this.setHidden);
}
$.on(d, 'QRPostSuccessful', this.cb.post); $.on(d, 'QRPostSuccessful', this.cb.post);
$.on(sc, 'click', this.toggleWatcher); $.on(sc, 'click', this.toggleHidden);
$.on(this.refreshButton, 'click', this.fetchAllStatus); $.on(this.refreshButton, 'click', this.fetchAllStatus);
$.on($('.move > .close', this.dialog), 'click', this.toggleWatcher); $.on(this.closeButon, 'click', this.toggleHidden);
$.on(d, '4chanXInitFinished', this.ready); $.on(d, '4chanXInitFinished', this.ready);
switch (g.VIEW) { switch (g.VIEW) {
case 'index': case 'index':
@ -12489,9 +12511,6 @@
} }
ThreadWatcher.refresh(); ThreadWatcher.refresh();
$.add(d.body, ThreadWatcher.dialog); $.add(d.body, ThreadWatcher.dialog);
if (Conf['Toggleable Thread Watcher']) {
ThreadWatcher.dialog.hidden = true;
}
if (!Conf['Auto Watch']) { if (!Conf['Auto Watch']) {
return; return;
} }
@ -12505,9 +12524,16 @@
return $["delete"]('AutoWatch'); return $["delete"]('AutoWatch');
}); });
}, },
toggleWatcher: function() { setHidden: function(hide) {
$.toggleClass(ThreadWatcher.shortcut, 'disabled'); ThreadWatcher.shortcut.classList.toggle('disabled', hide);
return ThreadWatcher.dialog.hidden = !ThreadWatcher.dialog.hidden; ThreadWatcher.dialog.hidden = hide;
return Conf['Thread Watcher Hidden'] = hide;
},
toggleHidden: function() {
var hide;
hide = !ThreadWatcher.dialog.hidden;
ThreadWatcher.setHidden(hide);
return $.set('Thread Watcher Hidden', hide);
}, },
cb: { cb: {
openAll: function() { openAll: function() {

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.10.7.4 // @version 1.10.8.0
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript // Generated by CoffeeScript
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.10.7.4 // @version 1.10.8.0
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -278,6 +278,7 @@
'Auto Prune': [false, 'Automatically remove dead threads.'], 'Auto Prune': [false, 'Automatically remove dead threads.'],
'Show Unread Count': [true, 'Show number of unread posts in watched threads.'] 'Show Unread Count': [true, 'Show number of unread posts in watched threads.']
}, },
'Thread Watcher Hidden': true,
filter: { filter: {
name: "# Filter any namefags:\n#/^(?!Anonymous$)/", name: "# Filter any namefags:\n#/^(?!Anonymous$)/",
uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/", uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/",
@ -395,7 +396,7 @@
doc = d.documentElement; doc = d.documentElement;
g = { g = {
VERSION: '1.10.7.4', VERSION: '1.10.8.0',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -6760,6 +6761,8 @@
$.prepend($('.navLinksBot'), linkBot); $.prepend($('.navLinksBot'), linkBot);
} }
$.before($.id('togglePostFormLink'), link); $.before($.id('togglePostFormLink'), link);
$.on(d, 'QRGetFile', QR.getFile);
$.on(d, 'QRSetFile', QR.setFile);
$.on(d, 'paste', QR.paste); $.on(d, 'paste', QR.paste);
$.on(d, 'dragover', QR.dragOver); $.on(d, 'dragover', QR.dragOver);
$.on(d, 'drop', QR.dropFile); $.on(d, 'drop', QR.dropFile);
@ -7045,6 +7048,19 @@
counter.hidden = count < 1000; counter.hidden = count < 1000;
return (count > 1500 ? $.addClass : $.rmClass)(counter, 'warning'); return (count > 1500 ? $.addClass : $.rmClass)(counter, 'warning');
}, },
getFile: function() {
var ref;
return $.event('QRFile', (ref = QR.selected) != null ? ref.file : void 0);
},
setFile: function(e) {
var file, name, ref;
ref = e.detail, file = ref.file, name = ref.name;
if (name != null) {
file.name = name;
}
QR.open();
return QR.handleFiles([file]);
},
drag: function(e) { drag: function(e) {
var toggle; var toggle;
toggle = e.type === 'dragstart' ? $.off : $.on; toggle = e.type === 'dragstart' ? $.off : $.on;
@ -12394,11 +12410,17 @@
this.status = $('#watcher-status', this.dialog); this.status = $('#watcher-status', this.dialog);
this.list = this.dialog.lastElementChild; this.list = this.dialog.lastElementChild;
this.refreshButton = $('.refresh', this.dialog); this.refreshButton = $('.refresh', this.dialog);
this.closeButon = $('.move > .close', this.dialog);
this.unreaddb = Unread.db || new DataBoard('lastReadPosts'); this.unreaddb = Unread.db || new DataBoard('lastReadPosts');
this.closeButon.hidden = !Conf['Toggleable Thread Watcher'];
if (Conf['Toggleable Thread Watcher']) {
this.setHidden(Conf['Thread Watcher Hidden']);
$.sync('Thread Watcher Hidden', this.setHidden);
}
$.on(d, 'QRPostSuccessful', this.cb.post); $.on(d, 'QRPostSuccessful', this.cb.post);
$.on(sc, 'click', this.toggleWatcher); $.on(sc, 'click', this.toggleHidden);
$.on(this.refreshButton, 'click', this.fetchAllStatus); $.on(this.refreshButton, 'click', this.fetchAllStatus);
$.on($('.move > .close', this.dialog), 'click', this.toggleWatcher); $.on(this.closeButon, 'click', this.toggleHidden);
$.on(d, '4chanXInitFinished', this.ready); $.on(d, '4chanXInitFinished', this.ready);
switch (g.VIEW) { switch (g.VIEW) {
case 'index': case 'index':
@ -12490,9 +12512,6 @@
} }
ThreadWatcher.refresh(); ThreadWatcher.refresh();
$.add(d.body, ThreadWatcher.dialog); $.add(d.body, ThreadWatcher.dialog);
if (Conf['Toggleable Thread Watcher']) {
ThreadWatcher.dialog.hidden = true;
}
if (!Conf['Auto Watch']) { if (!Conf['Auto Watch']) {
return; return;
} }
@ -12506,9 +12525,16 @@
return $["delete"]('AutoWatch'); return $["delete"]('AutoWatch');
}); });
}, },
toggleWatcher: function() { setHidden: function(hide) {
$.toggleClass(ThreadWatcher.shortcut, 'disabled'); ThreadWatcher.shortcut.classList.toggle('disabled', hide);
return ThreadWatcher.dialog.hidden = !ThreadWatcher.dialog.hidden; ThreadWatcher.dialog.hidden = hide;
return Conf['Thread Watcher Hidden'] = hide;
},
toggleHidden: function() {
var hide;
hide = !ThreadWatcher.dialog.hidden;
ThreadWatcher.setHidden(hide);
return $.set('Thread Watcher Hidden', hide);
}, },
cb: { cb: {
openAll: function() { openAll: function() {

Binary file not shown.

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'> <gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
<app appid='lacclbnghgdicfifcamcmcnilckjamag'> <app appid='lacclbnghgdicfifcamcmcnilckjamag'>
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X-beta.crx' version='1.10.7.4' /> <updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X-beta.crx' version='1.10.8.0' />
</app> </app>
</gupdate> </gupdate>

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'> <gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
<app appid='lacclbnghgdicfifcamcmcnilckjamag'> <app appid='lacclbnghgdicfifcamcmcnilckjamag'>
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X.crx' version='1.10.7.4' /> <updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X.crx' version='1.10.8.0' />
</app> </app>
</gupdate> </gupdate>

View File

@ -3,8 +3,8 @@
"description": "Cross-browser userscript for maximum lurking on 4chan.", "description": "Cross-browser userscript for maximum lurking on 4chan.",
"meta": { "meta": {
"name": "4chan X", "name": "4chan X",
"version": "1.10.7.4", "version": "1.10.8.0",
"date": "2015-04-05T09:13:34.908Z", "date": "2015-04-05T22:25:55.676Z",
"repo": "https://github.com/ccd0/4chan-x/", "repo": "https://github.com/ccd0/4chan-x/",
"page": "https://github.com/ccd0/4chan-x", "page": "https://github.com/ccd0/4chan-x",
"downloads": "https://ccd0.github.io/4chan-x/builds/", "downloads": "https://ccd0.github.io/4chan-x/builds/",