Created
December 3, 2016 13:22
-
-
Save laughingman7743/5e18c750e9af37245dddbf6e85c3487c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // ==UserScript== | |
| // @name Feedly with Hatena bookmark | |
| // @version 0.7.3 | |
| // @namespace http://www.otchy.net | |
| // @include http://www.feedly.com/* | |
| // @include http://cloud.feedly.com/* | |
| // @include http://feedly.com/* | |
| // @include https://www.feedly.com/* | |
| // @include https://cloud.feedly.com/* | |
| // @include https://feedly.com/* | |
| // ==/UserScript== | |
| (function() { // namespace | |
| var setup = function() { | |
| (function (d, func) { | |
| var head = d.getElementsByTagName('head')[0]; | |
| var script1 = d.createElement("script"); | |
| script1.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"); | |
| script1.addEventListener('load', function() { | |
| var script2 = d.createElement("script"); | |
| script2.textContent = "(" + func.toString() + ")(jQuery.noConflict(true));"; | |
| head.appendChild(script2); | |
| }, false); | |
| head.appendChild(script1); | |
| })(unsafeWindow.document, function($) { | |
| var buildHatebuLink = function(url) { | |
| var escapedUrl = url.replace(/#/g, '%23'); | |
| return $('<a>').attr('href', 'http://b.hatena.ne.jp/entry/' + escapedUrl) | |
| .attr('target', '_blank').append($('<img>').attr('src', 'http://b.st-hatena.com/entry/image/' + escapedUrl) | |
| ); | |
| } | |
| var setupMain = function(main) { | |
| var $main = $(main); | |
| if ($main.data('feedly-w-hatebu') === 'done') return; | |
| var url = $main.find('.u100Entry').data('alternate-link'); | |
| $hatebu = buildHatebuLink(url); | |
| $main.find('.entryTitle').after($hatebu); | |
| $main.data('feedly-w-hatebu', 'done'); | |
| } | |
| var setupEntryList = function(list) { | |
| var $list = $(list); | |
| if ($list.data('feedly-w-hatebu') === 'done') return; | |
| $list.on('DOMNodeInserted', function(e) { | |
| var target = e.target; | |
| if (target.className && target.className.indexOf('content') >= 0) { | |
| setupEntry(target); | |
| return; | |
| } | |
| }); | |
| $list.data('feedly-w-hatebu', 'done'); | |
| } | |
| var setupEntry = function(entry) { | |
| var $title = $(entry).find('.title'); | |
| var url = $title.attr('href'); | |
| var $hatebu = buildHatebuLink(url).css({'margin-right': '0.2em'}); | |
| $title.prepend($hatebu); | |
| } | |
| $(window.document).on('DOMNodeInserted', function(e) { | |
| var target = e.target; | |
| if (target.id && target.id.match(/_main$/)) { | |
| setupMain(target); | |
| } else if (target.className && target.className.indexOf('board') >= 0) { | |
| setupEntryList(target); | |
| } | |
| }); | |
| }); | |
| } | |
| if (window.webkitURL !== undefined) { | |
| // for Chrome | |
| setup(); | |
| } else { | |
| // for Firefox | |
| window.addEventListener('DOMContentLoaded', setup, false); | |
| } | |
| })(); // end of namespace |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment