探検


【自動化】MacroDroid Part14【マクロ】

■ このスレッドは過去ログ倉庫に格納されています
2024/09/18(水) 19:18:08.16ID:jY4h33cO
Androidの操作を自動化するアプリMacroDroidのスレです。
マクロ製作の質問や情報交換をしましょう。作成したマクロの共有も大歓迎です。

次スレは>>970が立てること。立てられない場合は>>990が代わりに立ててあげてください。

■前スレ
【自動化】MacroDroid Part11【マクロ】
https://egg.5ch.net/test/read.cgi/android/1698575233/
【自動化】MacroDroid Part12【マクロ】
https://egg.5ch.net/test/read.cgi/android/1707528672/
【自動化】MacroDroid Part13【マクロ】
https://egg.5ch.net/test/read.cgi/android/1716478718/
2024/10/14(月) 22:49:16.36ID:ePWkDVKq
マジックテキストから取得が出来る経度緯度を10進法から60進法に変換したいのですが式分かる方いますか、関数を使う見たいですが意味不明でして
GPSに連動させて北緯--度--分--·--秒 表記で取得出来ないでしょうか
2024/10/14(月) 23:32:34.01ID:Qs5HC0Uh
>>166
https://www.google.com/search?q=%E7%B7%AF%E5%BA%A6+%E8%A8%88%E7%AE%97
2024/10/15(火) 00:28:50.38ID:q582AJeI
>>166
function convertDecimalToDMS(latDecimal, longDecimal) {
// 緯度の計算
const latDeg = Math.floor(latDecimal);
const latMin = Math.floor((latDecimal - latDeg) * 60);
const latSec = (((latDecimal - latDeg) * 60 - latMin) * 60).toFixed(2);
// 経度の計算
const longDeg = Math.floor(longDecimal);
const longMin = Math.floor((longDecimal - longDeg) * 60);
const longSec = (((longDecimal - longDeg) * 60 - longMin) * 60).toFixed(2);

// 結果のフォーマット
return `北緯${latDeg}度${latMin}分${latSec}秒 東経${longDeg}度${longMin}分${longSec}秒`;
}

// 入力
const latitude = {lv=北緯};
const longitude = {lv=東経};

console.log(convertDecimalToDMS(latitude, longitude));
2024/10/15(火) 01:11:39.11ID:UnHSrEps
>>167
>>168
ありがとうございます。事前にGoogleやChatGPTで確認して変換サイトや変換式は目にしてるのですが、
>>168の式ですがMacroDroidのアクションに当てはめる事は出来ますか、勘違いでしたらすみません。
2024/10/15(火) 01:16:54.61ID:UnHSrEps
これは、Javascriptでしょうか、やはり高度な式になりそうで敷居が高過ぎるかも
171165
垢版 |
2024/10/15(火) 02:20:12.13ID:tsMTPZmj
トリガー
電話の着信時
Aさん
通話開始時
Aさん

不在着信時
誰でも(番号指定無し)

アクション
再生:音楽.mp3
発動したトリガー
電話の着信時:Aさん

再生:[再生中のサウンドを停止]
発動したトリガー
通話開始時:Aさん
発動したトリガー
不在着信時:Aさん
誰でも(番号指定無し)

まだ実践は出来てないけどマクロテストで着音→サウンド停止が出来たので大丈夫かも?
問題は不在着信の時のサウンド停止がトリガーから調べられないので何かうまい方法がないものか、、
2024/10/15(火) 03:20:56.03ID:IpdNteXs
>>170
アクション「Javascriptコード」にコピペするだけだよ
ただ>>168は自分が以前から使っているのか変数:北緯東経を持ってきちゃっているのでそのままだとエラー出るから
const latitude = {last_loc_lat};
const longitude = {last_loc_long};
に書き換えて
2024/10/15(火) 05:32:57.89ID:UnHSrEps
>>172
御礼が遅くなり失礼しました。「Javascriptコード」にコピペするだけだよの一文に救われました。
変数 北緯東経を持って来られてと言う事は、変数に緯度経度を直接入力しても受け付けるのかなJavascriptコードは未知の領域ですが習得したいです。ほんとうに感謝いたします。
2024/10/15(火) 06:13:03.87ID:JDOxba8Z
>>171
スクショじゃないと細かい所見えないけど再生停止の通話開始と不在着信条件は and じゃなくてちゃんと or にしてある?
2024/10/15(火) 06:23:13.45ID:XyjIYgYM
>>169
https://imgur.com/S6LPZ5q.png
2024/10/15(火) 07:18:04.15ID:krqAAoNs
あら分かりやすい
2024/10/15(火) 08:26:00.18ID:q582AJeI
>>173
雑な書き込みで申し訳ありませんでした…
最近、5chへは書き込み失敗が続いていたので、まさか書き込み成功するとは思っていませんでしたw

さて、MacrodroidのJavaScriptの使い方ですが、先程のソースをコピーしてください。
変数名はご自分の環境のものに変更してください。
右上の「…」を選ぶと、変数は設定できます。
「コンソール出力変数」のところに変数名を入れると、今回の処理結果を取得することができます。
右上の「再生ボタン」を押すとテストできます。
「// 結果のフォーマット」を修正して、お好みの出力に変更してください。
2024/10/15(火) 08:48:38.59ID:krqAAoNs
マイナスなら南緯西経表記になるようにした
まあ海外に行く予定なんてないけど
179165
垢版 |
2024/10/15(火) 09:44:11.83ID:EXWSAAvF
>>174
https://i.imgur.com/GPre6a5.png

すんませんorとか全然知らなくてちょい修正してみました一応トリガーテストで電話の着信時→通話開始時と不在着信時を試したら音は止まる模様(未実践)
2024/10/15(火) 10:57:50.31ID:UnHSrEps
>>175
分かりやすいアクション項目、有難う御座います。Javascriptコードは理解出来ませんが、これなら何とか順を追って読めば理解できそうです。

>>177
丁重な説明ありがとうございます。頂きましたコードですが、結果のフォーマットが横に長かったので、北緯と東経で二段にさせて頂きました。
改行は¥nでなく\nを調べるだけで一苦労でした。同じ改行なのに違いが分からない。

お陰様でグローバル変数に格納までできて通知の開閉をトリガーにと思ったのですが、まさか見当たらず存在しないのでしょうか、ドロワーの開閉があるのでてっきりあるものと思ってました。
2024/10/15(火) 11:04:05.01ID:JDOxba8Z
>>179
そんな感じでいいよ
2つ以上の条件を使う場合は初期設定で and (すべての条件がそろったら実行)になってるので、今回はそのように or (どれかの条件が1つ当てはまったら実行)にする必要がある
上の再生の方は1つしか条件がないので or にする必要はないけれど動きとしてはそれでも問題ない(後から条件が追加される可能性がある時にはあえてそのように作る事もある)
2024/10/15(火) 11:45:17.59ID:fGWPS9zq
Google Geminiに聞いたら

Macrodroidで10進表記の緯度を60進表記に変換するには、JavaScriptレットを使用して計算を行うのが一般的です。

一般的らしい。知らなかった
183165
垢版 |
2024/10/15(火) 12:12:18.70ID:EXWSAAvF
>>181
確認ありがとうございます
and (すべての条件がそろったら実行)
↑
これ知らないと複数の状況が重なるマクロが作れないんですね
ちょっとこれからも弄る時参考にやってみます
2024/10/15(火) 13:15:28.24ID:fGWPS9zq
>>180
残念ながら通知の開閉にトリガーはないね
MacroDroidのドロワーの開閉はMD自身が用意した画面だからいろいろ操作できるけど、Android本体のあれこれはAndroid本体が外部から操作できるような技術を提供していなければどうにもならないこともある
2024/10/15(火) 15:40:29.47ID:rJITVvPb
変数の設定で現在値に5足したり引いたりするスマートな方法ありますか?今は最初からある現在値に1を足すのを5個並べてます。
2024/10/15(火) 16:26:19.75ID:fGWPS9zq
>>185
任意の式で[...]から自分自身(設定しようとしている変数)選んでから、続けて+5て入力してok
2024/10/15(火) 16:50:36.04ID:rJITVvPb
>>186
ありがとう
変数無いと思ったらグローバル変数と書かれてるのね。気が付かなかった。
2024/10/15(火) 17:03:39.61ID:UnHSrEps
>>184
見落としてでは無くやはり存在しないのですね。まさかの見落としかと思いましたが納得できました。ありがとう御座います。
MacroDroidにドロワーに設定させて頂きました。
2024/10/15(火) 17:10:07.97ID:fGWPS9zq
>>187
どんな変数だろうか?
種類で整数とか小数とかの変数なら、そのまま「ローカル変数:変数名」とか、グローバル変数なら簡単に「値:変数名」とか出るけど

文字列型だと、そのまま一発では選べなくて、ローカル/グローバルを最初に選ぶ形だけど、文字列型は直接計算式指定して値を入れるってできないから別なひと手間かかるはずだけど


MDのバージョンとか作成した変数の数とか選べる数でかわるのかもしれないけども
2024/10/15(火) 17:54:11.58ID:xKns7ZeH
+1を使ってると書いてある時点で整数型だとわかるし自分で作った変数がローカルとかグローバルの下に隠れてて見つからなかっただけ(今はもう解決してる)という事だろう
191165
垢版 |
2024/10/15(火) 22:54:16.09ID:tsMTPZmj
>>181
続報告
一応ssのマクロは全て実践で正常に動きました

が、盲点なのは自分から掛かってきた電話に対し「着信拒否」ボタンを押してしまうと着信音が流れたままになりました「着信拒否」の項目は電話トリガーにないので押したら詰み(でも使わないだろうけど)な模様
2024/10/15(火) 23:53:02.78ID:UnWXRpvC
Nintendo Switchのスクショをスマホで落とすとき、QRコード読んでWi-Fi繋げて、Wi-Fi繋がったら自動でダウンロードするっていうのがTaskerで出来るんだけど、こっちでも出来る?
同じように組めないかやってみたんだけど、まだこっち慣れてなくて
2024/10/16(水) 07:28:28.17ID:z2FC5gpn
>>191
通話終了もトリガーとアクションの停止条件に追加かな
あとは着信時に本体を表から裏にフリップしたら再生を停止させるとか
条件が沢山ある場合は指定が面倒になるのでアクションを着信時とそれ以外に分けてしまえばスッキリするよ
https://i.imgur.com/ct15D69.png
2024/10/16(水) 07:36:50.27ID:z2FC5gpn
>>192
Taskerだけに存在する特殊機能を使わなければMacroDroidでも概ね同じ事が出来るよ
今回のケースだとMacroDroidからQRコードを直接読む事は出来ないからレンズとか何かしらのアプリ経由になるかな
2024/10/16(水) 07:52:49.38ID:GYGMx1Gi
「電話が着信中である」の後ろに「サウンドを停止」を置けばいいだけなのに
いちいち個別に状況を指定してるのアホすぎる
あとそもそもAndroidはユーザーごとに着信時の設定できるだろ
196165
垢版 |
2024/10/16(水) 11:59:51.50ID:zQjhllt6
>>193
色々方法があるんですね今後の参考になりますありがとう

>>195
!?言われて調べたらデフォで個別設定出来るのですね
なんか昔はダメだった気がしてろくにそこを確認してませんでした助かります
2024/10/16(水) 12:19:57.36ID:PnXTEtao
>>192
switchとのネットワーク接続をトリガーにしてこんな感じで
httpリクエストは完了するまで待機にチェックを忘れずに
https://i.imgur.com/vKTYp2m.jpeg
2024/10/16(水) 12:33:17.46ID:59fGriIV
>>196
えっ?そんなの当然知っててマクロの勉強の為に聞いてんだと思ってた
2024/10/16(水) 18:21:12.04ID:O0gZgSU2
アクションの通知を表示でコレを常駐通知に出来ないでしょうか、通知チャンネルを高優先度にしても変わらず何か方法ありませんか
2024/10/16(水) 18:37:29.14ID:GYGMx1Gi
>>198
自分が指摘したわけでもないくせに
後から来てこういうこと言う奴きめえな
2024/10/16(水) 18:45:54.83ID:ZdMDO/Ub
>>199
通知消えたときトリガーでまた出す
2024/10/16(水) 19:03:20.96ID:O0gZgSU2
>>201
すみません質問が悪かったです。通知ドロワー内の通知を常駐にしたいのですが、(すべて消去)等タップで消えないように、マクロで無く設定で常駐させる事は出来ないですか、

Android 12使用
2024/10/16(水) 19:20:04.23ID:pKhbaGO1
>>194
>>197
2人ともありがとう
すごい!思ったよりもややこしくて自分には無理だった
参考にするよ!
とても助かった、本当にありがとう
2024/10/16(水) 19:57:51.18ID:hlAZH1CJ
>>200
よくそんなきめえ言葉使いできるな
2024/10/16(水) 20:08:11.66ID:O1rYrcms
だっさ
2024/10/16(水) 20:14:45.71ID:VXgwHFQi
>>202
消す時に毎回指定が面倒だなあと感じるのでその気持ちは理解できるけどそういうのは出来ないんだよね
さらに通知IDが指定できるなら削除も通知IDを指定させてくださいよ@開発者さま
って時々思ってるよ
2024/10/16(水) 20:22:50.15ID:nO7DB3s0
>>206
ありがとう、やはり無理なのね。
他の方法を考えます。
2024/10/17(木) 17:37:55.34ID:cLGz5khd
カメラの撮影をトリガーにして写真のファイル名を書き換える事は可能でしょうか、
IMG20241015101245.jpg → 2024-10-15 10-12-45.jpgのように分かりやすく変更したいのですが、
アクションの文字列処理で文字を削除で頭のIMGは削れたのですが - を適切に入れる処からつまずいています。
文字の注入項目が無いのでそもそも追加は無理なのかな
2024/10/17(木) 17:45:27.45ID:iyRSDIH1
撮影トリガーで現在の時間取得して、それでファイル名を変える
とかじゃダメなの?-入れる処理とかよりは楽なのでは
2024/10/17(木) 17:47:12.51ID:iyRSDIH1
途中で送ってもた
日時取得して文字列にしてファイル名変更とか無理かな?
2024/10/17(木) 18:56:06.90ID:cLGz5khd
>>209
レスありがとう。時間取得でファイル名にした場合いExif情報と差異が出ないかな、
2024/10/17(木) 19:43:46.48ID:rBYCqcOV
現在時間ではなくファイルのタイムスタンプ使えば大きな差はでないのでは?
2024/10/17(木) 20:14:07.68ID:e/DJxDjs
文字数固定なら配列に分割してつなぎ直せば行けると思うけど
2024/10/17(木) 20:14:25.43ID:cLGz5khd
>>212
間違っていたらすみません。ファイルのタイムスタンプと言うことはExif情報から読み出すと言う事でしょうか
MacroDroidでExif情報を処理する事が出来るのでしょうかアクションの項目を確認してはいるのですが見つからず、確かにExif情報が一番正確だとは思うのですが
2024/10/17(木) 22:25:38.13ID:i0qNtesY
>>208
文字列処理の全て置換で
^IMG(....)(..)(..)(..)(..)(..)\.jpg$ → $1-$2-$3 $4-$5-$6.jpg
2024/10/17(木) 22:54:28.98ID:sWn3yXv0
>>208
そもそもの追加はしごく単純に変数の設定で文字列型の変数に「あい」と設定すれば「あ」と「い」をつなげた文字列が入る
もとの変数に文字をつなげたいなら、たとえば上の「あ」の部分に自分自身を指定するだけ
「文字列操作」と「変数の設定」が近くにないのはまぁMD進化の歴史の都合なので

また、ある文字列の途中に何か文字列を追加するというのは、直接そのものは他の言語みてもそうあるものではなく、やっぱり分割と結合を自前で用意することがほとんど

1行で記述できない(ので、中間処理の変数が余計に必要な)だけで、MDでも同じ考え方で実現はできる

それと、文字列操作に正規表現はかなり強力だけど、MDは実装が貧弱なので、当たり前のように解説されてることでもMDにはその実装がなかったりもするので、いろいろと騙されてはいけないこともある
2024/10/17(木) 23:57:00.81ID:cLGz5khd
>>215
>>216
正規表現の式、詳しい説明ありがとう御座います。御礼が遅くなり済みません。全て置換で対象文字列が変換され変数に取り込まれました。
処理はお陰様で問題無いのですが、流石に専用アプリでは無いのでフォルダを指定して対象ファイルのリネームは無理ですよね。
2024/10/18(金) 00:21:29.06ID:L1op2yTE
無理ってことはないけどいろいろある
2024/10/18(金) 22:04:17.74ID:t+iK/bcJ
リネームは知らないな
シェルスクリプトで指定フォルダの最新ファイルのタイムスタンプを-区切りで取得
その後に取得したファイル名でファイルをコピー
元のファイルを削除するという3段階程度の流れならリネーム相当として出来るけど
2024/10/18(金) 22:28:31.64ID:BKK3DAMg
通知を消すというアクションでuniversal copyを除外するのを忘れてて
それが原因で>>73このように...失礼しました
そうとも気が付かずあれやこれや桜田ファミリア
2024/10/18(金) 22:38:41.30ID:t+iK/bcJ
>>219
ああmvコマンド使えばリネーム出来るんだな
2024/10/18(金) 23:04:03.50ID:MaeU42NR
>>220
誰しも通る道やぞ
2024/10/18(金) 23:19:55.15ID:ujIyROAu
>>218
>>219
リネームの自動化の場合、シェルスクリプトが必須みたく、昨日から調べているのですが、MacroDroidのテンプレにも使えそうなものも無く、
基礎も無い素人が一から覚えるのは敷居が高すぎかも、
シェルスクリプトやJavaScript見たいなプログラミング言語は一般のPC使えますとはレベルが違いますね。
2024/10/19(土) 00:36:13.89ID:+n1M8cPM
>>223
そうねぇ
いろんなものの基礎を築いた上で呪文が理解できるようになるもんだからね

ファイル操作で言えば、
ディレクトリというツリー構造があるファイルとディレクトリで同じ名前がつけられる存在しないものを指定していないか存在するものをさらに作ろうとしていないか
アクセス権はどうか
対象が正しく指定できるか
などなど、シェルスクリプト以前にやりたいことの仕様が決まってないとコードなんか書けないわけよ

んで、肝になる(MDだけではできない)のはファイル名の変更だけなんだからそんなんはmv f1 f2で終わっちゃうわけ
サンプルもなにもない(というかコマンド解説だけの話なんでごまんとある)話なんよな

MDでつかうなら、ということなら、せいぜい、f1,f2は変数なので、MDでの記述はmv {lv=f1} {lv=f2}となる(ローカル変数の場合/実際には[...]から選ぶので直接記述はしない)といったところ
コレももうサンプルでとかって話ではなくてただのコマンドヘルプレベル

あとはもう、f1,f2を文字列で正しく作れるか?だけなんでこれの何が正しいのかなんてやりたいこと説明できる人しかわからない
2024/10/19(土) 04:47:08.20ID:jkyh3u2p
>>224
なんとかシェルスクリプトでリネームを組めたのですが、ローカル変数から取得した文字列でスペースが入っていると機能しないのですが、回避方法はあるのでしょうか、

あらかじめ取得したファイル名を正規表現で 2024-10-10 06-56-03 に変換後に
シェル内で戻そうとすると反応せず
2024-10-10_06-56-03だとリネームされるのですが

これは仕様?そもそもスクリプトが間違ってるのか不明です。
2024/10/19(土) 05:29:04.27ID:JlMhWiEA
>>225
ちょっと前にも同じ話題があったけどファイル名にスペース使うと不具合起きるのはシェルスクリプトの仕様
回避方法もあるけどスペースを_に置き換えるとかは当たり前のようにやる癖を付けた方がいいよ
2024/10/19(土) 05:46:55.04ID:jkyh3u2p
>>226
わかりました有り難う御座います。
2024/10/19(土) 06:32:09.29ID:xD/SfhuB
ダブルクォーテーションで括りなされ
2024/10/19(土) 10:12:20.84ID:V29lCBCk
>>225
それもあるあるだな
シェルスクリプトはコマンドとか、それのオプション指定の区切りが半角スペースだからmv f1 f2の構文にたいして空白込みのパスを指定したらf1,f2がそれの空白の前後で対応してしまう
今回のパターンならf2がぶつ切りのファイル名と、それに続く指定になってしまうのでmv f1 f2 dirの形でコマンド実行になってしまう

今回のパターンなら、パスに関してはMDですべて処理できるとして、空白含めてパス(文字列のひとかたまり)と処理させるためにダブルクオーテーションで囲ってやれば良い「mv "{lv=f1}" "{lv=f2}"」


シェルスクリプトに限らず任意の文字が指定できるものにはつきものな問題
2024/10/19(土) 19:41:25.20ID:jkyh3u2p
>>228
>>229
有難う御座います。御礼が遅くなり失礼しました。先程帰宅して早速設定し直すと旨く行きました。今回のリネームのシェルスクリプトも拾い物に手を加えただけで、全く基本が分かっておりません。
マクロを作っていると目的と手段の転倒状態で便利な自動化では無く、MDで何処まで出来るか出来ないかの問題で結構やりがいがあります。
あと、スレチになりますがシェルスクリプトはWindows環境のバッチファイルににてるような気がします。
2024/10/19(土) 19:45:05.64ID:TXkrXBgT
>>230
細かくて申しわけないけど
バッチファイルの方がシェルクスクリプトに似てるんだと思う
2024/10/19(土) 19:53:02.59ID:jkyh3u2p
>>231
すみません深い意味はありません。先程まで会社のPCのバッチファイルを弄ってまして、何かにてるな~程度です。
2024/10/19(土) 20:11:33.96ID:rm+YhuKC
>>231
そこに突っ込むのかw
Windows(DOS)よりLinux(UNIX)の方が歴史が古いから真似してるのはWindowsと言いたいのかな
2024/10/19(土) 20:13:34.59ID:+n1M8cPM
>>230
シェル=殻
UNIX(OS)で、OSを直接いじらずに外部からの操作を受け付けるようにする部分・仕組み

シェルスクリプト
シェルを操作するための台本

バッチ(batch)=束とか群とかひとまとめにしたもの
microsoft(メーカー)が作ったWindows(OS)で、コマンドラインインタプリタ(=シェル)で実行したいコマンド群を記述したファイルを拡張子「.bat」で扱うとし、バッチファイルと呼ばれる。それによる処理をバッチ処理と呼ぶ

理屈でいえばシェルスクリプト≒バッチ処理
内容でいえば後発のバッチ処理(Windowsのコマンドラインインタプリタ)がシェルスクリプトを参考に(真似て)作られている

AndroidはUNIXをベースにGoogle(メーカー)が作った(OS)。作ったというよりも機能拡張したOSと言ったほうが良いかもしれない

MDが当たり前のようにシェルスクリプトを使えるのはつまりそういうこと
2024/10/19(土) 20:14:57.04ID:5QoI8PYc
>>233
マリリン・モンローってマドンナに似てますね
2024/10/19(土) 20:34:07.42ID:rm+YhuKC
>>235
うーん…似てませんね
2024/10/19(土) 20:35:51.56ID:+n1M8cPM
なので、Windowsのシェルのスクリプトと言ったら、つまりまぁコマンドプロンプトで直接打ちこんでるそれとか、バッチファイルの中身とかを指していると言えるので間違いではないけれど、
シェルスクリプトって言ったらUNIXでのそれ、と、固有名詞化しているのでWindowsで一般的に聞く言葉ではないのよな

でもって、Windowsのバッチファイルを実際に処理するのは基本的にmicrosoft製の単一のアプリであるのに対し、シェルスクリプトはそれを実行できるシステムがいくらでもあって「シェルスクリプトが常に同じように動作するとは限らない」という魔境を生み出してるのよな
2024/10/19(土) 21:22:21.12ID:jkyh3u2p
皆様のお陰で、写真のリネームが上手くいったので、同じく保存先DCIM内の動画のリネームに手を付けたのですが、
マジックテキストが{photo_file_path}写真撮影のパスしかなくいきなり詰んでしまった。
写真撮影トリガーにもしっかり写真を撮影したときと記載があり動画は駄目なのね。
2024/10/19(土) 21:29:30.40ID:IJNXXzjR
細かいタイミングに拘らずにカメラアプリ終了時にリネームのシェルスクリプト叩くとかで充分そうな
2024/10/19(土) 22:35:26.76ID:+n1M8cPM
1対1対応の{photo_file_path}使えないってことは処理対象のファイルがあるかチェックしなきゃなんないってことだからまぁ複雑よね
2024/10/19(土) 23:34:06.48ID:jkyh3u2p
>>239
連写だと、どうしても変換されないファイルが出来てしまい。仰るように撮影後にリネーム処理を考えているのですが、
>>240
処理対象のファイルの判別と、ファイル名を正規表現で変更したものに変換する方法とう、本当に結構複雑な処理になるかもです。
2024/10/19(土) 23:51:00.54ID:t/9GSyY9
https://i.imgur.com/dtIpIUm.jpeg
このような2つのアプリを同時立ち上げしてる際
例えば
■MD起動したら明るさを100%
■iDMがフォアグラウンドで実行なしのときのみ作動
ってのは無理なのね

ログ上ではMacroDroidが起動と終了を1-2秒おきに繰り返してる
Xiaomi
2024/10/20(日) 00:09:49.35ID:qL+4F16Q
お前の条件指定が下手なだけ
2024/10/20(日) 07:04:15.12ID:UV99SMFw
>>241
俺なら複数の処理をするなら配列を使うかな
シェルでファイル一覧を取得
取得した一覧を改行区切りで配列に分割して入れる
配列を繰り返すで配列の文字列処理(正規表現で変更前のファイルを限定)とシェルで名前の変更を行う
ざっとこんな感じで出来るんじゃないかな

>>242
条件2つ付けるだけのようだけど?
2024/10/20(日) 07:47:34.99ID:a8zYX3bq
>>244
教えてください>>242
2024/10/20(日) 08:09:46.86ID:q4x0Zzlk
>>244
そういうのこういうの不慣れだから難しいよねって話で、
MD使っててシェルスクリプト使ってそれやれって鬼畜過ぎない?
ファイル操作でファイルリスト取得して連想配列ループさせればMDだけで完結するのに
2024/10/20(日) 09:05:50.55ID:2lOaRZYS
楽天Linkを使ってます。電話アプリとして認識されていないようで、さらにLinkの設定を見たところ電話受信時にバイブ連動がありません。
そこでMacroDroid を使って対応しようと思ったのですが、単純にLinkアプリがフォアとかにすると着信以外でもバイブするし、どう条件を付けたら良いものでしょうか?
2024/10/20(日) 09:07:07.64ID:nhpn95aF
>>243
安価つけて
2024/10/20(日) 09:15:52.80ID:ZCJWnUIc
通知みてlinkから着信ってきたら何かする
2024/10/20(日) 10:02:41.77ID:2lOaRZYS
>>249
それがロック中の通知領域には着信中は何も無いようです。
着信中にロック解除すると通知認知します。
あとロック中でも着信に出られなかった時には不在着信で通知が発生するようで電話が切られた瞬間に通知認知します。
2024/10/20(日) 10:15:48.37ID:2lOaRZYS
あと、ロック状態のままLink着信に出た場合にバイブのアクションをどう条件を付けて切るかも分からずです。
2024/10/20(日) 12:09:02.46ID:V9qhWDu5
>>250
「通知が表示されたとき」の条件から「常駐表示の通知は除外する」のチェックを外したら見えないかな
うちはそれでトリガーされてる
テキストコンテンツは「一致」で"着信"

バイブ止めるのは通知が消えたときでできないかなあ(未確認)

環境が許すならデュアルSIMにしてLinkは無条件転送にして、
もういっぽうのSIMに転送してしまえば普通の電話アプリで受けられるので面倒なことしなくて済むかも
2024/10/20(日) 13:55:32.12ID:UV99SMFw
>>246
それは失礼しました
時間がなくて具体的なマクロを考えてない状態で書き込んじゃったので許してください
良く調べてみたらMDのシェルスクリプト使えば1行で全ファイルの変更ができたけど知識無ければ難しいですよね
(俺も知識無いので調べまくって何十回も失敗してやっとたどり着いた結論なのでまったくもって偉そうなことは言えないのですが)
2024/10/20(日) 21:22:55.69ID:hGRLykOn
いつからかは不明ですが、いつの間にか通知をトリガーにマクロを実行できなくなりました。アクションの「通知を消す」は効くので、通知へのアクセス自体は出来ているようなのですが。アプリ関係なく全ての通知がトリガーになりません。
どなたか似たような症状を経験した方おりませんか。

Arrows Be4 F-41A
Android 12(V70R063B)
Macrodroid 5.47.19 pro版
常時Wi-Fi接続にて運用
2024/10/20(日) 22:10:34.53ID:FRh1jMJ5
写真トリガーは止めて、撮影後のフォルダ内のリネームを考えているのですが、シェルスクリプト ls -p -m storage/SD/DCIM/Camera/ で複数の.jpg .mp4のファイルを1つにまとめ文字列処理の正規表現で置き換え

"IMG20241015101235.jpg,VID20241015101240.mp4"
"2024-10-15-10-12-35.jpg,2024-10-15-10-12-40.mp4"

の2つの変数を作ったのですが、これをシェルスクリプトのmv -fを使いリネームはできないのでしょうか
ダブルクォーテーションで挟んだり外したりとやってるのですがうまくいかず、そもそもファイル自体が複数なので無理無のでしょうか
2024/10/20(日) 22:17:26.01ID:VQ3XLxaa
>>255
シェルスクリプトのmvでリネームできるのはファイルが一つのときだけ
こういう処理は基本、一つの処理を必要回数繰り返すように作るもの

>>246でやり方の一例出してるけど、ファイルの一覧が、MDで取得できるので、ファイルごとにファイル名チェックしてデフォルト保存のファイル名なら、その都度シェルスクリプト実行してあげれば良いと思うよ
2024/10/20(日) 22:45:26.47ID:FRh1jMJ5
>>256
ありがとうございます。やはり処理が必要回数必要なのですね。ファイル名チェックしてシェルスクリプトを実行となると複雑で結構 難しいかも。

因みに試しては無いのですがLinuxの「rename」コマンドも駄目ですか
2024/10/20(日) 22:46:27.95ID:cmkxnXcL
>>242
これ頼みます
2024/10/20(日) 23:09:32.88ID:UQUw/349
>>257
MDからLinuxのコマンド実行できるような環境作りたいみたいな話したいん?
2024/10/21(月) 00:18:20.39ID:iBhLlu8M
>>259
シェルスクリプトに付いて色々調べてると、Linuxのコマンド?がよく紹介去れていて、mv とrenameがファイル名を変更する方法とあったので使えるのかなと思いました。
2024/10/21(月) 00:40:12.82ID:5msE6j7C
>>260
>>237で書いた内容になるけど、MDだとrenameコマンドは使えないシェルがデフォルト
Android(端末)のデフォルトのシェルを変更するとか、MDで実行するシェルを指定しながらシェルスクリプトを実行するとか、Linuxコマンドが実行できるアプリ(ターミナル)を経由させるとかそういうことをやればできないこともない

MDのアクション作り込めばできる内容のためにそんな方法経由するのはずいぶんと壮大な計画だわ
2024/10/21(月) 01:10:24.24ID:iBhLlu8M
シェルにはいくつかの種類があるようで、またMD内で使えるものは決まっているのでしょうか、
正直何処から覚えたら良いのかも分から無い状態です。MDのテンプレでもシェルスクリプトを使っているものは少なく、
サンプル見たいなものがあれば色々弄って覚えたいのですが、取り敢えず今は>>256氏に教えて頂いた方法でのマクロの処理を考えてます。
2024/10/21(月) 02:24:24.96ID:5msE6j7C
>>262
imgur.com/gONXcTc.png
リストファイル→連想配列「fl」に出力
条件分岐→正規表現でチェックしてもいいけど適当に
文字列処理→「^(IMG|VID)(....)(..)(..)(..)(..)(..)\.(jpg|mp4)$」「$2-$3-$4 $5-$6-$7.$8」変数newNameに保存

連想配列キーの値にファイル名が入るので、連想配列を繰り返すのブロックの中で連想配列キーの値(マジックテキスト{iterator_dictionary_key})を指定すれば全てのファイルをチェックできる

俺の端末ではファイルの保存ルールが違うからこのマクロだとうまく動かない
シェルスクリプトで実際にファイル名変えるところまではテストしきれてないんで云々
2024/10/21(月) 02:30:23.00ID:5msE6j7C
>>262
MDが使うシェルはAndroid提供のもの
Androidにはシェルを提供する機能が標準である
ただし、標準で提供されてるのはToyBoxと呼ばれるシェルで、かなり機能が制限されている
「Android」はオープンソースだし弄りたければ好きに弄って好きに使えばいい
ただし、「端末」はメーカーの決めたルールで提供されるので生のAndroidとも限らないし、生のAndroid部分が全て触れるとも限らない
2024/10/21(月) 03:01:01.06ID:5msE6j7C
>>262
「シェル/シェルスクリプト」は覚えなくて良い
そういうめんどくさいもの覚えなくても便利に自動化させようってのがMDのコンセプト
要望出せないバージョンアップまで待てないってなら聞けば誰かが答えてくれる

大事なことは何をやりたいかを明確にすること
それにシェルスクリプトが使えるのか、シェルスクリプトが適しているのかってのは具体的な問題が提示されてからの話

取りあえずこのスレ、または、MDの上でシェルスクリプト勉強しようってのは方向性が間違っている
例えるなら、EXCELでバッチ処理ってどうやるの?みたいな状態だ
ググって出てくる程度でいいから、シェルスクリプトを使う一般的な環境を揃えてやるもので、そういう環境のコミュニティを探すべき
2024/10/21(月) 04:15:38.91ID:ulyU+plQ
ぶっちゃけMicrosoft Copilot入れてそこで同じこと聞けば一瞬で作れるよ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況