2 getClipboardText: function() {
3 var clip = Components.classes['@mozilla.org/widget/clipboard;1']
4 .getService(Components.interfaces.nsIClipboard);
5 if (!clip) return null;
7 var trans = Components.classes['@mozilla.org/widget/transferable;1']
8 .createInstance(Components.interfaces.nsITransferable);
9 if (!trans) return null;
11 if (typeof(trans.init) === 'function')
14 trans.addDataFlavor("text/unicode");
16 clip.supportsSelectionClipboard()
17 ? clip.kSelectionClipboard
18 : clip.kGlobalClipboard
24 trans.getTransferData("text/unicode", s, len);
30 p = s.value.QueryInterface(Components.interfaces.nsISupportsString, res);
32 text = p.data.substring(0, len.value / 2);
36 trim_keyword: function(word) {
37 if (!word) return word;
43 word = word.replace(/^[^a-zA-Z0-9]+/, '');
44 word = word.replace(/[^a-zA-Z0-9]+$/, '');
45 word = word.replace(/^Bug#/i, '');
46 } while ( oldword != word );
50 lookup_bts: function(in_new) {
51 var bug = IceDeb.trim_keyword(IceDeb.getClipboardText());
52 if (!bug) return null;
53 var uri="http://bugs.debian.org/" + bug;
57 var new_tab = b.addTab(uri);
58 b.selectedTab = new_tab;
64 lookup_pts: function(in_new) {
65 var pkg = IceDeb.trim_keyword(IceDeb.getClipboardText());
66 if (!pkg) return null;
67 var uri="http://packages.qa.debian.org/" + pkg;
71 var new_tab = b.addTab(uri);
72 b.selectedTab = new_tab;
78 lookup_deb: function(in_new) {
79 var pkg = IceDeb.trim_keyword(IceDeb.getClipboardText());
80 if (!pkg) return null;
81 var uri="http://packages.debian.org/" + pkg;
85 var new_tab = b.addTab(uri);
86 b.selectedTab = new_tab;
92 lookup_ml: function(in_new) {
93 var msg_id = IceDeb.trim_keyword(IceDeb.getClipboardText());
94 if (!msg_id) msg_id = '';
95 var uri="http://lists.debian.org/msgid-search/" + msg_id;
99 var new_tab = b.addTab(uri);
100 b.selectedTab = new_tab;
106 lookup_ddpo: function(in_new) {
107 var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText());
108 var uri="http://qa.debian.org/developer.php";
110 if (keyword) uri += "?login=" + keyword;
113 var b = getBrowser();
114 var new_tab = b.addTab(uri);
115 b.selectedTab = new_tab;
121 lookup_buildd: function(in_new) {
122 var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText());
123 var uri="https://buildd.debian.org/";
125 if (keyword) uri += keyword;
128 var b = getBrowser();
129 var new_tab = b.addTab(uri);
130 b.selectedTab = new_tab;
136 lookup_security: function(in_new) {
137 var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText());
138 var uri="http://security-tracker.debian.org/";
140 if (keyword) uri += "tracker/" + keyword;
143 var b = getBrowser();
144 var new_tab = b.addTab(uri);
145 b.selectedTab = new_tab;
152 btsButton: function (e) {
154 IceDeb.lookup_bts(false)
155 else if ( e.button == 1 )
156 IceDeb.lookup_bts(true);
158 ptsButton: function (e) {
160 IceDeb.lookup_pts(false)
161 else if ( e.button == 1 )
162 IceDeb.lookup_pts(true);
164 debButton: function (e) {
166 IceDeb.lookup_deb(false)
167 else if ( e.button == 1 )
168 IceDeb.lookup_deb(true);
170 mlButton: function (e) {
172 IceDeb.lookup_ml(false)
173 else if ( e.button == 1 )
174 IceDeb.lookup_ml(true);
176 ddpoButton: function (e) {
178 IceDeb.lookup_ddpo(false)
179 else if ( e.button == 1 )
180 IceDeb.lookup_ddpo(true);
182 builddButton: function (e) {
184 IceDeb.lookup_buildd(false)
185 else if ( e.button == 1 )
186 IceDeb.lookup_buildd(true);
188 securityButton: function (e) {
190 IceDeb.lookup_security(false)
191 else if ( e.button == 1 )
192 IceDeb.lookup_security(true);