Python
Pythonista3

バッテリー情報を取得するWebAPPをPythonista3で実装する

端末情報にアクセスするためのツールをPythonistaで実装したくてやってみた。

とはいえ、バッテリー情報を取得するスクリプトはPythonistaにサンプルとして実装されているので、flaskを使ってブラウザから取得できるようにした。

実装は以下の通り。

from objc_util import *

from flask import Flask

app = Flask(__name__)

@app.route('/battery')
def get_battery_info():
UIDevice = ObjCClass('UIDevice')
device = UIDevice.currentDevice()
battery_states = {1: 'unplugged', 2: 'charging', 3: 'full'}

device.setBatteryMonitoringEnabled_(True)
battery_percent = device.batteryLevel() * 100
state = device.batteryState()
state_str = battery_states.get(state, 'unknown')
device.setBatteryMonitoringEnabled_(False)

return 'Battery level: %0.1f%% (%s)' % (battery_percent, state_str)

if __name__ == '__main__':
app.run()

objc_utilでObject-Cのライブラリを使うことができる。

これを使って端末情報を取得してバッテリーの残量を取り出している。

あとはPythonista上でアプリを実行し、Safariからlocalhost:5000/batteryにアクセスすればバッテリーの残量と充電中かどうかの情報が表示される。

Pythonistaをもっと使いこなしたいので、Object-Cとobjc_utilの使い方を調べておきたい。