From 4f6829c5186526db242e1d47b916dc4856aa10f2 Mon Sep 17 00:00:00 2001 From: Matěj Cepl Date: Thu, 19 Aug 2010 14:17:30 -0400 Subject: Make skipping attachments working - add attachment.cgi$ to skipMatches regexp - NotLoggedinException should be caught in main.js not in rhbzpage.js Fixes #41 New release 0.18 --- lib/main.js | 20 +++++++++++++------- lib/rhbzpage.js | 11 +---------- package.json | 2 +- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/lib/main.js b/lib/main.js index a8bae4c..25498d6 100644 --- a/lib/main.js +++ b/lib/main.js @@ -39,15 +39,13 @@ function isOurPage(window, matchingURLs) { */ function skipThisPage(doc) { var stemURL = "https://HOSTNAME/show_bug.cgi?id="; - var titleStr = doc.getElementsByTagName("title")[0].textContent; + var titleElems = doc.getElementsByTagName("title"); + console.log("titleElems.length = " + titleElems.length); + var titleStr = titleElems[0].textContent; var REArr = new RegExp("[bB]ug\\s+([0-9]+)").exec(titleStr); var hostname = doc.location.hostname; if (REArr) { var bugNo = REArr[1]; - var emailsSent = doc. - querySelector("#bugzilla-body > dl:nth-of-type(1)").textContent; - emailsSent = emailsSent.replace(/^(\s*)$/mg,""); - prompts.notification(emailsSent); doc.location = stemURL.replace("HOSTNAME",hostname) + bugNo; } } @@ -102,7 +100,7 @@ function initialize(callback) { config.matches = config.gJSONData.configData.matches; config.skipMatches = config.matches.map(function(x) { - return x.replace("show_bug.cgi.*","(process|post)_bug.cgi"); + return x.replace("show_bug.cgi.*","((process|post)_bug|attachment)\.cgi$"); }); callback(config); @@ -126,7 +124,15 @@ exports.main = function main(options, callbacks) { construct = require("mozillabzpage").MozillaBugzilla; } if (isOurPage(window, config.matches)) { - var curPage = new construct(window, config); + try { + var curPage = new construct(window, config); + } catch (ex) { + if (ex instanceof require("bzpage").NotLoggedinException) { + return ; // Bail out if the user is not logged in + } else { + throw ex; // rethrow the exception otherwise + } + } } else if (isOurPage(window, config.skipMatches)) { skipThisPage(window.document); } diff --git a/lib/rhbzpage.js b/lib/rhbzpage.js index e858145..b55e44b 100644 --- a/lib/rhbzpage.js +++ b/lib/rhbzpage.js @@ -21,16 +21,7 @@ var NumberOfFrames = require("bzpage").NumberOfFrames; var RHBugzillaPage = function RHBugzillaPage(win, config) { // inheritance ... call superobject's constructor - try { - BZPage.call(this, win, config); - } catch (ex) { - if (ex instanceof require("bzpage").NotLoggedinException) { - console.log(ex); - return ; // Bail out if the user is not logged in - } else { - throw ex; // rethrow the exception otherwise - } - } + BZPage.call(this, win, config); // For identification of graphics card this.manuChipStrs = [ [ "ATI Radeon", "ATI", "1002" ], diff --git a/package.json b/package.json index cf7237f..86328aa 100644 --- a/package.json +++ b/package.json @@ -7,5 +7,5 @@ "description": "Additional buttons and other function helping in the triage on bugzilla", "author": "Matej Cepl (http://matej.ceplovi.cz)", "license": "MIT/X11 (http://opensource.org/licenses/mit-license.php)", - "version": "0.17" + "version": "0.18" } -- cgit