駅前散策ブログ@かわさき HOT

しゃくねつの♪ ふぁいやーだぁんす♪

【RPA】【MacroDroid】スクショをトリガーにして…

2024-07-31 07:58:03 | Macrodroid&RPA関連
(´・ω・)ノ < らいなーです。

スクリーンショットの撮影時にマクロがトリガーされるようにするために…



海外の方の作成されたマクロテンプレートを参考にして、
Android内部で発行されている(はずの)インテント命令「android.intent.action.ACTION_IMAGE_CAPTURE」をキャッチしたら動作するように、トリガーを組んでみた次第。



しかしAndroid13環境で、動きません。
他の方の環境では動くのかなぁ…?

( ´~`)物理ボタン長押しパススルーのほうが面倒が無くて楽かも知れませんなぁ。

202408010644追記:
検証中に写真撮影トリガーに誤発火バグを見つけたのでMacrodroidDevに報告したところissuesリストに追加になりました。

以下、証跡。

P.S.
300円でヤフオクした「Kanon」届きました。

GBAイメージへの変換を、これで試せるよ!



ああ~!有隣堂さんのセール品買い逃したぁ~!

2024-07-29 19:46:48 | 駅前散策
(´・ω・)ノ < らいなーです。

昨年、プロッター祭りをやられていた有隣堂アトレ川崎店さんのレジ横セールが「再び」やっていたらしく、今回の出物はマネークリップだったそうです。
買えませんでしたぁ~!

傷心しつつ、いつもの…



あっ(察し)



たくさんあるね。



みちのくは盟友Oオススメなので買っておきましょう。



110円とか、クソゲーなんですか>野々村


( д゚)ハッ!
引っ越し前に荷物増やすとか…


202403310744追記:
サターンソフト、晒したらあっという間に捌けた模様。貴様見ているなッ!?

うちのブログに来るときにアクセス元をmsnのntpにしてる方へ

2024-07-27 12:48:42 | よもやま
擬装先をNTPにするのはネットでは本当に害悪でしかないのでオススメしません。

202407271934
直してくださった模様!ありがたい!

【RPA】【MacroDroid】実は内部的な動作が2024年05月末の更新から変わっている「シェルスクリプト」

2024-07-27 12:26:26 | Macrodroid&RPA関連
(´・ω・)ノ < らいなーです。

2024年05月末位から、2018年頃に作ったシェルスクリプトありのマクロが失敗するようになって調べてみたのですが、


(昔)

アクション:シェルスクリプト1
アクション:シェルスクリプト2

とあった場合は、シェルスクリプト1でカレントディレクトリの変更をすると、その変更は後続のシェルスクリプト2に引き継がれました


(2024年05月末以降)

アクション:シェルスクリプト1
アクション:シェルスクリプト2

とあった場合は、シェルスクリプト1でカレントディレクトリの変更をすると、その変更は後続のシェルスクリプト2に引き継がれず、シェルスクリプト毎にカレントディレクトリが初期状態に戻るようになりました

シェルスクリプトの動作を旧来の基準で考えているとダメですね。見直しが必要でした。



【RPA】【MacroDroid】「HTTPリクエスト」アクションを用いてファイルをダウンロードするには?

2024-07-27 11:13:45 | Macrodroid&RPA関連
(´・ω・)ノ < らいなーです。

Android13以降のAndroid端末で、
cURLが塞がれているケースがあり、
シェルスクリプト絡みでトラブルになっているケースが発生している場合があるようなので、
対処例のひとつとして書いておきます。




さて、
まずはサンプルマクロ全体を見てみます。



サンプルのマクロでは、TP-LINKさんのルーター、C1200のサポートページから、ルーターのファームウェアzipファイルをダウンロードします。



【ダウンロードURLの末尾のファイル名称だけを抽出するには?】

ダウンロードURLの末尾のファイル名称のみを抽出しておき、ファイル保存時の名称として利用する必要がありますね。

このような場合は「文字列処理」アクションで正規表現を使いつつ、抽出します。



「対象文字列」欄に、ダウンロードURL全体を指定して(サンプルではダウンロードURLをConst値として変数に持たせているので、ローカル変数のマジックテキストを指定して)、

「一致する文字列(正規表現)」欄には
.+/(.+?)([?#;].*)?$
を入力。
そして「グループ1」のラジオボタンを選択します。
細かくは説明しませんが、当該正規表現では文字列のグルーピングをしていて、そのグルーピング内のはじめのグループに「ファイル名称部分」が格納されるため、グループ1を態々指定してあげる必要があります。

面倒なら正規表現の部分
でも良いかもしれませんねぇ。
これでも末尾は拾えるような?
まぁ厳密にやってるよ、ということで。



【HTTPリクエストでどうやってファイルを保存するんじゃい!?】



リクエストメソッドをGETにして、
URLにはファイルダウンロードのURLをまるっと貼り付けて…



「HTTPレスポンスをファイルに保存する」オプションを利用して、保存先フォルダを予め選択しておき、任意のファイル名を「ファイル名」欄に記述します。
「ファイル名」欄にはマジックテキストが使えますから、例えばa.zipと固定て指定してもファイルを保存することは出来るのですが、オリジナルのファイル名を損なう事になってしまいますから、オリジナルのファイル名をまるまる残したければ、何処か別な変数領域などに「オリジナルのファイル名」を保管しておいて、名称指定時に利用するしかありません。

前段の正規表現うんぬんの部分は、その事前準備をしていた、というわけですね。




【URLエンコードの問題をどうするか?】

では、
ファイル名を「ダウンロードURLのまま」抽出してみましょう。

↓結果はこちら。


余計な%の付いた文字列が含まれてしまっています。URLエンコードですね。

インターネットのアドレスには使えない文字列があり、そうした文字列はURLエンコードという処理によって「予め変換がなされて」います。%20うんぬんは、半角スペースのことですね。


これを何とかしないといけません。


が、
Macrodroid単体だと、実はどうしようもありません。

そんなアクションは2024年07月27日現在の最新ベータ版v5.47.5にもありません。

じゃあどうすんの?


Javascriptを使うんだよ!

と。


JavascriptのdecodeURLクラスにダウンロードURLを喰わせて、予めURLデコードしておきます、と云うのが解決策となります。


これで、オリジナルのファイル名を保ったまま、「HTTPリクエスト」アクションを使って、ファイルダウンロードをすることが出来るようになりました。



記事は以上です。
ご参考までに!

ここまでお読み下さりありがとうございました。