From 06d7b755582c4d9b4f0694995a9d5488aea628c5 Mon Sep 17 00:00:00 2001 From: ccd0 Date: Mon, 11 Jan 2016 15:10:06 -0800 Subject: [PATCH] Don't run conversions of MD5 hash on every sauce link replacement. --- src/Images/Sauce.coffee | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/Images/Sauce.coffee b/src/Images/Sauce.coffee index 9452f0730..63bcf5a40 100644 --- a/src/Images/Sauce.coffee +++ b/src/Images/Sauce.coffee @@ -42,19 +42,8 @@ Sauce = skip = false for key of parts - parts[key] = parts[key].replace /%(T?URL|IMG|[sh]?MD5|board|name|%|semi)/g, (parameter) -> - type = { - '%TURL': post.file.thumbURL - '%URL': post.file.url - '%IMG': if ext in ['gif', 'jpg', 'png'] then post.file.url else post.file.thumbURL - '%MD5': post.file.MD5 - '%sMD5': post.file.MD5?.replace /[+/=]/g, (c) -> {'+': '-', '/': '_', '=': ''}[c] - '%hMD5': if post.file.MD5 then ("0#{c.charCodeAt(0).toString(16)}"[-2..] for c in atob post.file.MD5).join('') - '%board': post.board.ID - '%name': post.file.name - '%%': '%' - '%semi': ';' - }[parameter] + parts[key] = parts[key].replace /%(T?URL|IMG|[sh]?MD5|board|name|%|semi)/g, (_, parameter) -> + type = Sauce.formatters[parameter] post, ext if not type? skip = true return '' @@ -86,3 +75,15 @@ Sauce = # \u00A0 is nbsp nodes.push $.tn('\u00A0'), node $.add @file.text, nodes + + formatters: + TURL: (post) -> post.file.thumbURL + URL: (post) -> post.file.url + IMG: (post, ext) -> if ext in ['gif', 'jpg', 'png'] then post.file.url else post.file.thumbURL + MD5: (post) -> post.file.MD5 + sMD5: (post) -> post.file.MD5?.replace /[+/=]/g, (c) -> {'+': '-', '/': '_', '=': ''}[c] + hMD5: (post) -> if post.file.MD5 then ("0#{c.charCodeAt(0).toString(16)}"[-2..] for c in atob post.file.MD5).join('') + board: (post) -> post.board.ID + name: (post) -> post.file.name + '%': -> '%' + semi: -> ';'