I log …

KLWP♡Functionsメモ(MU~WI)

目次

  1. MU:楽しい数学
  2. NI:通知取得
  3. RM:リソースモニター
  4. SH:シェルコマンド
  5. SI:システム情報
  6. NC:ネットワーク情報
  7. TC:テキスト変換
  8. TF:時間差の計算
  9. TS:通信状況
  10. TU:タイマーユーティリティー
  11. UC:未読カウント
  12. WF:天気予報
  13. WG:ウェブ情報読取
  14. WI:天気情報

【こちらは前サイトからの移植記事になります。】

 日々進化するKLWP。
 Functionsの個人的なメモ用記事。
 無駄にこだわって時間とかphpで再現できるのはphpで再現してます。位置情報だけはphpでとるのめんどくさかったので全部スカイツリーの値を例で入れてます。
 スマホから見るとちょっとわかりにくいかもしれないけど、式、説明、返される値、備考(蛇足)の順に書いてます。

【2017/7/7追記】FL追加しました【/追記終わり】
【2018/3/4追記】SI追加しました【/追記終わり】

MU:楽しい数学

 ユーティリティーとか言われても。

説明 備考、返される値など
$1+1$ 足し算 2
$2-1$ 引き算 1
$2*3$ 掛け算 6
$4/2$ 割り算 2
$2^3$ $mu(pow,2,3)$ 累乗 8または8.0
mu(pow)を使うと8.0となる
$3%2$ 余り 1
余りのみ表示
$mu(ceil, 3.14)$ 小数点以下切り上げ 4.0
小数点は消えない
$mu(floor, 3.80)$ 小数点以下切り捨て 3.0
切り捨てる位置は指定できない
$mu(sqrt, 2)$ 平方根 1.41421
ルート2!
$mu(round, 2.80)$ 小数点以下四捨五入 3
指定しない場合整数にする
$mu(round, 2.858284, 2)$ 指定した小数点以下の四捨五入 2.86
$mu(min, 1, 3)$ 指定した数値の最小値を返す 1.0
$mu(max, 1, 3)$ 指定した数値の最大値を返す 3.0
$mu(abs, -1)$ 絶対値を返す 1.0
$mu(cos, 90)$ コサイン 0.0
$mu(sin, 90)$ サイン 1.0
$mu(tan, 45)$ タンジェント 0.99999
$mu(atan, 45)$ 逆タンジェント 88.72696
$mu(log, 5)$ 常用対数 0.69897
$mu(ln, 5)$ 自然対数 1.60943
$mu(rnd, 10, 100)$ 指定した数字の中からランダムな数値を返す 10~100

 klwpで斜めのプログレスバーをぴったりおさめる!で大活躍しました。

NI:通知取得

説明 備考、返される値など
$ni(count)$ 消去可能な通知の数 数字が返される
$ni(scount)$ 消せない通知の数 数字が返される
$ni(pcount, [パッケージ])$ 指定したアプリの未読通知の数 アプリのパッケージを調べて指定する
↑ここまで単純なカウント
↓ここから通知指定
$ni(0, [type])$ 消去可能な1つ目の通知に関するもの 2個目は1、3個目は2となる
$ni(s0, [type])$ 消せない1つ目の通知に関するもの 2個目は1、3個目は2となる
$ni([パッケージ], [type])$ 指定したアプリの通知に関するもの
↑ここまで通知指定
↓ここから通知指定した通知の内容指定
$ni([指定した通知], title)$ 通知のタイトル 大抵アプリ名
$ni([指定した通知], text)$ 通知の文字列
$ni([指定した通知], desc)$ 通知の説明 textより長い
$ni([指定した通知], icon)$ 通知のアイコン 画像指定の際に数式入力する
$ni([指定した通知], bicon)$ 通知の大きなアイコン 画像指定の際に数式入力する
$ni([指定した通知], count)$ 通知の数 1個目の通知の中の通知の数
$ni([指定した通知], pkg)$ 通知のアプリのパッケージ
$ni([指定した通知], app)$ 通知のアプリ名
$tf(ni([指定した通知], time))$ 通知が出たのはいつか ○分前

 KLWPだけでLINEの通知数取得はこれです。

RM:リソースモニター

説明 備考、返される値など
$rm(type,int)$ 内部ストレージに関する値を返す 単位:%
$rm(type,ext)$ 外部SDに関する値を返す 単位:%
$rm(cidle)$ 現在の遊んでいるCPUの割合 単位:%
$rm(cused)$ 現在使用中のCPU(システム+ユーザー)の割合 単位:%
$rm(cusr)$ 現在ユーザーに使用されているCPUの割合 単位:%
$rm(csys)$ 現在システムに使用されているCPUの割合 単位:%
$rm(fmin)$ 最小CPU周波数 単位:Mhz
$rm(fmax)$ 最大CPU周波数 単位:Mhz
$rm(fcur)$ 現在のCPU周波数 単位:Mhz
$rm(mtot)$ 合計メモリ 単位:MB
$rm(mfree)$ 空きメモリ 単位:MB
$rm(mused)$ 使用中メモリ 単位:MB
$rm(fstot,[fs])$ 合計ストレージ容量 単位:MB
$rm(fsfree,[fs])$ 空きストレージ容量 単位:MB
$rm(fsused,[fs])$ 使用中ストレージ容量 単位:MB

 何に使うのこれ。ストレージの容量が95%を超えたらパンパンだぜとか表示する感じ?
  $if(rm(fstot, int)*0.05>rm(fsfree, int),"パンパンだぜ")$

SH:シェルコマンド

 シェルコマンドか、UNIXコマンドでググると良い。アプリ内例文を入れてコマンドを一文字消しただけですごい固まったりするから手入力よりコピペで一気に書いた方がいい……。

説明 備考、返される値など
$sh("cmd", [timeout], [lines])$ シェルコマンドの結果を返す [timeout]は更新までの待ち時間、[lines]は表示する行数
$sh("ps | grep '^u' | wc -l")$ ユーザーのプロセス数 何のプロセス数なんだ……!?
$sh("cat /proc/cpuinfo | grep Hardware | sed 's/.*: //'")$ 現在のCPUテクノロジー 私のスマホでは何も表示されない
$sh("ls -l | grep ^d | wc -l")$ ディレクトリ数を調べる

SI:システム情報

説明 備考、返される値など
$df("EEE hh:mma", si(alarmd))$ 次のアラームの時間をフォーマット通りに返す 曜日 時:分と返される
$si(alarmd)$で次のアラームのタイムスタンプを返す
$si(alarmt)$ 次のアラームの元々の文字列
$si(alarmon)$ アラームが有効なら1、向こうなら0を返す
$tf(si(alarmd))$ 次のアラームまでの時間 今から○時間後、○分後と言う形で返される
$si(land)$ 画面の向きが縦ならば0、横ならば1を返す 縦横でホーム画面を変えたかったらコレ!
$si(locked)$ 端末がロックされていたら1、ロックされていなければ0 ロック画面で表示を買えたかったらこれ!
$si(lmode)$ 位置情報設定がどうなっているか OFF, SENSORS_ONLY, BATTERY_SAVING, HIGH_ACCURACY, UNKNOWNが返される
$tf(df(S) - df(S, si(boot)))$ 起動してからの稼働時間 $si(boot)$で起動した時刻のタイムスタンプを返す
$si(screen)$ 現在のスクリーンが何番目か
$si(screenc)$ スクリーン数
$si(rwidth)$ 画面横幅
$si(rheight)$ 画面縦幅
$si(rratio)$ 画面縦横比
$si(model)$ スマホの機種名
$si(man)$ メーカー名
$si(build)$ ROM名
$si(aver)$ ANdroidバージョン番号
$si(mindex)$ 親モジュールからみた番号
$si(mindex, 1)$ 親の親モジュールからみた番号
$si(lnchname)$ ランチャーアプリ名
$si(lnchpkg)$ ランチャーアプリのパッケージ
$si(volr)$ 着信音量 0~100
$si(vola)$ アラーム音量 0~100
$si(pkgname, si(lnchpkg))$ パッケージからアプリ名を表示 この場合ランチャーアプリ名が表示される
他にパッケージ使う場面といえば通知機能かな
$si(pkgname, ni(0,pkg))$ $ni(0,app)$と同じ表示になる(意味あるのか……?)
$si(pkgver)$ パッケージのバージョン名
$si(pkgvern, si(lnchpkg))$ パッケージのバージョン数

NC:ネットワーク情報

説明 備考、返される値など
$nc(csig)$ 電波強度 0~4を返す
$nc(operator)$ 通信事業者
$nc(dtype)$ 接続の種類 LTE, HSUPAなどを返す
$nc(dtypes)$ 接続種類の短縮表記 4G, 3Gなどを返す
$nc(ssid)$ Wi-FiのSSID
$nc(wsig)$ Wi-Fiの電波強度 0~9を返す
$nc(csiga)$ 基地局からの電波強度
$nc(csigd)$ 基地局からの電波強度をdbmで返す
$nc(wrssi)$ Wi-Fiの生の電波強度
$nc(wspeed)$ Wi-Fiの通信速度
$nc(bt)$ bluetoothが無効なら0、有効なら1、接続中なら2を返す bluetoothの状態でアイコンフォントを変更する
$if(nc(bt)=0, Bluetooth_disabled, nc(bt)=1, Bluetooth, Bluetooth_connected)$
$nc(airplane)$ 機内モードか無効なら0、有効なら1を返す
$nc(ifip)$ IPv4アドレス
$nc(ifname)$ インターフェイスの名前
$nc(ifip, 1)$ 二つ目のIPv4アドレス
$nc(cell)$ 現在の電波状態を返す OFF, AIRPLANE, ON, DATA, ROAMING, DATAROAMING
$nc(wifi)$ Wi-Fiの電波状態を返す DISABLED, ENABLED, CONNECTED

TC:テキスト変換

説明 備考、返される値など
$tc(low, "sOme tExT")$ テキストを小文字に変換 some text
$tc(up, "sOme tExT")$ テキストを大文字に変換 SOME TEXT
$tc(cap, "sOme tExT")$ テキストの最初の文字を大文字に変換 SOme tExT
$tc(cut, "sOme tExT", 4)$ 指定した文字数だけ表示 sOme
スペースも1文字と数える
$tc(ell, "sOme tExT", 4)$ 指定した文字数で省略し、末尾に…をつける sOme…
スペースも1文字と数える
$tc(cut, "sOme tExT", 2, 5)$ どの文字の後ろで切るか、そこから何文字抜き出すか指定して抜き出し表示 me tE
スペースも1文字と数える
$tc(cut, "sOme tExT", -2)$ 後ろから数えて指定した文字数表示 xT
スペースも1文字と数える
$tc(utf, "201")$ 指定したUFTコードを表示 0x201のUFTコードに対応した文字を表示
$tc(len, "sOme tExT")$ 文字列の長さを返す 9
スペースも1文字と数える
$tc(n2w, 42)$ 数字をアルファベットにして返す forty two
$tc(ord, 1)$ 序数の接尾語を返す st
$df(d)+tc(ord, df(d))$ 今日の日にちに接尾語をつけて返す 26th
$tc(lpad, 5, 10, 0)$ 指定された文字数になるように指定した数字で左詰め 0000000005
$tc(rpad, 5, 10, 0)$ 指定された文字数になるように指定した数字で右詰め 5000000000
$tc(reg, "Foobar one", "o+", X)$ 指定した文字で置換 FXbar Xne
“o+”で指定するとoが何文字続いても1文字に変換される
$tc(html, "<b>Four</b> is %gt; than 3")$ HTMLタグを適用または通常の文字列に変換 Four is %gt; than 3
$tc(nfmt, "Total is 30000.12")$ 数字を地域により適切な形式に変換 Total is 30,000.12

TF:時間差の計算

 他の機能でタイムスタンプを取得して、あとどのくらいか、もしくはどのくらい時間差があるか計算する。

説明 備考、返される値など
$tf(ci(start,0))$ 指定した時間までどのくらいか/指定した時間からどのくらい経ったか 予定までどのくらいか
$tf([function])$ 指定したタイムスタンプの時刻まであと何時間/何分か、もしくは指定時刻から何時間後/何分後か表示
$tf(0h0m0sa1d)$ 時刻を指定してあと何時間か表示 0h0m0sで今日の午前0時0分0秒を指定し、a1dでその翌日を指定=日付が変わるまで何時間かを表示
$tf(0h0m0sa1d, hh:mm:ss)$
$tf(0h0m0sa1d, h時間ms)$
$tf(0h0m0sa1d, M)$
時間のフォーマットを指定して指定時刻までカウントダウン/カウントアップ 表示内容は上と同じだが、フォーマットを指定している
$tf(ai(sunset) - ai(sunrise))$
$tf(ci(end,0) - ci(start,0))$
時間差を表示 日没-日の出=日中の長さ
予定の終了時刻-開始時刻=予定の長さ

TS:通信状況

説明 備考、返される値など
$ts(type)$ 情報種類を指定する [累積t・データ通信m・wifi利用w]+[ダウンロードrx・アップロードtx・両方t]を組み合わせ、9種類指定できる
ex)trx:累積ダウンロード量
ex2)mtx:モバイル通信でのアップロード量
ex3)wt:Wi-Fi利用での累積ダウンロード及びアップロード量
$ts(tt)$ 累積ダウンロード及びアップロード量を返す
$ts(type, [unit])$ type以外は必須じゃない [unit]は単位指定、a(自動)、b(バイト)、k(キロバイト)m(メガバイト)を指定可能
自動の場合は単位も自動で表示される
$ts(type, [unit], [start], [end])$ 期間を指定可能 [start]、[end]はそれぞれ相対的な指定[r+数字+単位(d,w,M)]や絶対的な指定[数字+単位(d,M)]ができる
ex)r1d:1日前
ex2)1d:今月の1日
ex3)1dr2M:前月と2ヵ月前の2か月間
$ts(type,a,r1d,r1d)$ 前日を指定
$ts(type,a,r1w)$ 直近7日間を指定
$ts(type,a,1d)$ 今月1日からの期間を指定

TU:タイマーユーティリティー

 ユーティリティーって何なの……!

説明 備考、返される値など
$tu(mode,[timer])$ [timer]は何分ごとに更新するかを設定できる
分数や小数点も設定可能
$tu(rnd, 1, 10, 20)$ 10~20の中でランダムな数字を毎分返す
$tu(seq, 1/4, 1, 100)$ 1~100まで15秒ごとに数えていく
$tu(rndimg, 15, "/sdcard/pictures")$ 15分ごとに指定のフォルダからランダムに画像を表示 画像指定の際に数式入力する
$tu(rndimg, 5, "/sdcard/pictures", "txt")$ 指定のフォルダから特定のパターンに一致する画像を表示
$tu(rndfile, 15, "/sdcard/foo")$ 15分ごとに指定のフォルダからランダムにファイルを取り出す
$tu(rndfile, 5, "/sdcard/foo", "txt")$ 指定のフォルダから特定のパターンに一致するファイルを取り出す

UC:未読カウント

説明 備考、返される値など
$uc([mode])$ それぞれの未読/不在着信をカウント sms:ショートメール、calls:着信、gmail:Gメール、whatsapp:ワッツアップを指定可能
$uc([mode],[パラメーター])$ パラメーターでは何を読みとるか指定可能 text:本文、date:日付、from:送信者、num:電話番号、その他、Gメールのフォルダも指定可能
$uc(sms)$ 未読SMS数
$uc(calls, num)$ 不在着信の番号
$tf(uc(whatsapp, date, 1))$ ワッツアップの二番目に新しい未読の日時

WF:天気予報

説明 備考、返される値など
$wf(type, 日にち)$ 指定した日の予報を返す 0は当日、1が明日、2が明後日と続く
$wf(min, 0)$ 今日の最低気温
$wf(max, 1)$ 明日の最高気温
$wi(tempu)$ その地域での気温の記号
$wf(cond, 0)$ 今日の天気予報
$wf(icon, 0)$ 今日の天気予報アイコン UNKNOWN, TORNADO, TSTORM, TSHOWER, SHOWER, RAIN, SLEET, LSNOW, SNOW, HAIL, FOG, WINDY, PCLOUDY, MCLOUDY, CLEAR
$wf(code, 0)$ 今日の天気予報コード TORNADO, TROPICAL_STORM, HURRICANE, SEVERE_THUNDERSTORMS, THUNDERSTORMS, MIXED_RAIN_SNOW, MIXED_RAIN_SLEET, MIXED_SNOW_SLEET, FREEZING_DRIZZLE, DRIZZLE, FREEZING_RAIN, SHOWERS, HEAVY_SHOWERS, SNOW_FLURRIES, LIGHT_SNOW_SHOWERS, BLOWING_SNOW, SNOW, HAIL, SLEET, DUST, FOGGY, HAZE, SMOKY, BLUSTERY, WINDY, CLOUDY, MOSTLY_CLOUDY, PARTLY_CLOUDY, CLEAR, FAIR, MIXED_RAIN_AND_HAIL, ISOLATED_THUNDERSTORMS, SCATTERED_SHOWERS, HEAVY_SNOW, SCATTERED_SNOW_SHOWERS, THUNDERSHOWERS, SNOW_SHOWERS, ISOLATED_THUNDERSHOWERS, NOT_AVAILABLE
$wf(wspeed, 0)$$li(spdu)$ 今日の風速予報(km/h,mph) その地域での風速単位
$wf(wspeedm, 0)$ 今日の風速予報(m/s)
$wf(wdir, 0)$ 今日の風向き予報
$wf(hum, 0)$ 今日の湿度予報 数字のみを返す
単位:%

WG:ウェブ情報読取

 Loading…か何も表示されないかのどちらかなんだけど、これ使えてる人いるの?

WI:天気情報

説明 備考、返される値など
$wi(temp)$$wi(tempu)$ 現在の気温と単位
$wi(flik)$$wi(tempu)$ 体感温度と単位
$wi(cond)$ 現在の天気
$df("hh:mma", wi(updated))$ 指定したフォーマットで最後に天気情報が更新された時間
$wi(provider)$ 天気情報の提供元
$wi(icon)$ 天気アイコン UNKNOWN, TORNADO, TSTORM, TSHOWER, SHOWER, RAIN, SLEET, LSNOW, SNOW, HAIL, FOG, WINDY, PCLOUDY, MCLOUDY, CLEAR
$wi(code)$ 天気コード TORNADO, TROPICAL_STORM, HURRICANE, SEVERE_THUNDERSTORMS, THUNDERSTORMS, MIXED_RAIN_SNOW, MIXED_RAIN_SLEET, MIXED_SNOW_SLEET, FREEZING_DRIZZLE, DRIZZLE, FREEZING_RAIN, SHOWERS, HEAVY_SHOWERS, SNOW_FLURRIES, LIGHT_SNOW_SHOWERS, BLOWING_SNOW, SNOW, HAIL, SLEET, DUST, FOGGY, HAZE, SMOKY, BLUSTERY, WINDY, CLOUDY, MOSTLY_CLOUDY, PARTLY_CLOUDY, CLEAR, FAIR, MIXED_RAIN_AND_HAIL, ISOLATED_THUNDERSTORMS, SCATTERED_SHOWERS, HEAVY_SNOW, SCATTERED_SNOW_SHOWERS, THUNDERSHOWERS, SNOW_SHOWERS, ISOLATED_THUNDERSHOWERS, NOT_AVAILABLE
$wi(wspeed)$$li(spdu)$ 風速(km/h,mph) 単位表示
$wi(wspeedm)$ 風速(m/s) 単位なし
$wi(wchill)$$tc(utf, b0)$$wi(tempu)$ 風速を考慮した体感気温
$wi(wdir)$ 風向き
$wi(press)$ ミリバール単位での気圧
$wi(hum)$ 湿度 単位:%
$wi(lid)$ 気象台ID