Format when expanding threads as well as in quote preivews.

This commit is contained in:
ahodesuka 2012-02-21 05:15:36 -06:00
parent 2ebe086bc5
commit f79ee90b9f
2 changed files with 52 additions and 47 deletions

View File

@ -2288,8 +2288,7 @@
return $.id('backlinkPreview').textContent = conf['backlink'].replace(/%id/, '123456789'); return $.id('backlinkPreview').textContent = conf['backlink'].replace(/%id/, '123456789');
}, },
filesize: function() { filesize: function() {
Filesize.fsize = this.name; Filesize.fstype = this.name === 'filesizeR' ? 0 : 1;
Filesize.reply = this.name === 'filesizeR';
Filesize.getFormat(); Filesize.getFormat();
Filesize.data = { Filesize.data = {
link: '<a href="javascript:;">1329791824.png</a>', link: '<a href="javascript:;">1329791824.png</a>',
@ -2298,7 +2297,7 @@
width: 1366, width: 1366,
height: 768 height: 768
}; };
if (Filesize.reply) Filesize.data.filename = 'Untitled.png'; if (Filesize.fstype === 0) Filesize.data.filename = 'Untitled.png';
return $.id("" + this.name + "Preview").innerHTML = Filesize.funk(Filesize); return $.id("" + this.name + "Preview").innerHTML = Filesize.funk(Filesize);
}, },
favicon: function() { favicon: function() {
@ -2896,12 +2895,12 @@
Filesize = { Filesize = {
init: function() { init: function() {
Filesize.reply = g.REPLY; Filesize.fstype = g.REPLY ? 0 : 1;
Filesize.fsize = Filesize.reply ? 'filesizeR' : 'filesizeT'; Filesize.fsconf = ['filesizeR', 'filesizeT'];
Filesize.regEx = Filesize.reply ? /File:\s(<a.+<\/a>)-\(([\d\.]+)\s([BKM]{1,2}),\s(\d+)x(\d+),\s<span\stitle=\"([^\"]+)\">/ : Filesize.regEx = /File:\s(<a.+<\/a>)-\(([\d\.]+)\s([BKM]{1,2}),\s(\d+)x(\d+)\)/; Filesize.regEx = [/File:\s(<a.+<\/a>)-\(([\d\.]+)\s([BKM]{1,2}),\s(\d+)x(\d+),\s<span\stitle=\"([^\"]+)\">/, /File:\s(<a.+<\/a>)-\(([\d\.]+)\s([BKM]{1,2}),\s(\d+)x(\d+)\)/];
this.parse = function(node) { this.parse = function(node) {
var filename, height, link, size, unit, width, _, _ref; var filename, height, link, size, unit, width, _, _ref;
_ref = node.innerHTML.match(Filesize.regEx), _ = _ref[0], link = _ref[1], size = _ref[2], unit = _ref[3], width = _ref[4], height = _ref[5], filename = _ref[6]; _ref = node.innerHTML.match(Filesize.regEx[Filesize.fstype]), _ = _ref[0], link = _ref[1], size = _ref[2], unit = _ref[3], width = _ref[4], height = _ref[5], filename = _ref[6];
return { return {
'link': link, 'link': link,
'size': size, 'size': size,
@ -2916,19 +2915,17 @@
}, },
node: function(root) { node: function(root) {
var filesize, node; var filesize, node;
if (root.id === 'qp' || root.className === 'inline' || !(node = $('span.filesize', root))) { if (root.className === 'inline' || !(node = $('.filesize', root))) return;
return;
}
Filesize.data = Filesize.parse(node); Filesize.data = Filesize.parse(node);
filesize = $.el('span', { filesize = $.el('span', {
className: 'filesize', className: 'filesize',
innerHTML: ' ' + Filesize.funk(Filesize) + ' ' innerHTML: Filesize.funk(Filesize) + ' '
}); });
return $.replace(node, filesize); return $.replace(node, filesize);
}, },
getFormat: function() { getFormat: function() {
var code; var code;
code = conf[Filesize.fsize].replace(/%([BhKlMnsw])/g, function(s, c) { code = conf[Filesize.fsconf[Filesize.fstype]].replace(/%([BhKlMnsw])/g, function(s, c) {
if (c in Filesize.formatters) { if (c in Filesize.formatters) {
return "' + Filesize.formatters." + c + "() + '"; return "' + Filesize.formatters." + c + "() + '";
} else { } else {
@ -2937,21 +2934,21 @@
}); });
return Filesize.funk = Function('Filesize', "return '" + code + "'"); return Filesize.funk = Function('Filesize', "return '" + code + "'");
}, },
convertUnit: function(size, unitF, unitT) { convertUnit: function(unitT) {
var i, units; var i, size, unitF, units;
size = Filesize.data.size;
unitF = Filesize.data.unit;
if (unitF !== unitT) { if (unitF !== unitT) {
units = ['B', 'KB', 'MB']; units = ['B', 'KB', 'MB'];
i = units.indexOf(unitF) - units.indexOf(unitT); i = units.indexOf(unitF) - units.indexOf(unitT);
if (unitT === 'B') unitT = 'Bytes'; if (unitT === 'B') unitT = 'Bytes';
if (i > 0) { if (i > 0) {
while (i > 0) { while (i-- > 0) {
size *= 1024; size *= 1024;
--i;
} }
} else if (i < 0) { } else if (i < 0) {
while (i < 0) { while (i++ < 0) {
size /= 1024; size /= 1024;
++i;
} }
} }
if (size < 1 && size.toString().length > size.toFixed(2).toString.length) { if (size < 1 && size.toString().length > size.toFixed(2).toString.length) {
@ -2962,22 +2959,22 @@
}, },
formatters: { formatters: {
B: function() { B: function() {
return Filesize.convertUnit(Filesize.data.size, Filesize.data.unit, 'B'); return Filesize.convertUnit('B');
}, },
h: function() { h: function() {
return Filesize.data.height; return Filesize.data.height;
}, },
K: function() { K: function() {
return Filesize.convertUnit(Filesize.data.size, Filesize.data.unit, 'KB'); return Filesize.convertUnit('KB');
}, },
l: function() { l: function() {
return Filesize.data.link; return Filesize.data.link;
}, },
M: function() { M: function() {
return Filesize.convertUnit(Filesize.data.size, Filesize.data.unit, 'MB'); return Filesize.convertUnit('MB');
}, },
n: function() { n: function() {
if (Filesize.reply) { if (Filesize.fstype === 0) {
return Filesize.data.filename; return Filesize.data.filename;
} else { } else {
return '%n'; return '%n';
@ -3256,7 +3253,9 @@
qp.innerHTML = html; qp.innerHTML = html;
if (conf['Image Auto-Gif']) imgGif.node(qp); if (conf['Image Auto-Gif']) imgGif.node(qp);
if (conf['Time Formatting']) Time.node(qp); if (conf['Time Formatting']) Time.node(qp);
if (conf['Filesize Formatting']) return Filesize.node(qp); if (conf['Filesize Formatting']) {
if (id !== threadID) return Filesize.node(qp);
}
} }
}; };
@ -3794,6 +3793,10 @@
} }
nodes = $$('.op, a + table', form); nodes = $$('.op, a + table', form);
Main.node(nodes, true); Main.node(nodes, true);
if (!g.REPLY && conf['Filesize Formatting']) {
Filesize.fstype = 0;
Filesize.getFormat();
}
if (MutationObserver = window.WebKitMutationObserver || window.MozMutationObserver || window.OMutationObserver || window.MutationObserver) { if (MutationObserver = window.WebKitMutationObserver || window.MozMutationObserver || window.OMutationObserver || window.MutationObserver) {
observer = new MutationObserver(Main.observer); observer = new MutationObserver(Main.observer);
return observer.observe(form, { return observer.observe(form, {

View File

@ -1847,8 +1847,7 @@ options =
backlink: -> backlink: ->
$.id('backlinkPreview').textContent = conf['backlink'].replace /%id/, '123456789' $.id('backlinkPreview').textContent = conf['backlink'].replace /%id/, '123456789'
filesize: () -> filesize: () ->
Filesize.fsize = @name Filesize.fstype = if @name is 'filesizeR' then 0 else 1
Filesize.reply = @name is 'filesizeR'
Filesize.getFormat() Filesize.getFormat()
Filesize.data = { Filesize.data = {
link : '<a href="javascript:;">1329791824.png</a>', link : '<a href="javascript:;">1329791824.png</a>',
@ -1857,7 +1856,7 @@ options =
width : 1366, width : 1366,
height : 768 height : 768
} }
Filesize.data.filename = 'Untitled.png' if Filesize.reply Filesize.data.filename = 'Untitled.png' if Filesize.fstype is 0
$.id("#{@name}Preview").innerHTML = Filesize.funk Filesize $.id("#{@name}Preview").innerHTML = Filesize.funk Filesize
favicon: -> favicon: ->
Favicon.switch() Favicon.switch()
@ -2337,12 +2336,13 @@ Time =
Filesize = Filesize =
init: -> init: ->
Filesize.reply = g.REPLY Filesize.fstype = if g.REPLY then 0 else 1
Filesize.fsize = if Filesize.reply then 'filesizeR' else 'filesizeT' Filesize.fsconf = [ 'filesizeR', 'filesizeT' ]
Filesize.regEx = if Filesize.reply then /File:\s(<a.+<\/a>)-\(([\d\.]+)\s([BKM]{1,2}),\s(\d+)x(\d+),\s<span\stitle=\"([^\"]+)\">/ else Filesize.regEx = /File:\s(<a.+<\/a>)-\(([\d\.]+)\s([BKM]{1,2}),\s(\d+)x(\d+)\)/ Filesize.regEx = [ /File:\s(<a.+<\/a>)-\(([\d\.]+)\s([BKM]{1,2}),\s(\d+)x(\d+),\s<span\stitle=\"([^\"]+)\">/,
/File:\s(<a.+<\/a>)-\(([\d\.]+)\s([BKM]{1,2}),\s(\d+)x(\d+)\)/ ]
@parse = (node) -> @parse = (node) ->
[_, link, size, unit, width, height, filename] = [_, link, size, unit, width, height, filename] =
node.innerHTML.match Filesize.regEx node.innerHTML.match Filesize.regEx[Filesize.fstype]
{ {
'link' : link, 'link' : link,
'size' : size, 'size' : size,
@ -2355,42 +2355,40 @@ Filesize =
Filesize.getFormat() Filesize.getFormat()
g.callbacks.push @node g.callbacks.push @node
node: (root) -> node: (root) ->
return if root.id is 'qp' or root.className is 'inline' or not node = $ 'span.filesize', root return if root.className is 'inline' or not node = $ '.filesize', root
Filesize.data = Filesize.parse node Filesize.data = Filesize.parse node
filesize = $.el 'span', filesize = $.el 'span',
className: 'filesize', className: 'filesize',
innerHTML: ' ' + Filesize.funk(Filesize) + ' ' innerHTML: Filesize.funk(Filesize) + ' '
$.replace node, filesize $.replace node, filesize
getFormat: -> getFormat: ->
code = conf[Filesize.fsize].replace /%([BhKlMnsw])/g, (s, c) -> code = conf[Filesize.fsconf[Filesize.fstype]].replace /%([BhKlMnsw])/g, (s, c) ->
if c of Filesize.formatters if c of Filesize.formatters
"' + Filesize.formatters.#{c}() + '" "' + Filesize.formatters.#{c}() + '"
else else
s s
Filesize.funk = Function 'Filesize', "return '#{code}'" Filesize.funk = Function 'Filesize', "return '#{code}'"
convertUnit: (size, unitF, unitT) -> convertUnit: (unitT) ->
size = Filesize.data.size
unitF = Filesize.data.unit
if unitF isnt unitT if unitF isnt unitT
units = [ 'B', 'KB', 'MB' ] units = [ 'B', 'KB', 'MB' ]
i = units.indexOf(unitF) - units.indexOf(unitT) i = units.indexOf(unitF) - units.indexOf(unitT)
unitT = 'Bytes' if unitT is 'B' unitT = 'Bytes' if unitT is 'B'
if i > 0 if i > 0
while i > 0 size *= 1024 while i-- > 0
size *= 1024
--i
else if i < 0 else if i < 0
while i < 0 size /= 1024 while i++ < 0
size /= 1024
++i
if size < 1 and size.toString().length > size.toFixed(2).toString.length if size < 1 and size.toString().length > size.toFixed(2).toString.length
size = size.toFixed 2 size = size.toFixed 2
"#{size} #{unitT}" "#{size} #{unitT}"
formatters: formatters:
B: -> Filesize.convertUnit Filesize.data.size, Filesize.data.unit, 'B' B: -> Filesize.convertUnit 'B'
h: -> Filesize.data.height h: -> Filesize.data.height
K: -> Filesize.convertUnit Filesize.data.size, Filesize.data.unit, 'KB' K: -> Filesize.convertUnit 'KB'
l: -> Filesize.data.link l: -> Filesize.data.link
M: -> Filesize.convertUnit Filesize.data.size, Filesize.data.unit, 'MB' M: -> Filesize.convertUnit 'MB'
n: -> return if Filesize.reply then Filesize.data.filename else '%n' n: -> if Filesize.fstype is 0 then Filesize.data.filename else '%n'
s: -> "#{Filesize.data.size} #{Filesize.data.unit}" s: -> "#{Filesize.data.size} #{Filesize.data.unit}"
w: -> Filesize.data.width w: -> Filesize.data.width
@ -2590,11 +2588,11 @@ quotePreview =
break break
qp.innerHTML = html qp.innerHTML = html
if conf['Image Auto-Gif'] if conf['Image Auto-Gif']
imgGif.node qp imgGif.node qp
if conf['Time Formatting'] if conf['Time Formatting']
Time.node qp Time.node qp
if conf['Filesize Formatting'] if conf['Filesize Formatting']
Filesize.node qp Filesize.node qp if id isnt threadID
quoteIndicators = quoteIndicators =
init: -> init: ->
@ -3086,6 +3084,10 @@ Main =
nodes = $$ '.op, a + table', form nodes = $$ '.op, a + table', form
Main.node nodes, true Main.node nodes, true
if not g.REPLY and conf['Filesize Formatting']
Filesize.fstype = 0
Filesize.getFormat()
if MutationObserver = window.WebKitMutationObserver or window.MozMutationObserver or window.OMutationObserver or window.MutationObserver if MutationObserver = window.WebKitMutationObserver or window.MozMutationObserver or window.OMutationObserver or window.MutationObserver
observer = new MutationObserver Main.observer observer = new MutationObserver Main.observer
observer.observe form, observer.observe form,