]> git.ktnx.net Git - icedeb.git/blobdiff - chrome/content/icedeb.js
add a button showung buildd logs
[icedeb.git] / chrome / content / icedeb.js
index 391d2538bae14345cd8bbeafcd5620ba14009c92..742ca822dafc54c2a1631d55472f31e55995218b 100644 (file)
@@ -15,14 +15,18 @@ IceDeb = {
                 : clip.kGlobalClipboard
         );
 
-        var str = new Object;
-        var strLength = new Object;
-        trans.getTransferData("text/unicode", str, strLength);
+        var s = new Object;
+        var p;
+        var len = new Object;
+        trans.getTransferData("text/unicode", s, len);
 
         var text = null;
+        var res;
 
-        if (str) str  = str.value.QueryInterface(Components.interfaces.nsISupportsString);
-        if (str) text = str.data.substring(0, strLength.value / 2);
+        if (s)
+            p = s.value.QueryInterface(Components.interfaces.nsISupportsString, res);
+        if (p)
+            text = p.data.substring(0, len.value / 2);
 
         return text;
     },
@@ -33,10 +37,8 @@ IceDeb = {
         do {
             oldword = word;
 
-            word = word.replace(/^\s+/, '');
-            word = word.replace(/\s+$/, '');
-            word = word.replace(/^#/, '');
-            word = word.replace(/[-:\/,.]$/, '');
+            word = word.replace(/^[^a-zA-Z0-9]+/, '');
+            word = word.replace(/[^a-zA-Z0-9]+$/, '');
         } while ( oldword != word );
 
         return word;
@@ -83,6 +85,50 @@ IceDeb = {
             loadURI(uri);
         }
     },
+    lookup_ml: function(in_new) {
+        var msg_id = IceDeb.trim_keyword(IceDeb.getClipboardText());
+        if (!msg_id) msg_id = '';
+        var uri="http://lists.debian.org/msgid-search/" + msg_id;
+
+        if (in_new) {
+            var b = getBrowser();
+            var new_tab = b.addTab(uri);
+            b.selectedTab = new_tab;
+        }
+        else {
+            loadURI(uri);
+        }
+    },
+    lookup_ddpo: function(in_new) {
+        var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText());
+        var uri="http://qa.debian.org/developer.php";
+
+        if (keyword) uri += "?login=" + keyword;
+
+        if (in_new) {
+            var b = getBrowser();
+            var new_tab = b.addTab(uri);
+            b.selectedTab = new_tab;
+        }
+        else {
+            loadURI(uri);
+        }
+    },
+    lookup_buildd: function(in_new) {
+        var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText());
+        var uri="https://buildd.debian.org/";
+
+        if (keyword) uri += keyword;
+
+        if (in_new) {
+            var b = getBrowser();
+            var new_tab = b.addTab(uri);
+            b.selectedTab = new_tab;
+        }
+        else {
+            loadURI(uri);
+        }
+    },
 
     btsButton: function (e) {
         if ( e.button == 0 )
@@ -101,6 +147,24 @@ IceDeb = {
             IceDeb.lookup_deb(false)
         else if ( e.button == 1 )
             IceDeb.lookup_deb(true);
+    },
+    mlButton: function (e) {
+        if ( e.button == 0 )
+            IceDeb.lookup_ml(false)
+        else if ( e.button == 1 )
+            IceDeb.lookup_ml(true);
+    },
+    ddpoButton: function (e) {
+        if ( e.button == 0 )
+            IceDeb.lookup_ddpo(false)
+        else if ( e.button == 1 )
+            IceDeb.lookup_ddpo(true);
+    },
+    builddButton: function (e) {
+        if ( e.button == 0 )
+            IceDeb.lookup_buildd(false)
+        else if ( e.button == 1 )
+            IceDeb.lookup_buildd(true);
     }
 }