はじめに
この記事は東京高専プロコンゼミAdventCalendar② 24日目 の記事です.
①https://adventar.org/calendars/4321/
②https://adventar.org/calendars/4322/
すでに日本では25日になっていますが,僕はハワイ在住なのでセーフです().
作るもの
今回は,前々から使いたかったiOS shortcutsのssh機能を使ってraspberry piに計算をさせる何かを作りました.
shortcutsとは?
https://support.apple.com/ja-jp/guide/shortcuts/welcome/ios
ショートカットは、Appでの1つまたは複数の作業をすばやく完了するための機能です。「ショートカット」Appでは、複数の手順を組み合わせた独自のショートカットを作成できます。たとえば、海の波情報を取り込み、ビーチまでの所要時間をチェックし、サーフミュージックのプレイリストを再生する、という「サーフタイム」ショートカットを構築できます。
できたもの
ゴミができた pic.twitter.com/MjhuL4HITS
— ふぁぜろぐ (@fazerog02) December 24, 2019
こんな感じで計算式を引数で送ると計算結果がメールで返ってきます.
書いたコード
raspberry pi側
import sys
import smtplib
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.utils import formatdate
MY_ADDRESS = "送る側のメールアドレス@gmail.com"
PASSWORD = "パスワード"
TO_ADDRESS = "受け取る側のメールアドレス@gmail.com"
class Mail:
def __init__(self):
self.smtpobj = smtplib.SMTP_SSL('smtp.gmail.com', 465)
self.smtpobj.login(MY_ADDRESS, PASSWORD)
def make_massage(self, from_address, to_address, subject, text):
message = MIMEText(text)
message["Subject"] = subject
message["From"] = from_address
message["To"] = to_address
message["Date"] = formatdate()
return message
def send(self, from_address, to_address, message):
self.smtpobj.sendmail(from_address, to_address, message.as_string())
def close(self):
self.smtpobj.close()
mail = Mail()
# 引数を取得 ["main.py", "1+2"]みたいな感じで取得される
args = sys.argv
# 式を実行
ans = eval(args[1])
message = mail.make_massage(MY_ADDRESS, TO_ADDRESS, "result", str(ans))
mail.send(MY_ADDRESS, TO_ADDRESS, message)
mail.close()
raspberry piのssh設定に関しては,https://qiita.com/3no3_tw/items/4b5975a9f3087edf4e20を見るといいと思います.
####shortcus側
これはコードとは言えないですが...
まとめ
***それ,電卓でよくね??????????????????????***
shortcuts,自由度が高くて色々なことができるので,興味があるiOSユーザーの人はいじってみると面白いと思います.
拙い文章ですが最後まで読んでいただき,ありがとうございました.