Index ¦ Archives

Pythonistaを買った

Pythonistaで遊んでる

というわけでPythonistaを買ったのでちょっと便利かもしれない何かをつくりました。

Markdown用リンク生成器!

という言い方は大げさです。

ブラウザで開いているサイトのタイトルとURLを、そのままMarkdownに貼り付けたら使えるかたちでコピーするだけです。

ピンクのmarkdownURLというのを起動すると、例えばサクラ大戦.com | セガ公式ポータルサイトでは

sakura

[サクラ大戦.com | セガ公式ポータルサイト](http://sakura-taisen.com/)がクリップボードに貼りつくので、ペーストするだけ。

PythonistaのURL extensionを使っていて、よくあるシェアボタンからRun Pythonista codeを選ぶと、今開いているページなんかを入力としてPythonのコードが動きます。

以下コードの詳細

import appex
import requests
import clipboard
import requests
def main():
    if not appex.is_running_extension():
        url = 'http://example.com'
    else:
        url = appex.get_url()
    if url:
        resp = requests.get(url)
        resp.encoding =resp.apparent_encoding
        starttitle = resp.text.find("<title>")+7
        endtitle = resp.text.find("</title>")
        title = resp.text[starttitle:endtitle]
        print(title)
        clipboard.set('['+title+']('+url+')')
    else:
        print('No input URL found.')

if __name__ == '__main__':
    main()

簡単に解説します。理解があまいから間違ったこといってたら直すのでこっそりおしえてね。

main関数内のif not appex.is_running_extension():では、要するにURL extensionでこのプログラムが起動されたか調べています。まあテストみたいな部分なのでelseの方をもうちょっと見ていきましょう。

url = appex.get_url()では開いたサイトのURLをurlという変数に渡してます。

次のif文ではURLを得られたか確認し、そのURLからタイトルを入手しています。

resp = requests.get(url)でサイトのHTMLを引っ張ってきて、単純な文字列検索で<title>〜</title>の中身を抜き出しています。

最後にMarkdownの記法どおりにクリップボードにコピーして終了。

感想

ちょちょっとコードを書くだけで、ブラウザの機能の拡張もできるのでけっこうすごいな、もっといろいろできそうだなって感じです。appexとかの専用ライブラリも使いやすそう。

またなんか使えそうなものでもくだらないものでも作ったらブログに書くことにします。

© ixy. Built using Pelican. Theme by Giulio Fidente on github.