前回、こちらの記事でAlfredのworkflowを使って日付いりのscrapboxページを開く方法を書きました。
AlfredのWorkflowを使って、今日の日付入りのScrapboxページを開く
今回はこのWorkflowを使い、移動したい日付入りのScrapboxページを開けるようにしたいと思います!
完成のイメージ
注意
- この方法はAlfred4を基準に作成されました。
- Powerpack userではない場合、Workflow機能はご利用できません。
手順
1. 空のWorkflowを作る
AlfredのPreference(command + ,(カンマ))に入り、左側のサイドバーから「Workflows」をクリックします。
その後、左下の「+」ボタンから「Blank workflow」を選択し、空のworkflowを作ります。
2. Workflowを実行させるキーワードを設定する
先ほど作ったworkflowをクリックすると、右側に空のキャンバスが現れます。
キャンバスを右クリックし、「Inputs」→「Keyword」 を選択します。
Alfred検索窓からこのWorkflowを呼び出す時に使うキーワードを設定できます。
※「Argument Required」に設定した理由
3. 実行するスクリプトを作る
同じく、キャンバスを右クリックし「Action」→「Run Script」をクリックします。
下の画像のような画面が出ると、「Script」の部分に以下のコードを入力します
/usr/bin/python opendiary.py $1
入力し終わったら「Save」を押しましょう。
※今回はLanguageを「/bin/bash」にして、shell script経由でopendiary.py
のPython Scriptを実行する予定です
4. 今日の日付入りのScrapboxページを開くPython Scriptを作成する]
python scriptを書く時に、こちらのWorkflow libraryがよく使われます。
https://github.com/deanishe/alfred-workflow
今回のworkflowもこのライブラリを活用して作ります。
4-1. Workflowにlibraryをインストール
作成中のworkflowを右クリックして「Open in terminal」クリックします。
現れたターミナルwindowに、以下のコマンドを打ち、実行させます
pip install --target=. Alfred-Workflow
下記のようなMessageが出たら、インストール完了です。
Collecting Alfred-Workflow
Using cached Alfred-Workflow-1.40.0.tar.gz (92 kB)
Using legacy 'setup.py install' for Alfred-Workflow, since package 'wheel' is not installed.
Installing collected packages: Alfred-Workflow
Running setup.py install for Alfred-Workflow ... done
Successfully installed Alfred-Workflow-1.40.0
確認のため、「Open in terminal」と同じ方法で、「Open in Finder」をクリックします。
すると、このようにライブラリがインストールできたことを確認できます。
4-2. 実行するPythonファイルを作成
cotEditor(テキストエディターならなんでもOK)から新しい.py
ファイルを作成します。
今回はファイル名はopendiary.py
にします。
空のファイルができたら、先ほどライブラリをインストールしたフォルダにtodays_diary.py
を置きます。
以下のようになればOKです。
4-3. Python Scriptの中身を入力する
opendiary.py
の中身を入力します。
今回は**「yyyy/mm/dd 作業ログ
というタイトル形式を持つページがGoogle Chromeで開く」**コードを作成します。
# encoing utf-8
# -*- coding: utf-8 -*-
import sys
import webbrowser
from datetime import datetime, date, timedelta
from workflow import web, Workflow
def main(wf):
args = sys.argv[1] # input
dcnt=int(args)
project = 'my-project'#scrapboxプロジェクト名
url1 = 'https://scrapbox.io/'
url2 = '_%E4%BD%9C%E6%A5%AD%E3%83%AD%E3%82%B0'#'_作業ログ'のutf-8 coding ver.
day = date.today().weekday()
if dcnt != 1:
od = datetime.strptime(str(args), "%Y%m%d").date()
else:
if day == 0:
if dcnt == 1:
od = date.today() + timedelta(days=dcnt)
if dcnt == -1:
od = date.today() + timedelta(days=-3)
elif day == 4:
if dcnt == 1:
od = date.today() + timedelta(days=3)
if dcnt == -1:
od = date.today() + timedelta(days=dcnt)
else:
if dcnt == 1:
od = date.today() + timedelta(days=dcnt)
if dcnt == -1:
od = date.today() + timedelta(days=dcnt)
url_date = od.strftime("%Y/%m/%d")
url = url1 + project + '/' + url_date + url2
chrome_path = 'open -a /Applications/Google\ Chrome.app %s'#Google Chromeで開くためのパス設定
webbrowser.get(chrome_path).open(url)
wf.send_feedback()
if __name__ == '__main__':
wf = Workflow()
sys.exit(wf.run(main))
5. キーワードとPython Script実行を繋ぐ
これで完成です。
毎回scrapboxから遡らなくても、日付さえ知っていれば簡単なキーワードの入力だけでページが開けるのでかなり便利です。