Merge remote-tracking branch 'origin/master'
Conflicts: LICENSE builds/appchan-x.user.js builds/crx/script.js
This commit is contained in:
commit
0389bcf930
@ -1,3 +1,9 @@
|
|||||||
|
### v2.9.38
|
||||||
|
*2014-10-27*
|
||||||
|
|
||||||
|
- Security fixes.
|
||||||
|
- Update archives.
|
||||||
|
|
||||||
### v2.9.37
|
### v2.9.37
|
||||||
*2014-10-01*
|
*2014-10-01*
|
||||||
|
|
||||||
|
|||||||
2
LICENSE
2
LICENSE
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* appchan x - Version 2.9.37 - 2014-12-08
|
* appchan x - Version 2.9.38 - 2014-12-08
|
||||||
*
|
*
|
||||||
* 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
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name appchan x
|
// @name appchan x
|
||||||
// @version 2.9.37
|
// @version 2.9.38
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace zixaphir
|
// @namespace zixaphir
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
// Generated by CoffeeScript
|
// Generated by CoffeeScript
|
||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name appchan x
|
// @name appchan x
|
||||||
// @version 2.9.37
|
// @version 2.9.38
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace zixaphir
|
// @namespace zixaphir
|
||||||
@ -28,7 +28,7 @@
|
|||||||
// ==/UserScript==
|
// ==/UserScript==
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* appchan x - Version 2.9.37 - 2014-12-08
|
* appchan x - Version 2.9.38 - 2014-12-08
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -483,7 +483,7 @@
|
|||||||
doc = d.documentElement;
|
doc = d.documentElement;
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '2.9.37',
|
VERSION: '2.9.38',
|
||||||
NAMESPACE: 'appchan_x.',
|
NAMESPACE: 'appchan_x.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -7408,12 +7408,9 @@
|
|||||||
|
|
||||||
QuoteBacklink = {
|
QuoteBacklink = {
|
||||||
init: function() {
|
init: function() {
|
||||||
var format;
|
|
||||||
if (!Conf['Quote Backlinks']) {
|
if (!Conf['Quote Backlinks']) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
format = Conf['backlink'].replace(/%id/g, "' + id + '");
|
|
||||||
this.funk = Function('id', "return '" + format + "'");
|
|
||||||
this.frag = $.nodes([
|
this.frag = $.nodes([
|
||||||
$.tn(' '), $.el('a', {
|
$.tn(' '), $.el('a', {
|
||||||
className: 'backlink'
|
className: 'backlink'
|
||||||
@ -7462,7 +7459,7 @@
|
|||||||
_ref = this.nodes.backlinks;
|
_ref = this.nodes.backlinks;
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
backlink = _ref[_i];
|
backlink = _ref[_i];
|
||||||
QuoteMarkers.parseQuotelink(this, backlink, true, QuoteBacklink.funk(Get.postDataFromLink(backlink).postID));
|
QuoteMarkers.parseQuotelink(this, backlink, true, Conf['backlink'].replace(/%id/g, Get.postDataFromLink(backlink).postID));
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -7485,7 +7482,7 @@
|
|||||||
frag = QuoteBacklink.frag.cloneNode(true);
|
frag = QuoteBacklink.frag.cloneNode(true);
|
||||||
a = frag.lastElementChild;
|
a = frag.lastElementChild;
|
||||||
a.href = Build.path(quoter.board.ID, quoter.thread.ID, quoter.ID);
|
a.href = Build.path(quoter.board.ID, quoter.thread.ID, quoter.ID);
|
||||||
a.textContent = text = QuoteBacklink.funk(quoter.ID);
|
a.textContent = text = Conf['backlink'].replace(/%id/g, quoter.ID);
|
||||||
if (quoter.isDead) {
|
if (quoter.isDead) {
|
||||||
$.addClass(a, 'deadlink');
|
$.addClass(a, 'deadlink');
|
||||||
}
|
}
|
||||||
@ -11397,7 +11394,7 @@
|
|||||||
link = _ref[_i];
|
link = _ref[_i];
|
||||||
try {
|
try {
|
||||||
if (link[0] !== '#') {
|
if (link[0] !== '#') {
|
||||||
links.push(this.createSauceLink(link.trim()));
|
links.push(link.trim());
|
||||||
}
|
}
|
||||||
} catch (_error) {
|
} catch (_error) {
|
||||||
err = _error;
|
err = _error;
|
||||||
@ -11415,21 +11412,27 @@
|
|||||||
cb: this.node
|
cb: this.node
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
createSauceLink: function(link) {
|
createSauceLink: function(link, post, a) {
|
||||||
var m, text;
|
var m, text;
|
||||||
link = link.replace(/%(T?URL|MD5|board|name)/g, function(parameter) {
|
link = link.replace(/%(T?URL|MD5|board|name)/g, function(parameter) {
|
||||||
var type;
|
var type;
|
||||||
return ((type = {
|
if (type = {
|
||||||
'%TURL': 'post.file.thumbURL',
|
'%TURL': post.file.thumbURL,
|
||||||
'%URL': 'post.file.URL',
|
'%URL': post.file.URL,
|
||||||
'%MD5': 'post.file.MD5',
|
'%MD5': post.file.MD5,
|
||||||
'%board': 'post.board',
|
'%board': post.board,
|
||||||
'%name': 'post.file.name'
|
'%name': post.file.name
|
||||||
}[parameter]) ? "' + encodeURIComponent(" + type + ") + '" : parameter);
|
}[parameter]) {
|
||||||
|
return encodeURIComponent(type);
|
||||||
|
} else {
|
||||||
|
return parameter;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
text = (m = link.match(/;text:(.+)$/)) ? m[1] : link.match(/(\w+)\.\w+\//)[1];
|
text = (m = link.match(/;text:(.+)$/)) ? m[1] : link.match(/(\w+)\.\w+\//)[1];
|
||||||
link = link.replace(/;text:.+$/, '');
|
link = link.replace(/;text:.+$/, '');
|
||||||
return Function('post', 'a', "a.href = '" + link + "';\na.textContent = '" + text + "';\nreturn a;");
|
a.href = link;
|
||||||
|
a.textContent = text;
|
||||||
|
return a;
|
||||||
},
|
},
|
||||||
node: function() {
|
node: function() {
|
||||||
var link, nodes, _i, _len, _ref;
|
var link, nodes, _i, _len, _ref;
|
||||||
@ -11440,7 +11443,7 @@
|
|||||||
_ref = Sauce.links;
|
_ref = Sauce.links;
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
link = _ref[_i];
|
link = _ref[_i];
|
||||||
nodes.push($.tn('\u00A0'), link(this, Sauce.link.cloneNode(true)));
|
nodes.push($.tn('\u00A0'), Sauce.createSauceLink(link, this, Sauce.link.cloneNode(true)));
|
||||||
}
|
}
|
||||||
return $.add(this.file.text, nodes);
|
return $.add(this.file.text, nodes);
|
||||||
}
|
}
|
||||||
@ -13230,7 +13233,7 @@
|
|||||||
}
|
}
|
||||||
return Redirect.data = o;
|
return Redirect.data = o;
|
||||||
},
|
},
|
||||||
archives: [{"uid":0,"name":"Moe","domain":"archive.moe","http":true,"https":true,"software":"foolfuuka","boards":["a","biz","c","co","diy","gd","int","jp","m","out","po","sci","sp","tg","tv","v","vg","vp","vr","wsg"],"files":["a","biz","c","co","diy","gd","jp","m","po","sci","tg","v","vg","vp","vr","wsg"]},{"uid":1,"name":"NSFW Moe","domain":"nsfw.archive.moe","http":true,"https":true,"software":"foolfuuka","boards":["h","u"],"files":["h","u"]},{"uid":3,"name":"4plebs Archive","domain":"archive.4plebs.org","http":true,"https":true,"software":"foolfuuka","boards":["adv","f","hr","o","pol","s4s","tg","trv","tv","x"],"files":["adv","f","hr","o","pol","s4s","tg","trv","tv","x"]},{"uid":5,"name":"Love is Over","domain":"archive.loveisover.me","http":true,"https":true,"software":"foolfuuka","boards":["c","d","e","i","lgbt","t","u","w","wg"],"files":["c","d","e","i","lgbt","t","u","w","wg"]},{"uid":8,"name":"Rebecca Black Tech","domain":"archive.rebeccablacktech.com","http":false,"https":true,"software":"fuuka","boards":["cgl","g","mu","w"],"files":["cgl","g","mu","w"]},{"uid":9,"name":"Heinessen","domain":"archive.heinessen.com","http":true,"https":false,"software":"fuuka","boards":["an","fit","k","mlp","r9k","toy"],"files":["an","fit","k","mlp","r9k","toy"]},{"uid":10,"name":"warosu","domain":"warosu.org","http":false,"https":true,"software":"fuuka","boards":["3","biz","cgl","ck","diy","fa","g","ic","jp","lit","sci","tg","vr"],"files":["3","biz","cgl","ck","diy","fa","ic","jp","lit","sci","tg","vr"]},{"uid":15,"name":"fgts","domain":"fgts.jp","http":true,"https":true,"software":"foolfuuka","boards":["asp","cm","h","hc","hm","n","p","r","s","soc","y"],"files":["asp","cm","h","hc","hm","n","p","r","s","soc","y"]},{"uid":16,"name":"maware","domain":"archive.mawa.re","http":true,"https":false,"software":"foolfuuka","boards":["t"],"files":["t"]}],
|
archives: [{"uid":0,"name":"Moe","domain":"archive.moe","http":true,"https":true,"software":"foolfuuka","boards":["a","biz","c","co","diy","gd","int","jp","m","out","po","sci","sp","tg","tv","v","vg","vp","vr","wsg"],"files":["a","biz","c","co","diy","gd","jp","m","po","sci","tg","v","vg","vp","vr","wsg"]},{"uid":1,"name":"NSFW Moe","domain":"nsfw.archive.moe","http":true,"https":true,"software":"foolfuuka","boards":["h","u"],"files":["h","u"]},{"uid":3,"name":"4plebs Archive","domain":"archive.4plebs.org","http":true,"https":true,"software":"foolfuuka","boards":["adv","f","hr","o","pol","s4s","tg","trv","tv","x"],"files":["adv","f","hr","o","pol","s4s","tg","trv","tv","x"]},{"uid":5,"name":"Love is Over","domain":"archive.loveisover.me","http":true,"https":true,"software":"foolfuuka","boards":["c","d","e","i","lgbt","t","u","w","wg"],"files":["c","d","e","i","lgbt","t","u","w","wg"]},{"uid":8,"name":"Rebecca Black Tech","domain":"archive.rebeccablacktech.com","http":false,"https":true,"software":"fuuka","boards":["cgl","g","mu","w"],"files":["cgl","g","mu","w"]},{"uid":9,"name":"Heinessen","domain":"archive.heinessen.com","http":true,"https":false,"software":"fuuka","boards":["an","fit","k","mlp","r9k","toy"],"files":["an","fit","k","mlp","r9k","toy"]},{"uid":10,"name":"warosu","domain":"warosu.org","http":false,"https":true,"software":"fuuka","boards":["3","biz","cgl","ck","diy","fa","g","ic","jp","lit","sci","tg","vr"],"files":["3","biz","cgl","ck","diy","fa","ic","jp","lit","sci","tg","vr"]},{"uid":15,"name":"fgts","domain":"fgts.jp","http":true,"https":true,"software":"foolfuuka","boards":["asp","cm","h","hc","hm","n","p","r","s","soc","y"],"files":["asp","cm","h","hc","hm","n","p","r","s","soc","y"]},{"uid":16,"name":"maware","domain":"archive.mawa.re","http":true,"https":false,"software":"foolfuuka","boards":["t"],"files":["t"]},{"uid":17,"name":"imcute","domain":"imcute.yt","http":true,"https":false,"software":"foolfuuka","boards":["gif","jp","vg"],"files":["gif","jp","vg"]}],
|
||||||
to: function(dest, data) {
|
to: function(dest, data) {
|
||||||
var archive;
|
var archive;
|
||||||
archive = (dest === 'search' || dest === 'board' ? Redirect.data.thread : Redirect.data[dest])[data.boardID];
|
archive = (dest === 'search' || dest === 'board' ? Redirect.data.thread : Redirect.data[dest])[data.boardID];
|
||||||
@ -13368,6 +13371,15 @@
|
|||||||
"software": "foolfuuka",
|
"software": "foolfuuka",
|
||||||
"boards": ["t"],
|
"boards": ["t"],
|
||||||
"files": ["t"]
|
"files": ["t"]
|
||||||
|
}, {
|
||||||
|
"uid": 17,
|
||||||
|
"name": "imcute",
|
||||||
|
"domain": "imcute.yt",
|
||||||
|
"http": true,
|
||||||
|
"https": false,
|
||||||
|
"software": "foolfuuka",
|
||||||
|
"boards": ["gif", "jp", "vg"],
|
||||||
|
"files": ["gif", "jp", "vg"]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -15311,7 +15323,6 @@
|
|||||||
if (!Conf['File Info Formatting']) {
|
if (!Conf['File Info Formatting']) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.funk = this.createFunc(Conf['fileInfo']);
|
|
||||||
return Post.callbacks.push({
|
return Post.callbacks.push({
|
||||||
name: 'File Info Formatting',
|
name: 'File Info Formatting',
|
||||||
cb: this.node
|
cb: this.node
|
||||||
@ -15321,18 +15332,16 @@
|
|||||||
if (!this.file || this.isClone) {
|
if (!this.file || this.isClone) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return this.file.text.innerHTML = "<span class=file-info>" + (FileInfo.funk(FileInfo, this)) + "</span>";
|
return this.file.text.innerHTML = "<span class=file-info>" + (FileInfo.format(Conf['fileInfo'], this)) + "</span>";
|
||||||
},
|
},
|
||||||
createFunc: function(format) {
|
format: function(formatString, post) {
|
||||||
var code;
|
return formatString.replace(/%([A-Za-z])/g, function(s, c) {
|
||||||
code = format.replace(/%(.)/g, function(s, c) {
|
|
||||||
if (c in FileInfo.formatters) {
|
if (c in FileInfo.formatters) {
|
||||||
return "' + FileInfo.formatters." + c + ".call(post) + '";
|
return FileInfo.formatters[c].call(post);
|
||||||
} else {
|
} else {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return Function('FileInfo', 'post', "return '" + code + "'");
|
|
||||||
},
|
},
|
||||||
convertUnit: function(size, unit) {
|
convertUnit: function(size, unit) {
|
||||||
var i;
|
var i;
|
||||||
@ -16167,7 +16176,6 @@
|
|||||||
if (!Conf['Time Formatting']) {
|
if (!Conf['Time Formatting']) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.funk = this.createFunc(Conf['time']);
|
|
||||||
return Post.callbacks.push({
|
return Post.callbacks.push({
|
||||||
name: 'Time Formatting',
|
name: 'Time Formatting',
|
||||||
cb: this.node
|
cb: this.node
|
||||||
@ -16177,18 +16185,16 @@
|
|||||||
if (this.isClone) {
|
if (this.isClone) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return this.nodes.date.textContent = Time.funk(Time, this.info.date);
|
return this.nodes.date.textContent = Time.format(Conf['time'], this.info.date);
|
||||||
},
|
},
|
||||||
createFunc: function(format) {
|
format: function(formatString, date) {
|
||||||
var code;
|
return formatString.replace(/%([A-Za-z])/g, function(s, c) {
|
||||||
code = format.replace(/%([A-Za-z])/g, function(s, c) {
|
|
||||||
if (c in Time.formatters) {
|
if (c in Time.formatters) {
|
||||||
return "' + Time.formatters." + c + ".call(date) + '";
|
return Time.formatters[c].call(date);
|
||||||
} else {
|
} else {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return Function('Time', 'date', "return '" + code + "'");
|
|
||||||
},
|
},
|
||||||
day: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
day: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
||||||
month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
|
month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
|
||||||
@ -17147,15 +17153,13 @@
|
|||||||
return Header.generateBoardList(this.value);
|
return Header.generateBoardList(this.value);
|
||||||
},
|
},
|
||||||
time: function() {
|
time: function() {
|
||||||
var funk;
|
return this.nextElementSibling.textContent = Time.format(this.value, new Date());
|
||||||
funk = Time.createFunc(this.value);
|
|
||||||
return this.nextElementSibling.textContent = funk(Time, new Date());
|
|
||||||
},
|
},
|
||||||
backlink: function() {
|
backlink: function() {
|
||||||
return this.nextElementSibling.textContent = this.value.replace(/%id/, '123456789');
|
return this.nextElementSibling.textContent = this.value.replace(/%id/g, '123456789');
|
||||||
},
|
},
|
||||||
fileInfo: function() {
|
fileInfo: function() {
|
||||||
var data, funk;
|
var data;
|
||||||
data = {
|
data = {
|
||||||
isReply: true,
|
isReply: true,
|
||||||
file: {
|
file: {
|
||||||
@ -17169,8 +17173,7 @@
|
|||||||
isSpoiler: true
|
isSpoiler: true
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
funk = FileInfo.createFunc(this.value);
|
return this.nextElementSibling.innerHTML = FileInfo.format(this.value, data);
|
||||||
return this.nextElementSibling.innerHTML = funk(FileInfo, data);
|
|
||||||
},
|
},
|
||||||
favicon: function() {
|
favicon: function() {
|
||||||
Favicon.init();
|
Favicon.init();
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "appchan x",
|
"name": "appchan x",
|
||||||
"version": "2.9.37",
|
"version": "2.9.38",
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"description": "The most comprehensive 4chan userscript.",
|
"description": "The most comprehensive 4chan userscript.",
|
||||||
"icons": {
|
"icons": {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
// Generated by CoffeeScript
|
// Generated by CoffeeScript
|
||||||
/*
|
/*
|
||||||
* appchan x - Version 2.9.37 - 2014-12-08
|
* appchan x - Version 2.9.38 - 2014-12-08
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -454,7 +454,7 @@
|
|||||||
doc = d.documentElement;
|
doc = d.documentElement;
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '2.9.37',
|
VERSION: '2.9.38',
|
||||||
NAMESPACE: 'appchan_x.',
|
NAMESPACE: 'appchan_x.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -7429,12 +7429,9 @@
|
|||||||
|
|
||||||
QuoteBacklink = {
|
QuoteBacklink = {
|
||||||
init: function() {
|
init: function() {
|
||||||
var format;
|
|
||||||
if (!Conf['Quote Backlinks']) {
|
if (!Conf['Quote Backlinks']) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
format = Conf['backlink'].replace(/%id/g, "' + id + '");
|
|
||||||
this.funk = Function('id', "return '" + format + "'");
|
|
||||||
this.frag = $.nodes([
|
this.frag = $.nodes([
|
||||||
$.tn(' '), $.el('a', {
|
$.tn(' '), $.el('a', {
|
||||||
className: 'backlink'
|
className: 'backlink'
|
||||||
@ -7483,7 +7480,7 @@
|
|||||||
_ref = this.nodes.backlinks;
|
_ref = this.nodes.backlinks;
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
backlink = _ref[_i];
|
backlink = _ref[_i];
|
||||||
QuoteMarkers.parseQuotelink(this, backlink, true, QuoteBacklink.funk(Get.postDataFromLink(backlink).postID));
|
QuoteMarkers.parseQuotelink(this, backlink, true, Conf['backlink'].replace(/%id/g, Get.postDataFromLink(backlink).postID));
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -7506,7 +7503,7 @@
|
|||||||
frag = QuoteBacklink.frag.cloneNode(true);
|
frag = QuoteBacklink.frag.cloneNode(true);
|
||||||
a = frag.lastElementChild;
|
a = frag.lastElementChild;
|
||||||
a.href = Build.path(quoter.board.ID, quoter.thread.ID, quoter.ID);
|
a.href = Build.path(quoter.board.ID, quoter.thread.ID, quoter.ID);
|
||||||
a.textContent = text = QuoteBacklink.funk(quoter.ID);
|
a.textContent = text = Conf['backlink'].replace(/%id/g, quoter.ID);
|
||||||
if (quoter.isDead) {
|
if (quoter.isDead) {
|
||||||
$.addClass(a, 'deadlink');
|
$.addClass(a, 'deadlink');
|
||||||
}
|
}
|
||||||
@ -11380,7 +11377,7 @@
|
|||||||
link = _ref[_i];
|
link = _ref[_i];
|
||||||
try {
|
try {
|
||||||
if (link[0] !== '#') {
|
if (link[0] !== '#') {
|
||||||
links.push(this.createSauceLink(link.trim()));
|
links.push(link.trim());
|
||||||
}
|
}
|
||||||
} catch (_error) {
|
} catch (_error) {
|
||||||
err = _error;
|
err = _error;
|
||||||
@ -11398,21 +11395,27 @@
|
|||||||
cb: this.node
|
cb: this.node
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
createSauceLink: function(link) {
|
createSauceLink: function(link, post, a) {
|
||||||
var m, text;
|
var m, text;
|
||||||
link = link.replace(/%(T?URL|MD5|board|name)/g, function(parameter) {
|
link = link.replace(/%(T?URL|MD5|board|name)/g, function(parameter) {
|
||||||
var type;
|
var type;
|
||||||
return ((type = {
|
if (type = {
|
||||||
'%TURL': 'post.file.thumbURL',
|
'%TURL': post.file.thumbURL,
|
||||||
'%URL': 'post.file.URL',
|
'%URL': post.file.URL,
|
||||||
'%MD5': 'post.file.MD5',
|
'%MD5': post.file.MD5,
|
||||||
'%board': 'post.board',
|
'%board': post.board,
|
||||||
'%name': 'post.file.name'
|
'%name': post.file.name
|
||||||
}[parameter]) ? "' + encodeURIComponent(" + type + ") + '" : parameter);
|
}[parameter]) {
|
||||||
|
return encodeURIComponent(type);
|
||||||
|
} else {
|
||||||
|
return parameter;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
text = (m = link.match(/;text:(.+)$/)) ? m[1] : link.match(/(\w+)\.\w+\//)[1];
|
text = (m = link.match(/;text:(.+)$/)) ? m[1] : link.match(/(\w+)\.\w+\//)[1];
|
||||||
link = link.replace(/;text:.+$/, '');
|
link = link.replace(/;text:.+$/, '');
|
||||||
return Function('post', 'a', "a.href = '" + link + "';\na.textContent = '" + text + "';\nreturn a;");
|
a.href = link;
|
||||||
|
a.textContent = text;
|
||||||
|
return a;
|
||||||
},
|
},
|
||||||
node: function() {
|
node: function() {
|
||||||
var link, nodes, _i, _len, _ref;
|
var link, nodes, _i, _len, _ref;
|
||||||
@ -11423,7 +11426,7 @@
|
|||||||
_ref = Sauce.links;
|
_ref = Sauce.links;
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
link = _ref[_i];
|
link = _ref[_i];
|
||||||
nodes.push($.tn('\u00A0'), link(this, Sauce.link.cloneNode(true)));
|
nodes.push($.tn('\u00A0'), Sauce.createSauceLink(link, this, Sauce.link.cloneNode(true)));
|
||||||
}
|
}
|
||||||
return $.add(this.file.text, nodes);
|
return $.add(this.file.text, nodes);
|
||||||
}
|
}
|
||||||
@ -13212,7 +13215,7 @@
|
|||||||
}
|
}
|
||||||
return Redirect.data = o;
|
return Redirect.data = o;
|
||||||
},
|
},
|
||||||
archives: [{"uid":0,"name":"Moe","domain":"archive.moe","http":true,"https":true,"software":"foolfuuka","boards":["a","biz","c","co","diy","gd","int","jp","m","out","po","sci","sp","tg","tv","v","vg","vp","vr","wsg"],"files":["a","biz","c","co","diy","gd","jp","m","po","sci","tg","v","vg","vp","vr","wsg"]},{"uid":1,"name":"NSFW Moe","domain":"nsfw.archive.moe","http":true,"https":true,"software":"foolfuuka","boards":["h","u"],"files":["h","u"]},{"uid":3,"name":"4plebs Archive","domain":"archive.4plebs.org","http":true,"https":true,"software":"foolfuuka","boards":["adv","f","hr","o","pol","s4s","tg","trv","tv","x"],"files":["adv","f","hr","o","pol","s4s","tg","trv","tv","x"]},{"uid":5,"name":"Love is Over","domain":"archive.loveisover.me","http":true,"https":true,"software":"foolfuuka","boards":["c","d","e","i","lgbt","t","u","w","wg"],"files":["c","d","e","i","lgbt","t","u","w","wg"]},{"uid":8,"name":"Rebecca Black Tech","domain":"archive.rebeccablacktech.com","http":false,"https":true,"software":"fuuka","boards":["cgl","g","mu","w"],"files":["cgl","g","mu","w"]},{"uid":9,"name":"Heinessen","domain":"archive.heinessen.com","http":true,"https":false,"software":"fuuka","boards":["an","fit","k","mlp","r9k","toy"],"files":["an","fit","k","mlp","r9k","toy"]},{"uid":10,"name":"warosu","domain":"warosu.org","http":false,"https":true,"software":"fuuka","boards":["3","biz","cgl","ck","diy","fa","g","ic","jp","lit","sci","tg","vr"],"files":["3","biz","cgl","ck","diy","fa","ic","jp","lit","sci","tg","vr"]},{"uid":15,"name":"fgts","domain":"fgts.jp","http":true,"https":true,"software":"foolfuuka","boards":["asp","cm","h","hc","hm","n","p","r","s","soc","y"],"files":["asp","cm","h","hc","hm","n","p","r","s","soc","y"]},{"uid":16,"name":"maware","domain":"archive.mawa.re","http":true,"https":false,"software":"foolfuuka","boards":["t"],"files":["t"]}],
|
archives: [{"uid":0,"name":"Moe","domain":"archive.moe","http":true,"https":true,"software":"foolfuuka","boards":["a","biz","c","co","diy","gd","int","jp","m","out","po","sci","sp","tg","tv","v","vg","vp","vr","wsg"],"files":["a","biz","c","co","diy","gd","jp","m","po","sci","tg","v","vg","vp","vr","wsg"]},{"uid":1,"name":"NSFW Moe","domain":"nsfw.archive.moe","http":true,"https":true,"software":"foolfuuka","boards":["h","u"],"files":["h","u"]},{"uid":3,"name":"4plebs Archive","domain":"archive.4plebs.org","http":true,"https":true,"software":"foolfuuka","boards":["adv","f","hr","o","pol","s4s","tg","trv","tv","x"],"files":["adv","f","hr","o","pol","s4s","tg","trv","tv","x"]},{"uid":5,"name":"Love is Over","domain":"archive.loveisover.me","http":true,"https":true,"software":"foolfuuka","boards":["c","d","e","i","lgbt","t","u","w","wg"],"files":["c","d","e","i","lgbt","t","u","w","wg"]},{"uid":8,"name":"Rebecca Black Tech","domain":"archive.rebeccablacktech.com","http":false,"https":true,"software":"fuuka","boards":["cgl","g","mu","w"],"files":["cgl","g","mu","w"]},{"uid":9,"name":"Heinessen","domain":"archive.heinessen.com","http":true,"https":false,"software":"fuuka","boards":["an","fit","k","mlp","r9k","toy"],"files":["an","fit","k","mlp","r9k","toy"]},{"uid":10,"name":"warosu","domain":"warosu.org","http":false,"https":true,"software":"fuuka","boards":["3","biz","cgl","ck","diy","fa","g","ic","jp","lit","sci","tg","vr"],"files":["3","biz","cgl","ck","diy","fa","ic","jp","lit","sci","tg","vr"]},{"uid":15,"name":"fgts","domain":"fgts.jp","http":true,"https":true,"software":"foolfuuka","boards":["asp","cm","h","hc","hm","n","p","r","s","soc","y"],"files":["asp","cm","h","hc","hm","n","p","r","s","soc","y"]},{"uid":16,"name":"maware","domain":"archive.mawa.re","http":true,"https":false,"software":"foolfuuka","boards":["t"],"files":["t"]},{"uid":17,"name":"imcute","domain":"imcute.yt","http":true,"https":false,"software":"foolfuuka","boards":["gif","jp","vg"],"files":["gif","jp","vg"]}],
|
||||||
to: function(dest, data) {
|
to: function(dest, data) {
|
||||||
var archive;
|
var archive;
|
||||||
archive = (dest === 'search' || dest === 'board' ? Redirect.data.thread : Redirect.data[dest])[data.boardID];
|
archive = (dest === 'search' || dest === 'board' ? Redirect.data.thread : Redirect.data[dest])[data.boardID];
|
||||||
@ -13350,6 +13353,15 @@
|
|||||||
"software": "foolfuuka",
|
"software": "foolfuuka",
|
||||||
"boards": ["t"],
|
"boards": ["t"],
|
||||||
"files": ["t"]
|
"files": ["t"]
|
||||||
|
}, {
|
||||||
|
"uid": 17,
|
||||||
|
"name": "imcute",
|
||||||
|
"domain": "imcute.yt",
|
||||||
|
"http": true,
|
||||||
|
"https": false,
|
||||||
|
"software": "foolfuuka",
|
||||||
|
"boards": ["gif", "jp", "vg"],
|
||||||
|
"files": ["gif", "jp", "vg"]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -15299,7 +15311,6 @@
|
|||||||
if (!Conf['File Info Formatting']) {
|
if (!Conf['File Info Formatting']) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.funk = this.createFunc(Conf['fileInfo']);
|
|
||||||
return Post.callbacks.push({
|
return Post.callbacks.push({
|
||||||
name: 'File Info Formatting',
|
name: 'File Info Formatting',
|
||||||
cb: this.node
|
cb: this.node
|
||||||
@ -15309,18 +15320,16 @@
|
|||||||
if (!this.file || this.isClone) {
|
if (!this.file || this.isClone) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return this.file.text.innerHTML = "<span class=file-info>" + (FileInfo.funk(FileInfo, this)) + "</span>";
|
return this.file.text.innerHTML = "<span class=file-info>" + (FileInfo.format(Conf['fileInfo'], this)) + "</span>";
|
||||||
},
|
},
|
||||||
createFunc: function(format) {
|
format: function(formatString, post) {
|
||||||
var code;
|
return formatString.replace(/%([A-Za-z])/g, function(s, c) {
|
||||||
code = format.replace(/%(.)/g, function(s, c) {
|
|
||||||
if (c in FileInfo.formatters) {
|
if (c in FileInfo.formatters) {
|
||||||
return "' + FileInfo.formatters." + c + ".call(post) + '";
|
return FileInfo.formatters[c].call(post);
|
||||||
} else {
|
} else {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return Function('FileInfo', 'post', "return '" + code + "'");
|
|
||||||
},
|
},
|
||||||
convertUnit: function(size, unit) {
|
convertUnit: function(size, unit) {
|
||||||
var i;
|
var i;
|
||||||
@ -16155,7 +16164,6 @@
|
|||||||
if (!Conf['Time Formatting']) {
|
if (!Conf['Time Formatting']) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.funk = this.createFunc(Conf['time']);
|
|
||||||
return Post.callbacks.push({
|
return Post.callbacks.push({
|
||||||
name: 'Time Formatting',
|
name: 'Time Formatting',
|
||||||
cb: this.node
|
cb: this.node
|
||||||
@ -16165,18 +16173,16 @@
|
|||||||
if (this.isClone) {
|
if (this.isClone) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return this.nodes.date.textContent = Time.funk(Time, this.info.date);
|
return this.nodes.date.textContent = Time.format(Conf['time'], this.info.date);
|
||||||
},
|
},
|
||||||
createFunc: function(format) {
|
format: function(formatString, date) {
|
||||||
var code;
|
return formatString.replace(/%([A-Za-z])/g, function(s, c) {
|
||||||
code = format.replace(/%([A-Za-z])/g, function(s, c) {
|
|
||||||
if (c in Time.formatters) {
|
if (c in Time.formatters) {
|
||||||
return "' + Time.formatters." + c + ".call(date) + '";
|
return Time.formatters[c].call(date);
|
||||||
} else {
|
} else {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return Function('Time', 'date', "return '" + code + "'");
|
|
||||||
},
|
},
|
||||||
day: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
day: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
||||||
month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
|
month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
|
||||||
@ -17138,15 +17144,13 @@
|
|||||||
return Header.generateBoardList(this.value);
|
return Header.generateBoardList(this.value);
|
||||||
},
|
},
|
||||||
time: function() {
|
time: function() {
|
||||||
var funk;
|
return this.nextElementSibling.textContent = Time.format(this.value, new Date());
|
||||||
funk = Time.createFunc(this.value);
|
|
||||||
return this.nextElementSibling.textContent = funk(Time, new Date());
|
|
||||||
},
|
},
|
||||||
backlink: function() {
|
backlink: function() {
|
||||||
return this.nextElementSibling.textContent = this.value.replace(/%id/, '123456789');
|
return this.nextElementSibling.textContent = this.value.replace(/%id/g, '123456789');
|
||||||
},
|
},
|
||||||
fileInfo: function() {
|
fileInfo: function() {
|
||||||
var data, funk;
|
var data;
|
||||||
data = {
|
data = {
|
||||||
isReply: true,
|
isReply: true,
|
||||||
file: {
|
file: {
|
||||||
@ -17160,8 +17164,7 @@
|
|||||||
isSpoiler: true
|
isSpoiler: true
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
funk = FileInfo.createFunc(this.value);
|
return this.nextElementSibling.innerHTML = FileInfo.format(this.value, data);
|
||||||
return this.nextElementSibling.innerHTML = funk(FileInfo, data);
|
|
||||||
},
|
},
|
||||||
favicon: function() {
|
favicon: function() {
|
||||||
Favicon.init();
|
Favicon.init();
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "appchan-x",
|
"name": "appchan-x",
|
||||||
"version": "2.9.37",
|
"version": "2.9.38",
|
||||||
"description": "The most comprehensive 4chan userscript.",
|
"description": "The most comprehensive 4chan userscript.",
|
||||||
"meta": {
|
"meta": {
|
||||||
"name": "appchan x",
|
"name": "appchan x",
|
||||||
|
|||||||
@ -79,4 +79,13 @@
|
|||||||
"software": "foolfuuka",
|
"software": "foolfuuka",
|
||||||
"boards": ["t"],
|
"boards": ["t"],
|
||||||
"files": ["t"]
|
"files": ["t"]
|
||||||
|
}, {
|
||||||
|
"uid": 17,
|
||||||
|
"name": "imcute",
|
||||||
|
"domain": "imcute.yt",
|
||||||
|
"http": true,
|
||||||
|
"https": false,
|
||||||
|
"software": "foolfuuka",
|
||||||
|
"boards": ["gif", "jp", "vg"],
|
||||||
|
"files": ["gif", "jp", "vg"]
|
||||||
}]
|
}]
|
||||||
|
|||||||
@ -348,11 +348,10 @@ Settings =
|
|||||||
Header.generateBoardList @value
|
Header.generateBoardList @value
|
||||||
|
|
||||||
time: ->
|
time: ->
|
||||||
funk = Time.createFunc @value
|
@nextElementSibling.textContent = Time.format @value, new Date()
|
||||||
@nextElementSibling.textContent = funk Time, new Date()
|
|
||||||
|
|
||||||
backlink: ->
|
backlink: ->
|
||||||
@nextElementSibling.textContent = @value.replace /%id/, '123456789'
|
@nextElementSibling.textContent = @value.replace /%id/g, '123456789'
|
||||||
|
|
||||||
fileInfo: ->
|
fileInfo: ->
|
||||||
data =
|
data =
|
||||||
@ -366,8 +365,7 @@ Settings =
|
|||||||
isImage: true
|
isImage: true
|
||||||
isVideo: false
|
isVideo: false
|
||||||
isSpoiler: true
|
isSpoiler: true
|
||||||
funk = FileInfo.createFunc @value
|
@nextElementSibling.innerHTML = FileInfo.format @value, data
|
||||||
@nextElementSibling.innerHTML = funk FileInfo, data
|
|
||||||
|
|
||||||
favicon: ->
|
favicon: ->
|
||||||
Favicon.init()
|
Favicon.init()
|
||||||
|
|||||||
@ -5,7 +5,7 @@ Sauce =
|
|||||||
links = []
|
links = []
|
||||||
for link in Conf['sauces'].split '\n'
|
for link in Conf['sauces'].split '\n'
|
||||||
try
|
try
|
||||||
links.push @createSauceLink link.trim() if link[0] isnt '#'
|
links.push link.trim() if link[0] isnt '#'
|
||||||
catch err
|
catch err
|
||||||
# Don't add random text plz.
|
# Don't add random text plz.
|
||||||
return unless links.length
|
return unless links.length
|
||||||
@ -14,29 +14,27 @@ Sauce =
|
|||||||
Post.callbacks.push
|
Post.callbacks.push
|
||||||
name: 'Sauce'
|
name: 'Sauce'
|
||||||
cb: @node
|
cb: @node
|
||||||
createSauceLink: (link) ->
|
createSauceLink: (link, post, a) ->
|
||||||
link = link.replace /%(T?URL|MD5|board|name)/g, (parameter) ->
|
link = link.replace /%(T?URL|MD5|board|name)/g, (parameter) ->
|
||||||
return (if type = {
|
if type = {
|
||||||
'%TURL': 'post.file.thumbURL'
|
'%TURL': post.file.thumbURL
|
||||||
'%URL': 'post.file.URL'
|
'%URL': post.file.URL
|
||||||
'%MD5': 'post.file.MD5'
|
'%MD5': post.file.MD5
|
||||||
'%board': 'post.board'
|
'%board': post.board
|
||||||
'%name': 'post.file.name'
|
'%name': post.file.name
|
||||||
}[parameter]
|
}[parameter]
|
||||||
"' + encodeURIComponent(#{type}) + '"
|
encodeURIComponent(type)
|
||||||
else
|
else
|
||||||
parameter)
|
parameter
|
||||||
text = if m = link.match(/;text:(.+)$/) then m[1] else link.match(/(\w+)\.\w+\//)[1]
|
text = if m = link.match(/;text:(.+)$/) then m[1] else link.match(/(\w+)\.\w+\//)[1]
|
||||||
link = link.replace /;text:.+$/, ''
|
link = link.replace /;text:.+$/, ''
|
||||||
Function 'post', 'a', """
|
a.href = link
|
||||||
a.href = '#{link}';
|
a.textContent = text
|
||||||
a.textContent = '#{text}';
|
a
|
||||||
return a;
|
|
||||||
"""
|
|
||||||
node: ->
|
node: ->
|
||||||
return if @isClone or !@file
|
return if @isClone or !@file
|
||||||
nodes = []
|
nodes = []
|
||||||
for link in Sauce.links
|
for link in Sauce.links
|
||||||
# \u00A0 is nbsp
|
# \u00A0 is nbsp
|
||||||
nodes.push $.tn('\u00A0'), link @, Sauce.link.cloneNode true
|
nodes.push $.tn('\u00A0'), (Sauce.createSauceLink link, @, Sauce.link.cloneNode true)
|
||||||
$.add @file.text, nodes
|
$.add @file.text, nodes
|
||||||
|
|||||||
@ -2,20 +2,18 @@ FileInfo =
|
|||||||
init: ->
|
init: ->
|
||||||
return if !Conf['File Info Formatting']
|
return if !Conf['File Info Formatting']
|
||||||
|
|
||||||
@funk = @createFunc Conf['fileInfo']
|
|
||||||
Post.callbacks.push
|
Post.callbacks.push
|
||||||
name: 'File Info Formatting'
|
name: 'File Info Formatting'
|
||||||
cb: @node
|
cb: @node
|
||||||
node: ->
|
node: ->
|
||||||
return if !@file or @isClone
|
return if !@file or @isClone
|
||||||
@file.text.innerHTML = "<span class=file-info>#{FileInfo.funk FileInfo, @}</span>"
|
@file.text.innerHTML = "<span class=file-info>#{FileInfo.format Conf['fileInfo'], @}</span>"
|
||||||
createFunc: (format) ->
|
format: (formatString, post) ->
|
||||||
code = format.replace /%(.)/g, (s, c) ->
|
formatString.replace /%([A-Za-z])/g, (s, c) ->
|
||||||
if c of FileInfo.formatters
|
if c of FileInfo.formatters
|
||||||
"' + FileInfo.formatters.#{c}.call(post) + '"
|
FileInfo.formatters[c].call(post)
|
||||||
else
|
else
|
||||||
s
|
s
|
||||||
Function 'FileInfo', 'post', "return '#{code}'"
|
|
||||||
convertUnit: (size, unit) ->
|
convertUnit: (size, unit) ->
|
||||||
if unit is 'B'
|
if unit is 'B'
|
||||||
return "#{size.toFixed()} Bytes"
|
return "#{size.toFixed()} Bytes"
|
||||||
|
|||||||
@ -2,20 +2,18 @@ Time =
|
|||||||
init: ->
|
init: ->
|
||||||
return if !Conf['Time Formatting']
|
return if !Conf['Time Formatting']
|
||||||
|
|
||||||
@funk = @createFunc Conf['time']
|
|
||||||
Post.callbacks.push
|
Post.callbacks.push
|
||||||
name: 'Time Formatting'
|
name: 'Time Formatting'
|
||||||
cb: @node
|
cb: @node
|
||||||
node: ->
|
node: ->
|
||||||
return if @isClone
|
return if @isClone
|
||||||
@nodes.date.textContent = Time.funk Time, @info.date
|
@nodes.date.textContent = Time.format Conf['time'], @info.date
|
||||||
createFunc: (format) ->
|
format: (formatString, date) ->
|
||||||
code = format.replace /%([A-Za-z])/g, (s, c) ->
|
formatString.replace /%([A-Za-z])/g, (s, c) ->
|
||||||
if c of Time.formatters
|
if c of Time.formatters
|
||||||
"' + Time.formatters.#{c}.call(date) + '"
|
Time.formatters[c].call(date)
|
||||||
else
|
else
|
||||||
s
|
s
|
||||||
Function 'Time', 'date', "return '#{code}'"
|
|
||||||
day: [
|
day: [
|
||||||
'Sunday'
|
'Sunday'
|
||||||
'Monday'
|
'Monday'
|
||||||
|
|||||||
@ -12,8 +12,6 @@ QuoteBacklink =
|
|||||||
init: ->
|
init: ->
|
||||||
return if !Conf['Quote Backlinks']
|
return if !Conf['Quote Backlinks']
|
||||||
|
|
||||||
format = Conf['backlink'].replace /%id/g, "' + id + '"
|
|
||||||
@funk = Function 'id', "return '#{format}'"
|
|
||||||
@frag = $.nodes [$.tn(' '), $.el 'a', className: 'backlink']
|
@frag = $.nodes [$.tn(' '), $.el 'a', className: 'backlink']
|
||||||
@map = {}
|
@map = {}
|
||||||
|
|
||||||
@ -43,7 +41,7 @@ QuoteBacklink =
|
|||||||
if @isClone
|
if @isClone
|
||||||
@nodes.backlinkContainer = $ '.backlink-container', @nodes.info
|
@nodes.backlinkContainer = $ '.backlink-container', @nodes.info
|
||||||
for backlink in @nodes.backlinks
|
for backlink in @nodes.backlinks
|
||||||
QuoteMarkers.parseQuotelink @, backlink, true, QuoteBacklink.funk Get.postDataFromLink(backlink).postID
|
QuoteMarkers.parseQuotelink @, backlink, true, Conf['backlink'].replace(/%id/g, Get.postDataFromLink(backlink).postID)
|
||||||
return
|
return
|
||||||
@nodes.backlinkContainer = container = $.el 'span',
|
@nodes.backlinkContainer = container = $.el 'span',
|
||||||
className: 'backlink-container'
|
className: 'backlink-container'
|
||||||
@ -57,7 +55,7 @@ QuoteBacklink =
|
|||||||
frag = QuoteBacklink.frag.cloneNode true
|
frag = QuoteBacklink.frag.cloneNode true
|
||||||
a = frag.lastElementChild
|
a = frag.lastElementChild
|
||||||
a.href = Build.path quoter.board.ID, quoter.thread.ID, quoter.ID
|
a.href = Build.path quoter.board.ID, quoter.thread.ID, quoter.ID
|
||||||
a.textContent = text = QuoteBacklink.funk quoter.ID
|
a.textContent = text = Conf['backlink'].replace /%id/g, quoter.ID
|
||||||
if quoter.isDead
|
if quoter.isDead
|
||||||
$.addClass a, 'deadlink'
|
$.addClass a, 'deadlink'
|
||||||
if quoter.isHidden
|
if quoter.isHidden
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user