OAuthにしなくっちゃ
http://developer.hatenastaff.com/entry/2014/02/27/141555
Twitterのサブ垢botさんが動かないとおもったら、こういうことでした。
はてブもされてないので、困ったナ。
iftttでハッシュタグをつぶやいたユーザをリストに自動で追加する。
Webサービスiftttを使ってタイトルにある通りのことをする。
Browseをクリックして'Twitter List'でSearch。
iftttの公開レシピ例 https://ifttt.com/recipes/14428 他にも同じ動作をするレシピたくさん検索できる。
はてなブックマークのみんながつけたタグ名をリストで取得する
import re import urllib,urllib2 def get_globaltags(trgurl): q = {'url':trgurl} entryinfourl = 'http://b.hatena.ne.jp/entry?%s' % urllib.urlencode(q) result=urllib2.urlopen(entryinfourl) reg = re.compile(r'<span class="global-tag"><a href=(.+) rel=(.+) class=(.+) title=(.+)>(.+)</a></span>') tags = reg.findall(result.read().decode('utf-8')) result.close gtags=[] for t in tags: gtags.append(t[4]) return gtags
データストアに格納したURL文字列を検索するときに注意すること。
db.TextProperty()を設定しているとGQLで検索されない。
db.LinkProperty()にすること。
選択した文字列でブクログのiTunes本棚を検索するブックマークレット
Chromeで動作確認。
javascript:var d=document;var w=window;var kwd=d.getSelection();alert(kwd);var f='http://booklog.jp/itunes/search?keyword=';var p=encodeURIComponent(kwd)+'&media=software&type=iphone';var u=f+p;var a=function(){w.open(u,'_blank')};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else a();void(0);
iPhoneのSafari用ブックマークレットはこれだと上手くいかない。
参考
https://gist.github.com/961328
Google App EngineでInstapaperのFeedをParseしてはてなに投稿するPythonコード
InstapaperのRSSをGAEでパースしてはてなブックマークにタグ[あとで読む]で投稿する。
はてブの投稿にはWSSE.pyを使う。
#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = "yadokari23" import logging import re import os import urllib, urllib2 from google.appengine.ext import webapp from google.appengine.ext.webapp import util from google.appengine.ext import db from google.appengine.api import urlfetch from google.appengine.api import mail from xml.etree.ElementTree import * import datetime from WSSE import * from google.appengine.api.labs import taskqueue #はてな情報 HATENA_USERNAME='XXXXXXXX' HATENA_PWD='XXXXXXXXX' InstapaperURL='http://www.instapaper.com/rss/XXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX' class Instpr(db.Model): title = db.TextProperty() link = db.LinkProperty() description = db.TextProperty() pubDate = db.TextProperty(required=True) task = db.BooleanProperty() class MainHandler(webapp.RequestHandler): def get(self, mode=""): if mode=='parse_Instapaper_feed': #Instapaperのフィードをパースする results = urlfetch.fetch(url=InstapaperURL, method=urlfetch.GET, deadline=10) dom = fromstring(results.content) if results.status_code == 200: if dom.findall('.//item'): for e in dom.findall('.//item'): q = Instpr.gql("WHERE link = :1", e.findtext('./link')) Instprrec = q.fetch(1) if Instprrec is None: p = Instpr(title=e.findtext('./title') ,link=e.findtext('./link') ,description=e.findtext('./description') ,pubDate=e.findtext('./pubDate') ,task=False) p.put() #task queue未登録のレコードを1件取り出す。 Instprrec = Instpr.all().filter('task =', False).get() if Instprrec: query={'link':Instprrec.link } #タスクbookmarkTwFavのインスタンスを作成し、タスクを追加 bookmark_task = taskqueue.Queue('hatebu') next_task = taskqueue.Task(url='/_hatebu', params=query) bookmark_task.add(next_task) Instprrec.task = True db.put(Instprrec) def post(self, mode=""): if mode=='_hatebu': #はてブする url = self.request.get("link") #WSSE認証 hbc = HatenaBookmarkClient(HATENA_USERNAME,HATENA_PWD) hbc.getServiceURI() # サービスエンドポイントの取得(PostURIとFeedURI) if url <> '': hbcomment = u'[あとで読む]' hbc.postBookmark(url, hbcomment) # ブックマークの登録 def main(): #URLによってリクエストハンドラを切り替える application = webapp.WSGIApplication([('/(.*)', MainHandler)], debug=True) util.run_wsgi_app(application) if __name__ == '__main__': main()
Togetterでまとめたツイート全部に同じ色とサイズを一発で設定するBookmarklet
Togetterのデコレーションは一個一個ツイートごとに色とサイズを設定する機能しか今のところなく、
一度マリノス戦の実況まとめのときにチームカラーに大量のツイートを染める作業にチャレンジしたものの
当然ながら手動ループになってしまうので、とんでもなくデコレーションするのがメンドクサかったんですね。
でもデコレーションした方が見た目もよくなる。
ということで、一括で色とサイズを設定するブックマークレットを作ってみました。
私みたいに大量のツイートのまとめ(もはやまとめとはいえない量)も少数派だと思うので、あんまりコレを欲してる人もいないとは思うけども..
良かったらどうぞ。
↓コピペ用
javascript:$('.tweet').each(function(){var html=$(this).html();var html = html.replace(/<SPAN[^>]*>|<\/SPAN[^>]*>/ig,'');$(this).html(html);var node = document.createElement("span");node.className = $("input[name=font_size]:checked").val()+" "+$("input[name=font_color]:checked").val();node.innerHTML = $(this).html(); $(this).html(node);});
コレをコピペしてブラウザにブックマークレットとして登録。
動作はChromeのみで確認。
デコレーション編集画面(http://togetter.com/deco/XXXXXのページ)でクリックすると、
一括でデコレーションが適用されます。
↓ソース(読みやすくしたもの。Bookmarklet Builderだとうまくformatしてくれないので貼っとく。)
javascript: $('.tweet').each(function(){ var html=$(this).html(); var html = html.replace(/<SPAN[^>]*>|<\/SPAN[^>]*>/ig,''); $(this).html(html);var node = document.createElement("span"); node.className =$("input[name=font_size]:checked").val()+ ""+$("input[name=font_color]:checked").val(); node.innerHTML = $(this).html(); $(this).html(node); } );