]> git.sesse.net Git - greasemonkey-scripts/blob - ebay-timezone.user.js
Initial checkin for move to Git (no prior version history available).
[greasemonkey-scripts] / ebay-timezone.user.js
1 // ==UserScript==\r
2 // @name           eBay timezone fix\r
3 // @namespace      http://bzr.sesse.net/greasemonkey-scripts/\r
4 // @description    Changes all eBay times to be in your local time zone\r
5 // @include        http://ebay.com/*\r
6 // @include        http://*.ebay.com/*\r
7 // @include        https://ebay.com/*\r
8 // @include        https://*.ebay.com/*\r
9 // ==/UserScript==\r
10 \r
11 function nf(x)\r
12 {\r
13         if (x < 10) {\r
14                 return "0" + x;\r
15         } else {\r
16                 return x;\r
17         }\r
18 }\r
19 \r
20 function getTextNodes(oNode, aText)\r
21 {\r
22         for (var i = 0; i < oNode.childNodes.length; i++) {\r
23                 var oChild = oNode.childNodes.item(i);\r
24                 switch(oChild.nodeType) {\r
25                 case 1:\r
26                         getTextNodes(oChild, aText);\r
27                         break;\r
28                 case 3:\r
29                         aText.push(oChild);\r
30                         break;\r
31                 }\r
32         }\r
33 }\r
34 \r
35 var text = [];\r
36 getTextNodes(document, text);\r
37 for (var i = 0; i < text.length; i++) {\r
38         var elem = text[i];\r
39         var str = elem.nodeValue;\r
40 \r
41         var foo = str.match(/(\S\S\S)-(\d\d)-(\d\d)(\s+|\s+at\s+)(\d\d:\d\d:\d\d)\s+PST/);\r
42         if (foo != null) {\r
43                 var d = new Date(foo[1] + ' ' + foo[2] + ' 20' + foo[3] + ' ' + foo[5] + " PST");\r
44                 var tzinfo = d.toString().match(/\((\S+)\)/);\r
45                 var dstr = d.getFullYear() + '-' + nf(d.getMonth() + 1) + '-' + nf(d.getDate()) + ' ' + nf(d.getHours()) + ':' + nf(d.getMinutes()) + ':' + nf(d.getSeconds()) + " " + tzinfo[1];\r
46                 elem.nodeValue = str.replace(foo[0], dstr);\r
47         }\r
48 }\r
49 \r