Pythonista3(iOS)でStaShとDropboxFilePick/DropboxSyncを設定するまで
iOS12で旧Workflowが「ショートカット」と名を変えてiPhoneでメジャーに使えるようになった。
またSiriにかける言葉を設定しておくと、Siriにしてほしい処理を事前登録できるようになったので、ショートカットで処理を登録(GUIのプログラミング)しておけば、音声で好きな処理を実行でき、その中にPythonによるスクリプトの編集・実行を追加できるアプリ「Pythonista3」をインストールしたので、ハマったところを備忘録として残す。
基本はまとめのまとめ。ググって出たまとめ記事通りに実行してもエラーがでるから、最新情報として記事をかきました。
Pythonistaをダウンロードしたらやること
基本は以下の記事を参考に。 2018年9月の最新情報としては、Dropboxのアクセスキー生成・取得をiPhone上でやっちゃうとなぜか「Error check api key」みたなエラーがでる。 理由は不明だが、Mac(PC)でアクセスキーを生成した後に、コピーしてメモ帳に貼り付け→AirDropで共有、メールで共有したりして、とにかくiPhone側に送って、そのテキストをiPhoneでコピーして貼り付ければ、なぜか成功する。 http://tk-thunder.hateblo.jp/entry/2017/11/27/223907似たアプリの重複利用に注意
DropboxFilePickerがうまくいかなかったので、Synchronator.pyというスクリプトを実行して同期を測ったが、DropboxFilePickerやDropboxSyncと競合して、Dropboxのフォルダが二重階層になった。 違いをまとめておく。 ・DropboxFilePicker 都度DropboxにAPIアクセスして、選んだファイルをPythonistaに持ってくる ・DropboxSync Dropboxに一つの同期フォルダを作り、そのフォルダ内をPythonistaと同期させる(あくまで上記リンクや、ググったら出てくる記事で推奨されているやり方) ・Synchronator.py →DropboxとPythonistaを全部同期する。 深夜2時に書いたから間違っているかも。ごめん。Dropbox同期のためのpythonファイルは最新版を使用しよう
実行するpythonファイルが最新版でないと、DropboxAPIのバージョン変更やAppleのセキュリティー対策でエラーになることがある。 実際DropboxSyncを実行したら、DS_coreみたいなデータがダウンロード失敗したので、下記の記事を参考に修正。 http://d.hatena.ne.jp/a_sue/20170219/1487510902 こっちは自分で作ってPythonista3にダウンロードして(AirDropで送るとPythonistaで開けるので、それでダウンロードしたことになる)おく。IGNORED_FILES = ['desktop.ini', 'thumbs.db', '.ds_store', 'icon\r', '.dropbox', '.dropbox.attr', '.dropbox_state_v2'] def is_ignored(filename): filename_lower = filename.lower() for ignored_file in IGNORED_FILES: if ignored_file in filename_lower: return True return FalseこっちはDropboxSyncV2.pyのファイルを修正するという意味。downloadとuploadの定義(def)の最初に「もしignoredなパスだったら何もせずreturnして」というif文を挿入する形になる。
(前略) import DropboxIgnore as di (中略) def download(self, client, path): if di.is_ignored(path): return print('\tDownloading:', path) (中略) def upload(self, client, path): if di.is_ignored(path): return print('\tUploading:', path) (後略)引用元:http://d.hatena.ne.jp/a_sue/20170219/1487510902