diff --git a/4chan_x.user.js b/4chan_x.user.js index 35157a99f..a3c4b72e7 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3102,7 +3102,7 @@ } }, parseArchivedPost: function(req, board, postID, root, cb) { - var bq, br, capcode, data, email, file, filesize, isOP, name, nameBlock, pc, pi, piM, span, subject, threadID, timestamp, trip; + var bq, br, capcode, data, email, file, filename, filesize, isOP, max, name, nameBlock, pc, pi, piM, span, subject, threadID, timestamp, trip; data = JSON.parse(req.response); $.addClass(root, 'archivedPost'); if (data.error) { @@ -3227,7 +3227,7 @@ innerHTML: "
" }); $.add(pc.firstChild, [piM, pi, bq]); - if (data.media_filename) { + if (filename = data.media_filename) { file = $.el('div', { id: "f" + postID, className: 'file' @@ -3238,8 +3238,9 @@ innerHTML: "File: " + data.media_orig + "-(" + (data.spoiler === '1' ? 'Spoiler Image, ' : '') + filesize + ", " + data.media_w + "x" + data.media_h + ", )" })); span = $('span[title]', file); - span.title = data.media_filename; - span.textContent = data.media_filename.length < 40 ? data.media_filename : "" + data.media_filename.slice(0, 30) + "(...)" + data.media_filename.slice(-4); + span.title = filename; + max = isOP ? 40 : 30; + span.textContent = filename.replace(/\.w+$/, '').length > max ? "" + filename.slice(0, max) + "(...)" + (filename.match(/\.w+$/)) : filename; $.add(file, $.el('a', { className: 'fileThumb', href: data.media_link || data.remote_media_link, diff --git a/script.coffee b/script.coffee index 2d766a48c..8457f015f 100644 --- a/script.coffee +++ b/script.coffee @@ -2510,7 +2510,7 @@ Get = $.add pc.firstChild, [piM, pi, bq] # file - if data.media_filename + if filename = data.media_filename file = $.el 'div', id: "f#{postID}" className: 'file' @@ -2519,12 +2519,18 @@ Get = className: 'fileInfo' innerHTML: "File: #{data.media_orig}-(#{if data.spoiler is '1' then 'Spoiler Image, ' else ''}#{filesize}, #{data.media_w}x#{data.media_h}, )" span = $ 'span[title]', file - span.title = data.media_filename + span.title = filename + max = if isOP then 40 else 30 span.textContent = - if data.media_filename.length < 40 - data.media_filename + # FILENAME SHORTENING SCIENCE: + # OPs have +10 characters max. + # The file extension is not taken into account. + # abcdefghijklmnopqrstuvwxyz_1234.jpg is shortened. + # abcdefghijklmnopqrstuvwxyz_123.jpg is not shortened. + if filename.replace(/\.w+$/, '').length > max + "#{filename[...max]}(...)#{filename.match(/\.w+$/)}" else - "#{data.media_filename[...30]}(...)#{data.media_filename[-4...]}" + filename $.add file, $.el 'a', className: 'fileThumb' href: data.media_link or data.remote_media_link