Merge branch 'Beta'
This commit is contained in:
commit
0e86ef0209
12
CHANGELOG.md
12
CHANGELOG.md
@ -3,6 +3,18 @@ The attributions below are for work that has been incorporated into the script a
|
||||
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.9.17.x -->
|
||||
### v1.9.17.10
|
||||
*2014-12-26* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.17.10/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.17.10/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
|
||||
**ccd0**
|
||||
- More bugfixes.
|
||||
|
||||
### v1.9.17.9
|
||||
*2014-12-26* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.17.9/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.17.9/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
|
||||
**ccd0**
|
||||
- Fix some QR showing/hiding bugs.
|
||||
|
||||
### v1.9.17.8
|
||||
*2014-12-25* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.17.8/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.17.8/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
|
||||
|
||||
2
LICENSE
2
LICENSE
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* 4chan X - Version 1.9.17.8
|
||||
* 4chan X - Version 1.9.17.10
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/ccd0/4chan-x/blob/master/LICENSE
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.9.17.8
|
||||
// @version 1.9.17.10
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.9.17.8
|
||||
// @version 1.9.17.10
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -25,7 +25,7 @@
|
||||
// ==/UserScript==
|
||||
|
||||
/*
|
||||
* 4chan X - Version 1.9.17.8
|
||||
* 4chan X - Version 1.9.17.10
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/ccd0/4chan-x/blob/master/LICENSE
|
||||
@ -218,7 +218,7 @@
|
||||
'Thread Stats': [true, 'Display reply and image count.'],
|
||||
'IP Count in Stats': [true, 'Display the unique IP count in the thread stats.', 1],
|
||||
'Page Count in Stats': [true, 'Display the page count in the thread stats.', 1],
|
||||
'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.', 1],
|
||||
'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.'],
|
||||
'Thread Watcher': [true, 'Bookmark threads.'],
|
||||
'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.', 1],
|
||||
'Mark New IPs': [false, 'Label each post from a new IP with the thread\'s current IP count.']
|
||||
@ -393,7 +393,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.9.17.8',
|
||||
VERSION: '1.9.17.10',
|
||||
NAMESPACE: '4chan X.',
|
||||
NAME: '4chan X',
|
||||
FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions',
|
||||
@ -6550,6 +6550,7 @@
|
||||
$.on(d, '4chanXInitFinished', this.initReady);
|
||||
window.addEventListener('focus', this.focus, true);
|
||||
window.addEventListener('blur', this.focus, true);
|
||||
$.on(d, 'click', this.focus);
|
||||
return Post.callbacks.push({
|
||||
name: 'Quick Reply',
|
||||
cb: this.node
|
||||
@ -6677,8 +6678,12 @@
|
||||
if (!QR.nodes) {
|
||||
return;
|
||||
}
|
||||
focus = d.activeElement && (QR.nodes.el.contains(d.activeElement) || d.activeElement.nodeName === 'IFRAME' && /^https:\/\/www\.google\.com\/recaptcha\//.test(d.activeElement.src));
|
||||
$[focus ? 'addClass' : 'rmClass'](QR.nodes.el, 'focus');
|
||||
if (!$$('.goog-bubble-content > iframe').some(function(el) {
|
||||
return el.getBoundingClientRect().top >= 0;
|
||||
})) {
|
||||
focus = d.activeElement && QR.nodes.el.contains(d.activeElement);
|
||||
$[focus ? 'addClass' : 'rmClass'](QR.nodes.el, 'focus');
|
||||
}
|
||||
if (typeof chrome !== "undefined" && chrome !== null) {
|
||||
if (d.activeElement && QR.nodes.el.contains(d.activeElement) && d.activeElement.nodeName === 'IFRAME') {
|
||||
QR.scrollY = window.scrollY;
|
||||
@ -11318,6 +11323,7 @@
|
||||
this.dialog = sc = UI.dialog('thread-stats', 'bottom: 0px; right: 0px;', {
|
||||
innerHTML: "<div class=\"move\" title=\"" + E(statsTitle) + "\">" + statsHTML.innerHTML + "</div>"
|
||||
});
|
||||
$.addClass(doc, 'float');
|
||||
$.ready((function(_this) {
|
||||
return function() {
|
||||
return $.add(d.body, sc);
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.9.17.8
|
||||
// @version 1.9.17.10
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -24,7 +24,7 @@
|
||||
// ==/UserScript==
|
||||
|
||||
/*
|
||||
* 4chan X - Version 1.9.17.8
|
||||
* 4chan X - Version 1.9.17.10
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/ccd0/4chan-x/blob/master/LICENSE
|
||||
@ -217,7 +217,7 @@
|
||||
'Thread Stats': [true, 'Display reply and image count.'],
|
||||
'IP Count in Stats': [true, 'Display the unique IP count in the thread stats.', 1],
|
||||
'Page Count in Stats': [true, 'Display the page count in the thread stats.', 1],
|
||||
'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.', 1],
|
||||
'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.'],
|
||||
'Thread Watcher': [true, 'Bookmark threads.'],
|
||||
'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.', 1],
|
||||
'Mark New IPs': [false, 'Label each post from a new IP with the thread\'s current IP count.']
|
||||
@ -392,7 +392,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.9.17.8',
|
||||
VERSION: '1.9.17.10',
|
||||
NAMESPACE: '4chan X.',
|
||||
NAME: '4chan X',
|
||||
FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions',
|
||||
@ -6549,6 +6549,7 @@
|
||||
$.on(d, '4chanXInitFinished', this.initReady);
|
||||
window.addEventListener('focus', this.focus, true);
|
||||
window.addEventListener('blur', this.focus, true);
|
||||
$.on(d, 'click', this.focus);
|
||||
return Post.callbacks.push({
|
||||
name: 'Quick Reply',
|
||||
cb: this.node
|
||||
@ -6676,8 +6677,12 @@
|
||||
if (!QR.nodes) {
|
||||
return;
|
||||
}
|
||||
focus = d.activeElement && (QR.nodes.el.contains(d.activeElement) || d.activeElement.nodeName === 'IFRAME' && /^https:\/\/www\.google\.com\/recaptcha\//.test(d.activeElement.src));
|
||||
$[focus ? 'addClass' : 'rmClass'](QR.nodes.el, 'focus');
|
||||
if (!$$('.goog-bubble-content > iframe').some(function(el) {
|
||||
return el.getBoundingClientRect().top >= 0;
|
||||
})) {
|
||||
focus = d.activeElement && QR.nodes.el.contains(d.activeElement);
|
||||
$[focus ? 'addClass' : 'rmClass'](QR.nodes.el, 'focus');
|
||||
}
|
||||
if (typeof chrome !== "undefined" && chrome !== null) {
|
||||
if (d.activeElement && QR.nodes.el.contains(d.activeElement) && d.activeElement.nodeName === 'IFRAME') {
|
||||
QR.scrollY = window.scrollY;
|
||||
@ -11317,6 +11322,7 @@
|
||||
this.dialog = sc = UI.dialog('thread-stats', 'bottom: 0px; right: 0px;', {
|
||||
innerHTML: "<div class=\"move\" title=\"" + E(statsTitle) + "\">" + statsHTML.innerHTML + "</div>"
|
||||
});
|
||||
$.addClass(doc, 'float');
|
||||
$.ready((function(_this) {
|
||||
return function() {
|
||||
return $.add(d.body, sc);
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.9.17.8
|
||||
// @version 1.9.17.10
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.9.17.8
|
||||
// @version 1.9.17.10
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -25,7 +25,7 @@
|
||||
// ==/UserScript==
|
||||
|
||||
/*
|
||||
* 4chan X - Version 1.9.17.8
|
||||
* 4chan X - Version 1.9.17.10
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/ccd0/4chan-x/blob/master/LICENSE
|
||||
@ -218,7 +218,7 @@
|
||||
'Thread Stats': [true, 'Display reply and image count.'],
|
||||
'IP Count in Stats': [true, 'Display the unique IP count in the thread stats.', 1],
|
||||
'Page Count in Stats': [true, 'Display the page count in the thread stats.', 1],
|
||||
'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.', 1],
|
||||
'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.'],
|
||||
'Thread Watcher': [true, 'Bookmark threads.'],
|
||||
'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.', 1],
|
||||
'Mark New IPs': [false, 'Label each post from a new IP with the thread\'s current IP count.']
|
||||
@ -393,7 +393,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.9.17.8',
|
||||
VERSION: '1.9.17.10',
|
||||
NAMESPACE: '4chan X.',
|
||||
NAME: '4chan X',
|
||||
FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions',
|
||||
@ -6550,6 +6550,7 @@
|
||||
$.on(d, '4chanXInitFinished', this.initReady);
|
||||
window.addEventListener('focus', this.focus, true);
|
||||
window.addEventListener('blur', this.focus, true);
|
||||
$.on(d, 'click', this.focus);
|
||||
return Post.callbacks.push({
|
||||
name: 'Quick Reply',
|
||||
cb: this.node
|
||||
@ -6677,8 +6678,12 @@
|
||||
if (!QR.nodes) {
|
||||
return;
|
||||
}
|
||||
focus = d.activeElement && (QR.nodes.el.contains(d.activeElement) || d.activeElement.nodeName === 'IFRAME' && /^https:\/\/www\.google\.com\/recaptcha\//.test(d.activeElement.src));
|
||||
$[focus ? 'addClass' : 'rmClass'](QR.nodes.el, 'focus');
|
||||
if (!$$('.goog-bubble-content > iframe').some(function(el) {
|
||||
return el.getBoundingClientRect().top >= 0;
|
||||
})) {
|
||||
focus = d.activeElement && QR.nodes.el.contains(d.activeElement);
|
||||
$[focus ? 'addClass' : 'rmClass'](QR.nodes.el, 'focus');
|
||||
}
|
||||
if (typeof chrome !== "undefined" && chrome !== null) {
|
||||
if (d.activeElement && QR.nodes.el.contains(d.activeElement) && d.activeElement.nodeName === 'IFRAME') {
|
||||
QR.scrollY = window.scrollY;
|
||||
@ -11318,6 +11323,7 @@
|
||||
this.dialog = sc = UI.dialog('thread-stats', 'bottom: 0px; right: 0px;', {
|
||||
innerHTML: "<div class=\"move\" title=\"" + E(statsTitle) + "\">" + statsHTML.innerHTML + "</div>"
|
||||
});
|
||||
$.addClass(doc, 'float');
|
||||
$.ready((function(_this) {
|
||||
return function() {
|
||||
return $.add(d.body, sc);
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||
<app appid='lacclbnghgdicfifcamcmcnilckjamag'>
|
||||
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X-beta.crx' version='1.9.17.8' />
|
||||
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X-beta.crx' version='1.9.17.10' />
|
||||
</app>
|
||||
</gupdate>
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||
<app appid='lacclbnghgdicfifcamcmcnilckjamag'>
|
||||
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X.crx' version='1.9.17.8' />
|
||||
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X.crx' version='1.9.17.10' />
|
||||
</app>
|
||||
</gupdate>
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
"description": "Cross-browser userscript for maximum lurking on 4chan.",
|
||||
"meta": {
|
||||
"name": "4chan X",
|
||||
"version": "1.9.17.8",
|
||||
"version": "1.9.17.10",
|
||||
"repo": "https://github.com/ccd0/4chan-x/",
|
||||
"page": "https://github.com/ccd0/4chan-x",
|
||||
"downloads": "https://ccd0.github.io/4chan-x/builds/",
|
||||
|
||||
@ -338,7 +338,6 @@ Config =
|
||||
'Updater and Stats in Header': [
|
||||
true,
|
||||
'Places the thread updater and thread stats in the header instead of floating them.'
|
||||
1
|
||||
]
|
||||
'Thread Watcher': [
|
||||
true
|
||||
|
||||
@ -21,6 +21,7 @@ ThreadStats =
|
||||
else
|
||||
@dialog = sc = UI.dialog 'thread-stats', 'bottom: 0px; right: 0px;',
|
||||
<%= html('<div class="move" title="${statsTitle}">&{statsHTML}</div>') %>
|
||||
$.addClass doc, 'float'
|
||||
$.ready =>
|
||||
$.add d.body, sc
|
||||
|
||||
|
||||
@ -39,6 +39,8 @@ QR =
|
||||
|
||||
window.addEventListener 'focus', @focus, true
|
||||
window.addEventListener 'blur', @focus, true
|
||||
# We don't receive blur events from captcha iframe.
|
||||
$.on d, 'click', @focus
|
||||
|
||||
Post.callbacks.push
|
||||
name: 'Quick Reply'
|
||||
@ -133,11 +135,9 @@ QR =
|
||||
focus: ->
|
||||
$.queueTask ->
|
||||
return unless QR.nodes
|
||||
focus = d.activeElement and (
|
||||
QR.nodes.el.contains(d.activeElement) or
|
||||
d.activeElement.nodeName is 'IFRAME' and /^https:\/\/www\.google\.com\/recaptcha\//.test(d.activeElement.src)
|
||||
)
|
||||
$[if focus then 'addClass' else 'rmClass'] QR.nodes.el, 'focus'
|
||||
unless $$('.goog-bubble-content > iframe').some((el) -> el.getBoundingClientRect().top >= 0)
|
||||
focus = d.activeElement and QR.nodes.el.contains(d.activeElement)
|
||||
$[if focus then 'addClass' else 'rmClass'] QR.nodes.el, 'focus'
|
||||
if chrome?
|
||||
# XXX Stop anomalous scrolling on space/tab in captcha iframe.
|
||||
if d.activeElement and QR.nodes.el.contains(d.activeElement) and d.activeElement.nodeName is 'IFRAME'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user