GarretCafe

楽に生きる.心と持ち物,手ぶら生活のすすめ

                            

ブログのリンクを作るスクリプトをPythonista3に対応させてみました

SAYA160312050I9A3455 TP V

こないだ作ったブログのリンクを一気に作ってくれるスクリプト旧Pythonista用のスクリプトだったので、実行するときにいちいち互換ボタンを押さないといけませんでした。それが面倒臭いと正直思っていたので、今回はPythonista3にスクリプトを対応させることにしました。

ファイルの全容は以下。

# coding: utf-8
from __future__ import absolute_import
import clipboard
import codecs
import console
from html.parser import HTMLParser
import urllib

class GetTitle(HTMLParser):
	def __init__(self):
		HTMLParser.__init__(self)
		self.title_flag = False

	def handle_starttag(self, tag, attrs):
		if tag == 'title':
			self.title_flag = True

	def handle_data(self, data):
		if self.title_flag:
			self.title = data
			self.title_flag = False
			
def loadTitle(url):
	resp = [] #take care reset position
	response = urllib.request.urlopen(url)
	gt = GetTitle()
	gt.feed(response.read().decode('utf-8'))
	gt.close()
	resp.append(url)
	resp.append(gt.title)
	return resp
	
def createLink(url):
	mylink = loadTitle(url)
	mytext = '<a href="' + mylink&#91;0&#93; + '" target="_blank">' + mylink[1] + '</a>'
	return mytext

def makeList():
	text = ''
	with codecs.open('LinkStack.txt', 'r', 'utf-8') as f:
		for line in f:
			text += '\t' + '<li>' + createLink(line[:-1]) + '</li>' + '\n'
			text = "<ul class='sankou'>\n\t<li>参考記事</li>\n" + text + '</ul>'
		return text

def makeLink():
	text = ''
	with codecs.open('LinkStack.txt', 'r', 'utf-8') as f:
		for line in f:
			text += createLink(line[:-1]) + '\n'
		return text
		
def clipLink(TEXTLINK):
	clipboard.set(TEXTLINK)
	console.alert('Link Created!', '', 'OK', hide_cancel_button=True)
	with codecs.open('LinkStack.txt', 'w', 'utf-8') as f:
		f.write('')

if __name__ == '__main__':
	url = 'http://garretcafe.com'
	clipLink(makeLink())

上記をコピーしてbloglineという名前で保存してください。
このまえ作ったClipLinkと互換があるので、これだけあれば大丈夫です。

つぶやき

2to3というスクリプトで簡単にPython2系から3系へ移行を自動で行ってくれるのですが、なぜかHTMLをパースする部分が動きませんでした。なんかモジュールが見つかりませんやらの呪文が出ていた。
そこで、せっかくPythonista3からできるようになったデフォルトのモジュールが入っているフォルダを覗いてみると、どうやらちょっと名前とかが変わっていたようです。
なので、そこらへんを修正して、面倒臭いので一つのファイルにまとめてみました。

ちょっと雑な仕上げで本当に申し訳ないですけど、動くので勘弁してください。

はてなブログとかで動かないサイトがちらほらあるので、そこらへんはおいおい修正していきましょう。