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

こないだ作ったブログのリンクを一気に作ってくれるスクリプトは旧Pythonista用のスクリプトだったので、実行するときにいちいち互換ボタンを押さないといけませんでした。それが面倒臭いと正直思っていたので、今回はPythonista3にスクリプトを対応させることにしました。
- 参考記事
- 20.2. html.parser— HTML および XHTML のシンプルなパーサー — Python 3.5.1 ドキュメント
- Python入門 - パッケージとモジュール
- Python3で、urllibとBeautifulSoupを使ってWebページを読み込む - minus9d's diary
- PythonでHTML解析 | OpenBook
- python - Python3 Error: TypeError: Can't convert 'bytes' object to str implicitly - Stack Overflow
- HTMLParserを使ってページのタイトルを取得 - おし、プログラミング
ファイルの全容は以下。
# 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[0] + '" 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 = 'https://garretcafe.com'
clipLink(makeLink())
上記をコピーしてbloglineという名前で保存してください。
このまえ作ったClipLinkと互換があるので、これだけあれば大丈夫です。
つぶやき
2to3というスクリプトで簡単にPython2系から3系へ移行を自動で行ってくれるのですが、なぜかHTMLをパースする部分が動きませんでした。なんかモジュールが見つかりませんやらの呪文が出ていた。
そこで、せっかくPythonista3からできるようになったデフォルトのモジュールが入っているフォルダを覗いてみると、どうやらちょっと名前とかが変わっていたようです。
なので、そこらへんを修正して、面倒臭いので一つのファイルにまとめてみました。
ちょっと雑な仕上げで本当に申し訳ないですけど、動くので勘弁してください。
はてなブログとかで動かないサイトがちらほらあるので、そこらへんはおいおい修正していきましょう。
