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

「ピーマン嫌いだなぁ…」\嫌いがなんだ!全速前進ッ!/ ※南北戦争ネタで読者を更に翻弄する高度なさくせん

【RPA】【MacroDroid】写真撮影したら、撮影時点の経度緯度を写真のファイル名に組み込みつつ移動できません?

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

これもMD-JP-Discodeの問い合わせから。

結論だけMacrodroidにインポートして確認したいかたは以下から。


写真の撮影をしたタイミングで、
撮影時点の経度・緯度情報を写真のファイル名に組み込みつつ、写真の保存先を移動できないか?といった悩みがでた方がおり、提案のひとつとして提示したものを公開します。

幾つか方法はありますが、解決手段のひとつとして…






マクロは上の図のような中身です。


最近Macrodroidに追加されたトリガーで
「写真撮影」というトリガーを使っています。

このトリガーは「写真が、写真の撮影をするアプリ側で撮影をされたあと、内部のブロードキャストメッセージを検知した段階で」発火・起動します。


またこのトリガーを使ったとき、アクション側では、マジックテキスト「写真ファイルのパス」「写真URI」を使えるようになります。

今回のマクロでは、「写真ファイルのパス」マジックテキストを活用します。



撮影をして…
「写真ファイルのパス」マジックテキストにひも付けた変数を確認してみると…



撮影をした写真ファイルのフルパスが格納されます。



フルパスじゃ、ファイル名取れないじゃない!

ご安心ください。

文字列編集関連のアクションで、
正規表現欄に

[^/]+$

を入れて頂ければ、ファイル名は取れますし、
フルパスから、前述の正規表現にヒットしたファイル名の部分だけ、から文字に置き換えすれば、ファイル名を除外したパス部分だけ、取得が出来るのです。

あとは、シェルスクリプトでリネームと移動をお任せで…



cdコマンドとmvコマンドの複合技で、
リネームと移動を同時処理します。
移動先のフォルダについては、あらかじめ固定値としたConst変数に指定が必要になりますが、それ以外は動的にMacrodroidが処理してくれますね。

記事は以上です。
ここまでお読み下さりありがとうございました。



【RPA】【MacroDroid】Javascriptを使って今日の曜日を英語表記する

2024-06-29 11:04:53 | Macrodroid&RPA関連
(´・ω・)ノ < らいなーです。

MD-Discode-JP、
問い合わせで話題になったネタから。

Macrodroidの日本語環境で、
曜日のマジックテキストを使ったときのはなし。







日本語の曜日で表示がされます。
が。
英語のスリーレター表記に出来ないですか?
と問い合わせがありまして、
そのなかで出した案を、公開します。

遣り方は幾つかあるのでこれが最適解ではありませんが、手段のひとつとして……。

↓結論だけMacrodroidでインポートして見たいかたはこちらから

手段としては、
「Javascriptコード」のアクションを使って、Date型をインスタンスして使いましょう、というサンプルになります。



Javascriptのソースコードは以下。
--------------
// 今日の日付を変数dateとしてインスタンス
var date = new Date();

//曜日の英語設定
var weekdays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];

//英語表記「Sunday」
//console.log( weekdays[date.getDay()] );

//英語3字表記「Sun」
//console.log( weekdays[date.getDay()].substr(0, 3) );

//英語3字大文字「SUN」
console.log( weekdays[date.getDay()].substr(0, 3).toUpperCase() );

--------------

英語の環境で多言語を使いたい場合には、

var weekdays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];

の曜日のJavascript配列を

var weekdays = ["日","月",
"火","水","木","金","土"];

とか

var weekdays = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];

とします。

これらを、普通に「当日の曜日を」出力したい場合は、例ではコメントアウトしていますが、

console.log( weekdays[date.getDay()] );

すれば、出力できます。

今回前提としては日本語の環境で、英語のスリーレターを使いたいとのことですから、Javascriptの文字加工関数substrを使って…

console.log( weekdays[date.getDay()].substr(0, 3) );

最初から三文字を抜き出して、Javascriptコンソールに出力を返せば、Macrodroidの値として活用できます。

全部大文字のスリーレターにしたければ……

console.log( weekdays[date.getDay()].substr(0, 3).toUpperCase() );

substrで抽出した文字に対して、全て大文字にするJavascript関数のtoUpperCaseを使えば、大文字にしてくれます。


あとは、
毎回のようにマクロに組み込むのが面倒臭いのであれば、アクションブロック化してしまえば、おのおののマクロから参照活用が出来るしだいです。


記事は以上です。
ここまでお読み下さりありがとうございました。