Merge branch 'v3'
Conflicts: LICENSE builds/appchan-x.user.js builds/crx/script.js
This commit is contained in:
commit
854c588820
2
LICENSE
2
LICENSE
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* appchan x - Version 2.9.7 - 2014-03-23
|
* appchan x - Version 2.9.7 - 2014-03-24
|
||||||
*
|
*
|
||||||
* Licensed under the MIT license.
|
* Licensed under the MIT license.
|
||||||
* https://github.com/zixaphir/appchan-x/blob/master/LICENSE
|
* https://github.com/zixaphir/appchan-x/blob/master/LICENSE
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
// ==/UserScript==
|
// ==/UserScript==
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* appchan x - Version 2.9.7 - 2014-03-23
|
* appchan x - Version 2.9.7 - 2014-03-24
|
||||||
*
|
*
|
||||||
* Licensed under the MIT license.
|
* Licensed under the MIT license.
|
||||||
* https://github.com/zixaphir/appchan-x/blob/master/LICENSE
|
* https://github.com/zixaphir/appchan-x/blob/master/LICENSE
|
||||||
@ -113,7 +113,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
var $, $$, Anonymize, ArchiveLink, AutoGIF, Banner, Board, Build, Callbacks, CatalogLinks, CatalogThread, Clone, Color, Conf, Config, CustomCSS, DataBoard, DeleteLink, Dice, DownloadLink, Emoji, ExpandComment, ExpandThread, FappeTyme, Favicon, FileInfo, Filter, Flash, Fourchan, Gallery, Get, GlobalMessage, Header, IDColor, ImageExpand, ImageHover, ImageLoader, Index, InfiniScroll, JSColor, Keybinds, Labels, Linkify, Main, MascotTools, Mascots, Menu, Nav, Navigate, Notice, PSAHiding, Polyfill, Post, PostHiding, QR, QuoteBacklink, QuoteInline, QuoteMarkers, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, Report, ReportLink, RevealSpoilers, Rice, Sauce, Settings, SimpleDict, Style, ThemeTools, Themes, Thread, ThreadExcerpt, ThreadStats, ThreadUpdater, ThreadWatcher, Time, UI, Unread, c, d, doc, editMascot, editTheme, g, userNavigation,
|
var $, $$, Anonymize, ArchiveLink, AutoGIF, Banner, Board, Build, Callbacks, CatalogLinks, CatalogThread, Clone, Color, Conf, Config, CustomCSS, DataBoard, DeleteLink, Dice, DownloadLink, Emoji, ExpandComment, ExpandThread, FappeTyme, Favicon, FileInfo, Filter, Flash, Fourchan, Gallery, Get, GlobalMessage, Header, IDColor, ImageExpand, ImageHover, ImageLoader, Index, InfiniScroll, JSColor, Keybinds, Labels, Linkify, Main, MascotTools, Mascots, Menu, Nav, Navigate, Notice, PSAHiding, Polyfill, Post, PostHiding, QR, QuoteBacklink, QuoteInline, QuoteMarkers, QuotePreview, QuoteStrikeThrough, QuoteThreading, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, Report, ReportLink, RevealSpoilers, Rice, Sauce, Settings, SimpleDict, Style, ThemeTools, Themes, Thread, ThreadExcerpt, ThreadStats, ThreadUpdater, ThreadWatcher, Time, UI, Unread, c, d, doc, editMascot, editTheme, g, userNavigation,
|
||||||
__slice = [].slice,
|
__slice = [].slice,
|
||||||
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
|
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
|
||||||
__hasProp = {}.hasOwnProperty,
|
__hasProp = {}.hasOwnProperty,
|
||||||
@ -7631,6 +7631,50 @@
|
|||||||
} else if (mayReset) {
|
} else if (mayReset) {
|
||||||
return quotelink.textContent = text;
|
return quotelink.textContent = text;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
cb: {
|
||||||
|
seek: function(type) {
|
||||||
|
var post;
|
||||||
|
if (Conf['Mark Quotes of You'] && (post = QuotesYou.cb.findPost(type))) {
|
||||||
|
return Quotesyou.cb.scroll(post);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
findPost: function(type) {
|
||||||
|
var i, index, len, post, posts;
|
||||||
|
posts = $$('.quotesYou');
|
||||||
|
if (!QuoteMarkers.lastRead) {
|
||||||
|
if (!(post = QuoteMarkers.lastRead = posts[0])) {
|
||||||
|
new Notice('warning', 'No posts are currently quoting you, loser.', 20);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!Get.postFromRoot(post).isHidden) {
|
||||||
|
return post;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
post = QuoteMarkers.lastRead;
|
||||||
|
}
|
||||||
|
len = posts.length - 1;
|
||||||
|
index = i = posts.indexOf(post);
|
||||||
|
while (true) {
|
||||||
|
if (index === (i = i === 0 ? len : i === len ? 0 : type === 'prev' ? i - 1 : i + 1)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
post = posts[i];
|
||||||
|
if (!Get.postFromRoot(post).isHidden) {
|
||||||
|
return post;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
scroll: function(post) {
|
||||||
|
var highlight;
|
||||||
|
if (highlight = $('.highlight')) {
|
||||||
|
$.rmClass(highlight, 'highlight');
|
||||||
|
}
|
||||||
|
QuoteMarkers.lastRead = post;
|
||||||
|
window.location.hash = "#" + post.id;
|
||||||
|
Header.scrollTo(post);
|
||||||
|
return $.addClass($('.post', post), 'highlight');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -7906,95 +7950,6 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
QuoteYou = {
|
|
||||||
init: function() {
|
|
||||||
if (!Conf['Mark Quotes of You']) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (Conf['Highlight Own Posts']) {
|
|
||||||
$.addClass(doc, 'highlight-own');
|
|
||||||
}
|
|
||||||
if (Conf['Highlight Posts Quoting You']) {
|
|
||||||
$.addClass(doc, 'highlight-you');
|
|
||||||
}
|
|
||||||
if (Conf['Comment Expansion']) {
|
|
||||||
ExpandComment.callbacks.push(this.node);
|
|
||||||
}
|
|
||||||
this.text = '\u00A0(You)';
|
|
||||||
return Post.callbacks.push({
|
|
||||||
name: 'Mark Quotes of You',
|
|
||||||
cb: this.node
|
|
||||||
});
|
|
||||||
},
|
|
||||||
node: function() {
|
|
||||||
var quotelink, _i, _len, _ref;
|
|
||||||
if (this.isClone) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (QR.db.get({
|
|
||||||
boardID: this.board.ID,
|
|
||||||
threadID: this.thread.ID,
|
|
||||||
postID: this.ID
|
|
||||||
})) {
|
|
||||||
$.addClass(this.nodes.root, 'yourPost');
|
|
||||||
}
|
|
||||||
if (!this.quotes.length) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
_ref = this.nodes.quotelinks;
|
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
|
||||||
quotelink = _ref[_i];
|
|
||||||
if (!(QR.db.get(Get.postDataFromLink(quotelink)))) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$.add(quotelink, $.tn(QuoteYou.text));
|
|
||||||
$.addClass(quotelink, 'you');
|
|
||||||
$.addClass(this.nodes.root, 'quotesYou');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
cb: {
|
|
||||||
seek: function(type) {
|
|
||||||
var highlight, post, posts, result, str;
|
|
||||||
if (!Conf['Mark Quotes of You']) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (highlight = $('.highlight')) {
|
|
||||||
$.rmClass(highlight, 'highlight');
|
|
||||||
}
|
|
||||||
if (!QuoteYou.lastRead) {
|
|
||||||
if (!(post = QuoteYou.lastRead = $('.quotesYou'))) {
|
|
||||||
new Notice('warning', 'No posts are currently quoting you, loser.', 20);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (QuoteYou.cb.scroll(post)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
post = QuoteYou.lastRead;
|
|
||||||
}
|
|
||||||
str = "" + type + "::div[contains(@class,'quotesYou')]";
|
|
||||||
while (post = (result = $.X(str, post)).snapshotItem(type === 'preceding' ? result.snapshotLength - 1 : 0)) {
|
|
||||||
if (QuoteYou.cb.scroll(post)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
posts = $$('.quotesYou');
|
|
||||||
return QuoteYou.cb.scroll(posts[type === 'following' ? 0 : posts.length - 1]);
|
|
||||||
},
|
|
||||||
scroll: function(post) {
|
|
||||||
if (Get.postFromRoot(post).isHidden) {
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
QuoteYou.lastRead = post;
|
|
||||||
window.location = "#" + post.id;
|
|
||||||
Header.scrollToPost(post);
|
|
||||||
$.addClass($('.post', post), 'highlight');
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Quotify = {
|
Quotify = {
|
||||||
init: function() {
|
init: function() {
|
||||||
if (!Conf['Resurrect Quotes']) {
|
if (!Conf['Resurrect Quotes']) {
|
||||||
@ -15800,10 +15755,10 @@
|
|||||||
PostHiding.toggle(thread.OP);
|
PostHiding.toggle(thread.OP);
|
||||||
break;
|
break;
|
||||||
case Conf['Previous Post Quoting You']:
|
case Conf['Previous Post Quoting You']:
|
||||||
QuoteYou.cb.seek('preceding');
|
QuoteMarkers.cb.seek('preceding');
|
||||||
break;
|
break;
|
||||||
case Conf['Next Post Quoting You']:
|
case Conf['Next Post Quoting You']:
|
||||||
QuoteYou.cb.seek('following');
|
QuoteMarkers.cb.seek('following');
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
// Generated by CoffeeScript
|
// Generated by CoffeeScript
|
||||||
/*
|
/*
|
||||||
* appchan x - Version 2.9.7 - 2014-03-23
|
* appchan x - Version 2.9.7 - 2014-03-24
|
||||||
*
|
*
|
||||||
* Licensed under the MIT license.
|
* Licensed under the MIT license.
|
||||||
* https://github.com/zixaphir/appchan-x/blob/master/LICENSE
|
* https://github.com/zixaphir/appchan-x/blob/master/LICENSE
|
||||||
@ -88,7 +88,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
var $, $$, Anonymize, ArchiveLink, AutoGIF, Banner, Board, Build, Callbacks, CatalogLinks, CatalogThread, Clone, Color, Conf, Config, CustomCSS, DataBoard, DeleteLink, Dice, DownloadLink, Emoji, ExpandComment, ExpandThread, FappeTyme, Favicon, FileInfo, Filter, Flash, Fourchan, Gallery, Get, GlobalMessage, Header, IDColor, ImageExpand, ImageHover, ImageLoader, Index, InfiniScroll, JSColor, Keybinds, Labels, Linkify, Main, MascotTools, Mascots, Menu, Nav, Navigate, Notice, PSAHiding, Polyfill, Post, PostHiding, QR, QuoteBacklink, QuoteInline, QuoteMarkers, QuotePreview, QuoteStrikeThrough, QuoteThreading, QuoteYou, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, Report, ReportLink, RevealSpoilers, Rice, Sauce, Settings, SimpleDict, Style, ThemeTools, Themes, Thread, ThreadExcerpt, ThreadStats, ThreadUpdater, ThreadWatcher, Time, UI, Unread, c, d, doc, editMascot, editTheme, g, userNavigation,
|
var $, $$, Anonymize, ArchiveLink, AutoGIF, Banner, Board, Build, Callbacks, CatalogLinks, CatalogThread, Clone, Color, Conf, Config, CustomCSS, DataBoard, DeleteLink, Dice, DownloadLink, Emoji, ExpandComment, ExpandThread, FappeTyme, Favicon, FileInfo, Filter, Flash, Fourchan, Gallery, Get, GlobalMessage, Header, IDColor, ImageExpand, ImageHover, ImageLoader, Index, InfiniScroll, JSColor, Keybinds, Labels, Linkify, Main, MascotTools, Mascots, Menu, Nav, Navigate, Notice, PSAHiding, Polyfill, Post, PostHiding, QR, QuoteBacklink, QuoteInline, QuoteMarkers, QuotePreview, QuoteStrikeThrough, QuoteThreading, Quotify, RandomAccessList, Recursive, Redirect, RelativeDates, RemoveSpoilers, Report, ReportLink, RevealSpoilers, Rice, Sauce, Settings, SimpleDict, Style, ThemeTools, Themes, Thread, ThreadExcerpt, ThreadStats, ThreadUpdater, ThreadWatcher, Time, UI, Unread, c, d, doc, editMascot, editTheme, g, userNavigation,
|
||||||
__slice = [].slice,
|
__slice = [].slice,
|
||||||
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
|
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
|
||||||
__hasProp = {}.hasOwnProperty,
|
__hasProp = {}.hasOwnProperty,
|
||||||
@ -7684,6 +7684,50 @@
|
|||||||
} else if (mayReset) {
|
} else if (mayReset) {
|
||||||
return quotelink.textContent = text;
|
return quotelink.textContent = text;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
cb: {
|
||||||
|
seek: function(type) {
|
||||||
|
var post;
|
||||||
|
if (Conf['Mark Quotes of You'] && (post = QuotesYou.cb.findPost(type))) {
|
||||||
|
return Quotesyou.cb.scroll(post);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
findPost: function(type) {
|
||||||
|
var i, index, len, post, posts;
|
||||||
|
posts = $$('.quotesYou');
|
||||||
|
if (!QuoteMarkers.lastRead) {
|
||||||
|
if (!(post = QuoteMarkers.lastRead = posts[0])) {
|
||||||
|
new Notice('warning', 'No posts are currently quoting you, loser.', 20);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!Get.postFromRoot(post).isHidden) {
|
||||||
|
return post;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
post = QuoteMarkers.lastRead;
|
||||||
|
}
|
||||||
|
len = posts.length - 1;
|
||||||
|
index = i = posts.indexOf(post);
|
||||||
|
while (true) {
|
||||||
|
if (index === (i = i === 0 ? len : i === len ? 0 : type === 'prev' ? i - 1 : i + 1)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
post = posts[i];
|
||||||
|
if (!Get.postFromRoot(post).isHidden) {
|
||||||
|
return post;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
scroll: function(post) {
|
||||||
|
var highlight;
|
||||||
|
if (highlight = $('.highlight')) {
|
||||||
|
$.rmClass(highlight, 'highlight');
|
||||||
|
}
|
||||||
|
QuoteMarkers.lastRead = post;
|
||||||
|
window.location.hash = "#" + post.id;
|
||||||
|
Header.scrollTo(post);
|
||||||
|
return $.addClass($('.post', post), 'highlight');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -7959,95 +8003,6 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
QuoteYou = {
|
|
||||||
init: function() {
|
|
||||||
if (!Conf['Mark Quotes of You']) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (Conf['Highlight Own Posts']) {
|
|
||||||
$.addClass(doc, 'highlight-own');
|
|
||||||
}
|
|
||||||
if (Conf['Highlight Posts Quoting You']) {
|
|
||||||
$.addClass(doc, 'highlight-you');
|
|
||||||
}
|
|
||||||
if (Conf['Comment Expansion']) {
|
|
||||||
ExpandComment.callbacks.push(this.node);
|
|
||||||
}
|
|
||||||
this.text = '\u00A0(You)';
|
|
||||||
return Post.callbacks.push({
|
|
||||||
name: 'Mark Quotes of You',
|
|
||||||
cb: this.node
|
|
||||||
});
|
|
||||||
},
|
|
||||||
node: function() {
|
|
||||||
var quotelink, _i, _len, _ref;
|
|
||||||
if (this.isClone) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (QR.db.get({
|
|
||||||
boardID: this.board.ID,
|
|
||||||
threadID: this.thread.ID,
|
|
||||||
postID: this.ID
|
|
||||||
})) {
|
|
||||||
$.addClass(this.nodes.root, 'yourPost');
|
|
||||||
}
|
|
||||||
if (!this.quotes.length) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
_ref = this.nodes.quotelinks;
|
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
|
||||||
quotelink = _ref[_i];
|
|
||||||
if (!(QR.db.get(Get.postDataFromLink(quotelink)))) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$.add(quotelink, $.tn(QuoteYou.text));
|
|
||||||
$.addClass(quotelink, 'you');
|
|
||||||
$.addClass(this.nodes.root, 'quotesYou');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
cb: {
|
|
||||||
seek: function(type) {
|
|
||||||
var highlight, post, posts, result, str;
|
|
||||||
if (!Conf['Mark Quotes of You']) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (highlight = $('.highlight')) {
|
|
||||||
$.rmClass(highlight, 'highlight');
|
|
||||||
}
|
|
||||||
if (!QuoteYou.lastRead) {
|
|
||||||
if (!(post = QuoteYou.lastRead = $('.quotesYou'))) {
|
|
||||||
new Notice('warning', 'No posts are currently quoting you, loser.', 20);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (QuoteYou.cb.scroll(post)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
post = QuoteYou.lastRead;
|
|
||||||
}
|
|
||||||
str = "" + type + "::div[contains(@class,'quotesYou')]";
|
|
||||||
while (post = (result = $.X(str, post)).snapshotItem(type === 'preceding' ? result.snapshotLength - 1 : 0)) {
|
|
||||||
if (QuoteYou.cb.scroll(post)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
posts = $$('.quotesYou');
|
|
||||||
return QuoteYou.cb.scroll(posts[type === 'following' ? 0 : posts.length - 1]);
|
|
||||||
},
|
|
||||||
scroll: function(post) {
|
|
||||||
if (Get.postFromRoot(post).isHidden) {
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
QuoteYou.lastRead = post;
|
|
||||||
window.location = "#" + post.id;
|
|
||||||
Header.scrollToPost(post);
|
|
||||||
$.addClass($('.post', post), 'highlight');
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Quotify = {
|
Quotify = {
|
||||||
init: function() {
|
init: function() {
|
||||||
if (!Conf['Resurrect Quotes']) {
|
if (!Conf['Resurrect Quotes']) {
|
||||||
@ -15821,10 +15776,10 @@
|
|||||||
PostHiding.toggle(thread.OP);
|
PostHiding.toggle(thread.OP);
|
||||||
break;
|
break;
|
||||||
case Conf['Previous Post Quoting You']:
|
case Conf['Previous Post Quoting You']:
|
||||||
QuoteYou.cb.seek('preceding');
|
QuoteMarkers.cb.seek('preceding');
|
||||||
break;
|
break;
|
||||||
case Conf['Next Post Quoting You']:
|
case Conf['Next Post Quoting You']:
|
||||||
QuoteYou.cb.seek('following');
|
QuoteMarkers.cb.seek('following');
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -139,9 +139,9 @@ Keybinds =
|
|||||||
when Conf['Hide']
|
when Conf['Hide']
|
||||||
PostHiding.toggle thread.OP
|
PostHiding.toggle thread.OP
|
||||||
when Conf['Previous Post Quoting You']
|
when Conf['Previous Post Quoting You']
|
||||||
QuoteYou.cb.seek 'preceding'
|
QuoteMarkers.cb.seek 'preceding'
|
||||||
when Conf['Next Post Quoting You']
|
when Conf['Next Post Quoting You']
|
||||||
QuoteYou.cb.seek 'following'
|
QuoteMarkers.cb.seek 'following'
|
||||||
else
|
else
|
||||||
return
|
return
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
|||||||
@ -45,3 +45,43 @@ QuoteMarkers =
|
|||||||
quotelink.textContent = "#{text}\u00A0(#{markers.join '|'})"
|
quotelink.textContent = "#{text}\u00A0(#{markers.join '|'})"
|
||||||
else if mayReset
|
else if mayReset
|
||||||
quotelink.textContent = text
|
quotelink.textContent = text
|
||||||
|
|
||||||
|
cb:
|
||||||
|
seek: (type) ->
|
||||||
|
if Conf['Mark Quotes of You'] and post = QuotesYou.cb.findPost type
|
||||||
|
Quotesyou.cb.scroll post
|
||||||
|
|
||||||
|
findPost: (type) ->
|
||||||
|
posts = $$ '.quotesYou'
|
||||||
|
unless QuoteMarkers.lastRead
|
||||||
|
unless post = QuoteMarkers.lastRead = posts[0]
|
||||||
|
new Notice 'warning', 'No posts are currently quoting you, loser.', 20
|
||||||
|
return
|
||||||
|
unless Get.postFromRoot(post).isHidden
|
||||||
|
return post
|
||||||
|
else
|
||||||
|
post = QuoteMarkers.lastRead
|
||||||
|
|
||||||
|
len = posts.length - 1
|
||||||
|
index = i = posts.indexOf post
|
||||||
|
while true
|
||||||
|
break if index is (
|
||||||
|
i = if i is 0
|
||||||
|
len
|
||||||
|
else if i is len
|
||||||
|
0
|
||||||
|
else if type is 'prev'
|
||||||
|
i - 1
|
||||||
|
else
|
||||||
|
i + 1
|
||||||
|
)
|
||||||
|
post = posts[i]
|
||||||
|
return post unless Get.postFromRoot(post).isHidden
|
||||||
|
|
||||||
|
scroll: (post) ->
|
||||||
|
$.rmClass highlight, 'highlight' if highlight = $ '.highlight'
|
||||||
|
QuoteMarkers.lastRead = post
|
||||||
|
window.location.hash = "##{post.id}"
|
||||||
|
Header.scrollTo post
|
||||||
|
$.addClass $('.post', post), 'highlight'
|
||||||
|
|
||||||
|
|||||||
@ -1,64 +0,0 @@
|
|||||||
QuoteYou =
|
|
||||||
init: ->
|
|
||||||
return if !Conf['Mark Quotes of You']
|
|
||||||
|
|
||||||
if Conf['Highlight Own Posts']
|
|
||||||
$.addClass doc, 'highlight-own'
|
|
||||||
|
|
||||||
if Conf['Highlight Posts Quoting You']
|
|
||||||
$.addClass doc, 'highlight-you'
|
|
||||||
|
|
||||||
if Conf['Comment Expansion']
|
|
||||||
ExpandComment.callbacks.push @node
|
|
||||||
|
|
||||||
# \u00A0 is nbsp
|
|
||||||
@text = '\u00A0(You)'
|
|
||||||
Post.callbacks.push
|
|
||||||
name: 'Mark Quotes of You'
|
|
||||||
cb: @node
|
|
||||||
|
|
||||||
node: ->
|
|
||||||
return if @isClone
|
|
||||||
|
|
||||||
if QR.db.get {boardID: @board.ID, threadID: @thread.ID, postID: @ID}
|
|
||||||
$.addClass @nodes.root, 'yourPost'
|
|
||||||
|
|
||||||
# Stop there if there's no quotes in that post.
|
|
||||||
return unless @quotes.length
|
|
||||||
|
|
||||||
for quotelink in @nodes.quotelinks when QR.db.get Get.postDataFromLink quotelink
|
|
||||||
$.add quotelink, $.tn QuoteYou.text
|
|
||||||
$.addClass quotelink, 'you'
|
|
||||||
$.addClass @nodes.root, 'quotesYou'
|
|
||||||
return
|
|
||||||
|
|
||||||
cb:
|
|
||||||
seek: (type) ->
|
|
||||||
return unless Conf['Mark Quotes of You']
|
|
||||||
$.rmClass highlight, 'highlight' if highlight = $ '.highlight'
|
|
||||||
|
|
||||||
unless QuoteYou.lastRead
|
|
||||||
unless post = QuoteYou.lastRead = $ '.quotesYou'
|
|
||||||
new Notice 'warning', 'No posts are currently quoting you, loser.', 20
|
|
||||||
return
|
|
||||||
return if QuoteYou.cb.scroll post
|
|
||||||
else
|
|
||||||
post = QuoteYou.lastRead
|
|
||||||
|
|
||||||
str = "#{type}::div[contains(@class,'quotesYou')]"
|
|
||||||
|
|
||||||
while post = (result = $.X(str, post)).snapshotItem(if type is 'preceding' then result.snapshotLength - 1 else 0)
|
|
||||||
return if QuoteYou.cb.scroll post
|
|
||||||
|
|
||||||
posts = $$ '.quotesYou'
|
|
||||||
QuoteYou.cb.scroll posts[if type is 'following' then 0 else posts.length - 1]
|
|
||||||
|
|
||||||
scroll: (post) ->
|
|
||||||
if Get.postFromRoot(post).isHidden
|
|
||||||
return false
|
|
||||||
else
|
|
||||||
QuoteYou.lastRead = post
|
|
||||||
window.location = "##{post.id}"
|
|
||||||
Header.scrollToPost post
|
|
||||||
$.addClass $('.post', post), 'highlight'
|
|
||||||
return true
|
|
||||||
Loading…
x
Reference in New Issue
Block a user