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 trans.addDataFlavor("text/unicode");
13 clip.supportsSelectionClipboard()
14 ? clip.kSelectionClipboard
15 : clip.kGlobalClipboard
21 trans.getTransferData("text/unicode", s, len);
27 p = s.value.QueryInterface(Components.interfaces.nsISupportsString, res);
29 text = p.data.substring(0, len.value / 2);
33 trim_keyword: function(word) {
34 if (!word) return word;
40 word = word.replace(/^[^a-zA-Z0-9]+/, '');
41 word = word.replace(/[^a-zA-Z0-9]+$/, '');
42 word = word.replace(/^Bug#/i, '');
43 } while ( oldword != word );
47 lookup_bts: function(in_new) {
48 var bug = IceDeb.trim_keyword(IceDeb.getClipboardText());
49 if (!bug) return null;
50 var uri="http://bugs.debian.org/" + bug;
54 var new_tab = b.addTab(uri);
55 b.selectedTab = new_tab;
61 lookup_pts: function(in_new) {
62 var pkg = IceDeb.trim_keyword(IceDeb.getClipboardText());
63 if (!pkg) return null;
64 var uri="http://packages.qa.debian.org/" + pkg;
68 var new_tab = b.addTab(uri);
69 b.selectedTab = new_tab;
75 lookup_deb: function(in_new) {
76 var pkg = IceDeb.trim_keyword(IceDeb.getClipboardText());
77 if (!pkg) return null;
78 var uri="http://packages.debian.org/" + pkg;
82 var new_tab = b.addTab(uri);
83 b.selectedTab = new_tab;
89 lookup_ml: function(in_new) {
90 var msg_id = IceDeb.trim_keyword(IceDeb.getClipboardText());
91 if (!msg_id) msg_id = '';
92 var uri="http://lists.debian.org/msgid-search/" + msg_id;
96 var new_tab = b.addTab(uri);
97 b.selectedTab = new_tab;
103 lookup_ddpo: function(in_new) {
104 var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText());
105 var uri="http://qa.debian.org/developer.php";
107 if (keyword) uri += "?login=" + keyword;
110 var b = getBrowser();
111 var new_tab = b.addTab(uri);
112 b.selectedTab = new_tab;
118 lookup_buildd: function(in_new) {
119 var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText());
120 var uri="https://buildd.debian.org/";
122 if (keyword) uri += keyword;
125 var b = getBrowser();
126 var new_tab = b.addTab(uri);
127 b.selectedTab = new_tab;
133 lookup_security: function(in_new) {
134 var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText());
135 var uri="http://security-tracker.debian.org/";
137 if (keyword) uri += "tracker/" + keyword;
140 var b = getBrowser();
141 var new_tab = b.addTab(uri);
142 b.selectedTab = new_tab;
149 btsButton: function (e) {
151 IceDeb.lookup_bts(false)
152 else if ( e.button == 1 )
153 IceDeb.lookup_bts(true);
155 ptsButton: function (e) {
157 IceDeb.lookup_pts(false)
158 else if ( e.button == 1 )
159 IceDeb.lookup_pts(true);
161 debButton: function (e) {
163 IceDeb.lookup_deb(false)
164 else if ( e.button == 1 )
165 IceDeb.lookup_deb(true);
167 mlButton: function (e) {
169 IceDeb.lookup_ml(false)
170 else if ( e.button == 1 )
171 IceDeb.lookup_ml(true);
173 ddpoButton: function (e) {
175 IceDeb.lookup_ddpo(false)
176 else if ( e.button == 1 )
177 IceDeb.lookup_ddpo(true);
179 builddButton: function (e) {
181 IceDeb.lookup_buildd(false)
182 else if ( e.button == 1 )
183 IceDeb.lookup_buildd(true);
185 securityButton: function (e) {
187 IceDeb.lookup_security(false)
188 else if ( e.button == 1 )
189 IceDeb.lookup_security(true);