<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel rdf:about="https://let.hatelabo.jp/griefworker/rss">
    <link>https://let.hatelabo.jp/griefworker/rss</link>
    <description></description>
    <title>Bookmarklets from griefworker</title>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://let.hatelabo.jp/griefworker/let/gYC-yqLnh73jdQ"/>
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://let.hatelabo.jp/griefworker/let/gYC-yqLnh73jdQ">
    <link>https://let.hatelabo.jp/griefworker/let/gYC-yqLnh73jdQ</link>
    <dc:date>2010-07-07T18:50:18Z</dc:date>
    <description>Flickr に保存した画像をブログに貼り付けるためのタグを生成</description>
    <dc:creator>griefworker</dc:creator>
    <title>[Let] CreateFlickrImageLinks</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fgriefworker%2Flet%2FgYC-yqLnh73jdQ.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;CreateFlickrImageLinks&lt;/a&gt;&lt;pre&gt;/*
 * @title CreateFlickrImageLinks
 * @description Flickr に保存した画像をブログに貼り付けるためのタグを生成
 * @license MIT License
 * @require 
 */

(function() {
    var textArea = document.createElement(&amp;quot;textarea&amp;quot;);
    textArea.setAttribute(&amp;quot;cols&amp;quot;, 100);
    textArea.setAttribute(&amp;quot;rows&amp;quot;, 20); 
    document.getElementsByTagName(&amp;quot;body&amp;quot;)[0].appendChild(textArea);

    function createOriginalImageLinks(doc) {
        var list = doc.getElementsByTagName(&amp;quot;img&amp;quot;);
        for (var i = 0; i &amp;lt; list.length; i++) {
            var img = list[i];
            var href = img.getAttribute(&amp;quot;src&amp;quot;);
            var m = href.match(/(^.+static\.flickr\.com.+\/)([0-9]+)_[0-9a-f]{10}_?.?\.jpg/);
            if (m &amp;amp;&amp;amp; m[2]) {
                var imgId = m[2];
                href = 'http://www.flickr.com/photo_zoom.gne?id=' + imgId + '&amp;amp;size=o';
                lookup(href, createOnLookup(imgId, img));
            }
        }
    }

    function createRequest() {
        if (window.XMLHttpRequest) {
            return new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            try {
                return new ActiveXObject(&amp;quot;Msxml2.XMLHTTP&amp;quot;);
            } catch(ex) {
                return new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;);
            }
        } else {
            return null;
        }
    }

    function createOnLookup(startUrl, img){
        return function parseResult(res) {
            var re = new RegExp('&amp;lt;img src=&amp;quot;([^&amp;quot;]+' + startUrl + '.+\.jpg)&amp;quot;');
            var m = res.responseText.match(re);
            if (m) {
                var a = '&amp;lt;a href=&amp;quot;http://www.flickr.com/photos/username/' + startUrl + '/&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;' + m[1] + '&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;';
                textArea.value = textArea.value + a + &amp;quot;\n&amp;quot;;
            }
        }
    }

    function lookup(url, onLookup){
        var req = createRequest();
        //req.setRequestHeader('Referer', 'http://www.flickr.com/photos/');
        req.onreadystatechange = function(){
            if (req.readyState == 4 &amp;amp;&amp;amp; req.status == 200){
                onLookup(req);
            }
        }
        req.open('GET', url, true);
        req.send(null);
    }

    createOriginalImageLinks(document);
})();&lt;/pre&gt;</content:encoded>
  </item>
</rdf:RDF>
