こちらは新歓ブログリレー2021 38日目の記事です。
はじめに
どうも、意外と「すゝめ」記事が多くてパクリを疑われそうなiOSユーザのあみだです。
こちらの記事ではiOS特有の機能、「ショートカット」をおすすめしています。
iOS端末を所持していない皆様、申し訳ありませんがさようなら〜(´・ω・`)ノoO
すでに当ブログ内にもショートカットを紹介する記事は存在しています。(というより、私もショートカットについて調べていくうちにこの記事に遭遇しました。)
iOSショートカットで遊ぶ [アドベントカレンダー2019 9日目]
ショートカットについて詳しく述べられていていい記事だと思います。
こちらもぜひご覧ください。
ショートカットについての記事は少なく情報が得にくいのですが、割と便利なので活用してみてください。
大学生活にて役立ちそうなものを入れてみました。
そもそもショートカットとは
ショートカットアプリはiOS13以降、デフォルトでインストールされています。
いろんな作業の自動化を補助してくれます。
トリガーも様々なものがあり、結構便利です。
割と有名なものとして、「充電音を自分の好きな音に変える」とか聞いたことあるんじゃないでしょうか?
あれもショートカットの機能を利用したものです。
紹介するショートカット
さぁ〜て今回のショートカットは
- 東工大のWi-Fiに接続したら認証ページに飛びやすくしてくれるショートカット(飛ぶわけではない)
- バイトの予定をカレンダーに追加してくれるショートカット
- 東工大ポータルログインを半自動化してくれるショートカット
の3本です!
このまま見ていってくださいね!
うふふふふ
東工大Wi-Fiログインページ遷移[1]
東工大に(物理的に)入ると、キャンパス内無線LANとしてTokyoTechに接続できます。
接続した後に、東工大関係者ということを証明するために認証をしなくてはならないのですが、その認証画面[2]にはあまり自動で飛んでくれません。(体感)[3]
ブックマークに登録してる人もいると思いますが、ちょっと手間だったり邪魔だったりしますよね。
そこで、ショートカットが役に立ちます。
自動で飛ぶとは行かずとも、Wi-Fiに接続したのを感知してちょっとタップすれば認証画面に飛べる通知を出してくれます。
作り方
- 「ショートカットアプリ」を開く
- 下の「オートメーション」
- 右上の「+」
- 「個人用オートメーションを作成」
- ちょっとスクロールして「Wi-Fi」
- 「選択」から「TokyoTech」(一回接続しないと出ないので初回は我慢しよう)を選んで、「次へ」
- 「アクションを追加」
- 「Web」の、「URLを開く」or「Webページを表示」(ここはお好みで)[4]
- URLのところに、「https://wlanauth.noc.titech.ac.jp」と入力
- 「次へ」からの「完了」
使い方&動作
あとは東工大に登校するだけです。
登校すると通知みたいなものが来るのでタップして、実行。
URLを開いた後は普通にログインすればOKです。指紋認証とかで自動入力してくれる機能がiOSには備わってるのでここは大丈夫でしょう。
バイトの予定をCalendarに追加
バイトの時間が固定ならいいんですが、そうもいかないですよね。私も塾講バイトをしていますが時間帯は割とバラバラです。
そして、いちいち時間を設定してカレンダーに追加ってちょっと面倒ですよね。時間を間違えたら目も当てられません。
そこで、日付を選択して、何コマ目かだけ入力すればあとは自動で予定を組んでくれるようなショートカットを利用しています。
作り方
これに関しては作業が地獄なので私が作ったものを載せとくだけにします。
自分で使いたい人は頑張って解読してください[5]
わかりにくく作ったつもりはないですが、ブロックプログラミングみたいな感じで非常に見づらいんです...
もしわからなければ投稿者Twitterまで。
「時間取得」は、一つだけだと長すぎたので分割された部分です。こいつを直接呼び出すことはないです。
「バイト予定追加」の処理途中で呼び出します。
一応東工大の時間割を設定してあります。
使い方
さっきはWi-Fiにつながったのをトリガーにしましたが、今回はトリガーのたぐいをセットしようがないので自分で適当に置く感じで。
「ホーム画面に追加」だったり、「AssistiveTouch」という機能に追加したりとご自由に。
- 「バイト予定追加」を起動
- 日付選択画面が出てくるので、日付選択
- 開始コマ名と終了コマ名を入力(1コマから4コマまでだったら、「14」みたいな感じで)
- カレンダーが立ち上がるので、そのまま追加
動作
直接読むと見にくいことこの上ないので、Pythonっぽく擬似コード化して表現してみます。
schedule.paiimport datetime
from getTime import getTimeTable
# 日付取得
date = datetime.date(input())
# コマ取得
time = input()
# 辞書型
dict= getTimeTable(time)
# 開始時間、終了時間
start = datetime.datetime(date + dict["start"])
end = datetime.datetime(date + dict["end"])
# カレンダーに追加
Calendar.createEvent("バイト", start, end, calendarName="日本の祝日")
getTime.paidef getTimeTable(time):
# コマ:開始時間 の辞書
startDict = {"1":"8:50", "2":"...}
startKeys, startVals = startDict.keys(), startDict.values()
# コマ:終了時間 の辞書
endDict = {"1":"10:30", "2":"...}
endKeys, endVals = endDict.keys(), endDict.values()
# 入力から開始時間取得
for i, key in enumerate(startKeys):
if time.startswith(key):
startShift = key
start = startVals[i]
# 入力から終了時間取得
for i, key in enumerate(endKeys):
if time.startswith(startShift + key):
endShift = key
end = endVals[i]
return {"start":start, "end":end}
無駄があるように見えるかもしれませんが、どれも必要なことだった(はず)。
仕様に制限が多い。[6]
TokyoTechPortalログイン
TitechAppが完全上位互換です。[7]
一応外部のアプリなので信用できないという方(重要な情報は端末側に保存されてるらしいですが)、こんなもんには頼らないという逆張りの方はこちらの手段を試してみてはいかがでしょうか。[8]
私は外出先で課題をどんな内容で提出したのかを確認するためだけに使ってます。
作り方
- 自動ログインを行うJavaScriptを書きます(処理の最後にcomplention()という関数を呼び出さなくてはいけないので注意)
- 「ショートカット」アプリを開く
- 下の「マイショートカット」
- 「アクションを追加」
- 「Web」の「WebページでJavaScriptを実行」
- 「Webページに対して〜〜」の「Webページ」をタップ、「ショートカットの入力」を選択
- 書いたJavaScriptを貼り付け
- 三点リーダをタップ
- 「共有シートに表示」をオン(共有シートタイプは「SafariのWebページ」でいいと思いますが、「すべて」が無難です。)
- 「完了」、「次へ」、「完了」
JSを書くとは言いましたが、大変と思うので一応私のお手製ショートカットを一応置いておきます。
公開する以上必然的にオープンソースなので、安心ですよ(?)。iOS側に脆弱性が無い限り...
仕様変更に弱いので動かなかったらごめんなさい。
当たり前ですが、これを使うことでセキュリティは弱まります。
ただ、それが嫌な人は任意のログインサービスが使えなくなる(と思う)ので、全てを頭の中に保存することをおすすめします...
使い方
- ポータルのログインページを開く
- 下の方に出る共有ボタン(□に↑がついてるやつ)をタップ
- 下にスクロールして、ショートカットを実行
3'.もし出てこなかったら、再起動か「アクションを編集」で探すとかしてみてください。しばらく出てこなかったりするので早まらないように。[9]
動作
一般的な自動入力と同じです。
普通にJavaScriptで普通に要素を取得して普通にフォームを埋めて普通にOK押してるだけです。
これくらいは他の(元)工業大学生が載せてたりするので、そんなに難しくないと思います。
「東工大ポータル 自動ログイン」 検索結果
おわりに
こんな感じで、ショートカットだけでも割と便利になることはわかってもらえたんじゃないかと思います。
東工大関連のことはTitechAppが上位互換ですが、このショートカットの手法は東工大関連以外にも色々応用可能なので是非使ってみてください。
よいショートカットライフを!
明日は @Suu__u さんの記事です。お楽しみに。
ちなみに
iOSショートカットのMac版とも言える「Automator」というものも存在します。
これはshell scriptも使えるのでかなり自由度が高いです。
具体的にはファイル操作も可能です。
私はこれを利用してzoomの録画URLを自動保存するappを作成しました。
ここで紹介しているURLはググれば簡単に出るものですが、問題があれば削除します。 ↩︎
このリンクをクリックしてもTokyoTechに接続していない限り読み込みが終わりませんよ。 ↩︎
httpなサイトを開けば飛ぶようです(httpsはダメ)。まあ不便ですね。 ↩︎
「URLを開く」はSafariでURLが開かれます。「Webページを表示」はアプリを切り替えずURLを開けます、フリーWi-Fiで認証するときとかと同じ。 ↩︎
「バイト予定追加」の一番下のアクションで、イベント名が”バイト”となっていますが、適当に自分のわかりやすい名前にしてみてください。追加するカレンダーも変えたほうがいいです。また、「時間取得」の方でコマ名と開始時間、終了時間をそれぞれのテーブルで入力すればOKです。追加したい場合は「テキスト」でOKです。 ↩︎
forまわりの動作が一番ひどいです。for i in range(N)のような回数指定ループをしようとしても、繰り返し回数に変数をおくことが出来ません(予め回数指定する必要がある)。なので、自由度をもたせようと思うとforEachを使うしかありません。「繰り返しインデックス」としてi部分が取り出せるからまだマシですが。 ↩︎
ちなみにWi-Fiログインもこのアプリを起動するだけでできます。このアプリを立ち上げるショートカットも設定可能なので、そっちにしてもいいと思います。 ↩︎
東工大的にはマトリクスは最後の砦らしく、学生証の裏以外にマトリクスコードの情報を置くのは一応非推奨です。 ↩︎
私は一回早まりました。 ↩︎