Merge branch 'Beta'

This commit is contained in:
ccd0 2014-12-26 16:10:23 -08:00
commit 0e86ef0209
17 changed files with 60 additions and 30 deletions

View File

@ -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")]

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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>

View File

@ -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>

View File

@ -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/",

View File

@ -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

View File

@ -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

View File

@ -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'