Reddit Instameme

By James Thewlis Last update Nov 27, 2009 — Installed 134 times.

There are 6 previous versions of this script.

// ==UserScript==

// @name           Reddit Instameme

// @namespace      http://bobsworthindustries.com

// @include        http://*.reddit.com/*/comments*

// ==/UserScript==





// This code isn't pretty



$ = unsafeWindow.jQuery;







$.getJSON("/r/redditmemes/top/.json?t=all", function(json){

    stories = json.data.children;

    categories = "";



    for(x=0;x<stories.length;x++){



        title = stories[x].data.title;



        if(title.indexOf("(nolist)") == -1){

        id = stories[x].data.id;



        categories += '<option value="' + id + '">' + title + '</option>';

        }

    }



    $('<select style="width:150px;"  class="memeselect"><option value="titlelabel" style="font-weight: bold; text-decoration: underline;">Insert Meme</option>'

        + categories + '<option value="redditmemelink" style="text-decoration:underline">Add and vote on memes</option></select>').appendTo('.usertext-buttons').change(function(e){

        



        $('.memes').remove();



        meme = $(e.target).val()



        if(meme == "redditmemelink"){document.location="http://reddit.com/r/redditmemes"; return 0;}





        if (meme && meme!="titlelabel"){



            $(e.target.form).append("<div class='memes' style='border:1px solid #336699; height:200px; width: 500px; overflow:auto; margin-left:20px; margin-bottom:20px;'><a onclick='$(\".memes\").remove(); $(\".memeselect\").val(\"titlelabel\");' style='cursor:pointer; position:absolute; margin-left:510px;'>close</a><ul><li>Loading...</ul></li></div>");



            //$('.memes').



            $.getJSON("/comments/" + $(e.target).val() + "/.json", function(json){

                comments=json[1].data.children;

                commentlist = "";



                for(x=0;x<comments.length;x++){



                    body=comments[x].data.body;

        if(body.indexOf("(nolist)") == -1){

                    parts = body.split(/^-+/m);



                    title=parts[0];



                    if(parts.length > 1){

                      main=parts[1];

                    }

                    else{

                      main=title;

                    }



                    commentlist += '<li rel="' + escape(main) + '" style="cursor:pointer; margin-bottom:5px;">' + title + '</li>';

                }



                }



                $('.memes ul').html(commentlist);



                $('.memes li').click(function(e){

                    //unsafeWindow.test = e;

                    commentbox=$(e.target).parent().parent().parent().children('.usertext-edit').children('div').children('textarea')[0];

                    commentbox.focus();

                    commentbox.value += entities_decode(linebreaktrim(unescape(e.target.getAttribute('rel')))) + " ";



                });



            });



        }

    });

});









function entities_decode(str){

var temp=document.createElement("pre");

temp.innerHTML=str;

return temp.firstChild.nodeValue;

}



function linebreaktrim(s){

	return s.replace(/^\s+/,"");


}