-rw-r--r-- | content/Makefile.am | 2 | ||||
-rw-r--r-- | content/fireflix-panel.xul | 1 | ||||
-rw-r--r-- | content/flickr.js | 50 | ||||
-rw-r--r-- | content/util.js | 61 |
4 files changed, 63 insertions, 51 deletions
diff --git a/content/Makefile.am b/content/Makefile.am index 8548400..d8607fb 100644 --- a/content/Makefile.am +++ b/content/Makefile.am @@ -2,7 +2,7 @@ xpichromecontent_DATA = \ autoconf.dtd \ browser.xul about.xul fireflix-panel.xul photoset-props.xul \ generated-content.xul \ - photoset-props.js fireflix.js flickr.js md5.js \ + photoset-props.js fireflix.js flickr.js util.js md5.js \ generated-content.js \ fireflix.css \ background.jpeg diff --git a/content/fireflix-panel.xul b/content/fireflix-panel.xul index 569beb0..2a15a51 100644 --- a/content/fireflix-panel.xul +++ b/content/fireflix-panel.xul @@ -14,6 +14,7 @@ <script src="chrome://global/content/nsDragAndDrop.js"/> <script src="chrome://global/content/nsTransferable.js"/> <script type="application/x-javascript" src="md5.js" /> + <script type="application/x-javascript" src="util.js" /> <script type="application/x-javascript" src="flickr.js" /> <script type="application/x-javascript" src="fireflix.js" /> diff --git a/content/flickr.js b/content/flickr.js index 3554796..add628a 100644 --- a/content/flickr.js +++ b/content/flickr.js @@ -89,56 +89,6 @@ Photo.prototype = { } }; -function toutf8(ucode) { - var rv = ''; - for(var i=0;i<ucode.length;++i) { - var cc = ucode.charCodeAt(i); - if(cc<=0x7F) - rv += ucode.charAt(i); - else if(cc<=0x7ff) - rv += String.fromCharCode( - 0xc0|((cc>> 6)&0x1f), - 0x80|( cc &0x3f) ); - else if(cc<=0xffff) - rv += String.fromCharCode( - 0xe0|((cc>>12)&0x0f), - 0x80|((cc>> 6)&0x3f), - 0x80|( cc &0x3f) ); - else if(cc<=0x1fffff) - rv += String.fromCharCode( - 0xf0|((cc>>18)&0x07), - 0x80|((cc>>12)&0x3f), - 0x80|((cc>> 6)&0x3f), - 0x80|( cc &0x3f) ); - else if(cc<=0x03ffffff) - rv += String.fromCharCode( - 0xf8|((cc>>24)&0x03), - 0x80|((cc>>18)&0x3f), - 0x80|((cc>>12)&0x3f), - 0x80|((cc>> 6)&0x3f), - 0x80|( cc &0x3f) ); - else if(cc<=0x7fffffff) - rv += String.fromCharCode( - 0xfc|((cc>>30)&0x01), - 0x80|((cc>>24)&0x3f), - 0x80|((cc>>18)&0x3f), - 0x80|((cc>>12)&0x3f), - 0x80|((cc>> 6)&0x3f), - 0x80|( cc &0x3f) ); - } - return rv; -} -function xp_str(xp,x) { - var rv = x.evaluate( - xp, x, null, XPathResult.STRING_TYPE, null ); - return rv.stringValue; -} -function xp_node(xp,x) { - var rv = x.evaluate( - xp, x, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ); - return rv.singleNodeValue; -} - function Flickr() { } Flickr.prototype = { diff --git a/content/util.js b/content/util.js new file mode 100644 index 0000000..5af0978 --- a/dev/null +++ b/content/util.js @@ -0,0 +1,61 @@ +/* + * convert unicode string to utf-8 representation. + * needed for correct md5 hash calculation. + */ +function toutf8(ucode) { + var rv = ''; + for(var i=0;i<ucode.length;++i) { + var cc = ucode.charCodeAt(i); + if(cc<=0x7F) + rv += ucode.charAt(i); + else if(cc<=0x7ff) + rv += String.fromCharCode( + 0xc0|((cc>> 6)&0x1f), + 0x80|( cc &0x3f) ); + else if(cc<=0xffff) + rv += String.fromCharCode( + 0xe0|((cc>>12)&0x0f), + 0x80|((cc>> 6)&0x3f), + 0x80|( cc &0x3f) ); + else if(cc<=0x1fffff) + rv += String.fromCharCode( + 0xf0|((cc>>18)&0x07), + 0x80|((cc>>12)&0x3f), + 0x80|((cc>> 6)&0x3f), + 0x80|( cc &0x3f) ); + else if(cc<=0x03ffffff) + rv += String.fromCharCode( + 0xf8|((cc>>24)&0x03), + 0x80|((cc>>18)&0x3f), + 0x80|((cc>>12)&0x3f), + 0x80|((cc>> 6)&0x3f), + 0x80|( cc &0x3f) ); + else if(cc<=0x7fffffff) + rv += String.fromCharCode( + 0xfc|((cc>>30)&0x01), + 0x80|((cc>>24)&0x3f), + 0x80|((cc>>18)&0x3f), + 0x80|((cc>>12)&0x3f), + 0x80|((cc>> 6)&0x3f), + 0x80|( cc &0x3f) ); + } + return rv; +} + +/* + * extract xpath-specified string value + */ +function xp_str(xp,x) { + var rv = x.evaluate( + xp, x, null, XPathResult.STRING_TYPE, null ); + return rv.stringValue; +} +/* + * extract xpath-specified node + */ +function xp_node(xp,x) { + var rv = x.evaluate( + xp, x, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ); + return rv.singleNodeValue; +} + |