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 } while ( oldword != word );
46 lookup_bts: function(in_new) {
47 var bug = IceDeb.trim_keyword(IceDeb.getClipboardText());
48 if (!bug) return null;
49 var uri="http://bugs.debian.org/" + bug;
53 var new_tab = b.addTab(uri);
54 b.selectedTab = new_tab;
60 lookup_pts: function(in_new) {
61 var pkg = IceDeb.trim_keyword(IceDeb.getClipboardText());
62 if (!pkg) return null;
63 var uri="http://packages.qa.debian.org/" + pkg;
67 var new_tab = b.addTab(uri);
68 b.selectedTab = new_tab;
74 lookup_deb: function(in_new) {
75 var pkg = IceDeb.trim_keyword(IceDeb.getClipboardText());
76 if (!pkg) return null;
77 var uri="http://packages.debian.org/" + pkg;
81 var new_tab = b.addTab(uri);
82 b.selectedTab = new_tab;
88 lookup_ml: function(in_new) {
89 var msg_id = IceDeb.trim_keyword(IceDeb.getClipboardText());
90 if (!msg_id) msg_id = '';
91 var uri="http://lists.debian.org/msgid-search/" + msg_id;
95 var new_tab = b.addTab(uri);
96 b.selectedTab = new_tab;
102 lookup_ddpo: function(in_new) {
103 var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText());
104 var uri="http://qa.debian.org/developer.php";
106 if (keyword) uri += "?login=" + keyword;
109 var b = getBrowser();
110 var new_tab = b.addTab(uri);
111 b.selectedTab = new_tab;
117 lookup_buildd: function(in_new) {
118 var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText());
119 var uri="https://buildd.debian.org/";
121 if (keyword) uri += keyword;
124 var b = getBrowser();
125 var new_tab = b.addTab(uri);
126 b.selectedTab = new_tab;
132 lookup_security: function(in_new) {
133 var keyword = IceDeb.trim_keyword(IceDeb.getClipboardText());
134 var uri="http://security-tracker.debian.org/";
136 if (keyword) uri += "tracker/" + keyword;
139 var b = getBrowser();
140 var new_tab = b.addTab(uri);
141 b.selectedTab = new_tab;
148 btsButton: function (e) {
150 IceDeb.lookup_bts(false)
151 else if ( e.button == 1 )
152 IceDeb.lookup_bts(true);
154 ptsButton: function (e) {
156 IceDeb.lookup_pts(false)
157 else if ( e.button == 1 )
158 IceDeb.lookup_pts(true);
160 debButton: function (e) {
162 IceDeb.lookup_deb(false)
163 else if ( e.button == 1 )
164 IceDeb.lookup_deb(true);
166 mlButton: function (e) {
168 IceDeb.lookup_ml(false)
169 else if ( e.button == 1 )
170 IceDeb.lookup_ml(true);
172 ddpoButton: function (e) {
174 IceDeb.lookup_ddpo(false)
175 else if ( e.button == 1 )
176 IceDeb.lookup_ddpo(true);
178 builddButton: function (e) {
180 IceDeb.lookup_buildd(false)
181 else if ( e.button == 1 )
182 IceDeb.lookup_buildd(true);
184 securityButton: function (e) {
186 IceDeb.lookup_security(false)
187 else if ( e.button == 1 )
188 IceDeb.lookup_security(true);