From 9ff23622a0ffb62a200d1710e8d0c9e8ee795919 Mon Sep 17 00:00:00 2001 From: Calvin Montgomery Date: Fri, 8 Aug 2014 23:27:54 -0700 Subject: [PATCH] Fix a minor matching issue for google docs --- lib/get-info.js | 3 +-- lib/safe-regex.js | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 lib/safe-regex.js diff --git a/lib/get-info.js b/lib/get-info.js index f1acffa6..6459ad40 100644 --- a/lib/get-info.js +++ b/lib/get-info.js @@ -707,7 +707,7 @@ var Getters = { * Match [[anything]] and ignore whitespace * Fix 2014-08-07: [^] matches \r\n, . doesn't. */ - var m = res.match(/(\[\s*\[[^\[][^]*?\]\s*\])/); + var m = res.match(/\[(\[\s*\[[^\[][^]*?\]\s*\])/); try { var propertyList = JSON.parse(m[1]); var data = {}; @@ -751,7 +751,6 @@ var Getters = { callback(null, new Media(id, title, seconds, "gd", { gpdirect: direct })); } catch (e) { - console.error(e); return callback("Failed to parse Google Docs output", null); } }); diff --git a/lib/safe-regex.js b/lib/safe-regex.js new file mode 100644 index 00000000..824a04c7 --- /dev/null +++ b/lib/safe-regex.js @@ -0,0 +1,17 @@ +var starHeightSafe = require("safe-regex"); +var parse = require("ret"); + +module.exports = function (re) { + if (re.source) { + re = re.source; + } + + if (!starHeightSafe(re)) { + return false; + } + + var node = parse(re); + console.log(require('util').inspect(node.stack)); + console.log(parse.types); + return true; +};