ショートカット Part 4
■ このスレッドは過去ログ倉庫に格納されています
>>257 ごめんなさいわかりました。 テキストを置き換える テキストを検索 ¥d{1} 置き換え 0数字 正規表現 オン amazon echo スレでも、Node-REDの話をするとよそに行けとか言い出す奴がいたな >>258 これ間違ってますね。 これだと18は018018が返ってきたので ^[0-9]$ にしました。 >>259 ありがとうございます。 スクリーンショットを参考にします。(こっちのほうが本格的ぽい) >>235 NSLocaleIdentifierでググればグローバル変数と最初に出てくるんだが NSLocaleIdentifierは変数名であって、そんな値のキーはないからnilが返ってくる >>263 どうしたらいい? 疲れて分からないからpythonで書いて >>215 これ大体出来たのにここにペーストしようとしたら間違って消してしまった… 明日頑張ってもう一回やろう 何故かErrorの値だと思ってた方に住所入ってるし たぶん何か間違ってるんだろうなあ from objc_util import ObjCClass,ObjCInstance,c_void_p,ObjCBlock import location location.start_updates() from time import sleep sleep(2) del sleep currentlocation = location.get_location() location.stop_updates() CLLocation = ObjCClass('CLLocation') clocations = CLLocation.alloc().initWithLatitude_longitude_(currentlocation['latitude'],currentlocation['longitude']) del location print(clocations) NSLocale = ObjCClass('NSLocale') enlocale = NSLocale.alloc().initWithLocaleIdentifier_('en_US') def completion(_adr, _error): if _error: print(_error) print(ObjCInstance(_error)) print(_adr) print(ObjCInstance(_adr)) exit('end') completionHandler = ObjCBlock(completion, restype=c_void_p, argtypes=[c_void_p, c_void_p]) CLGeocoder = ObjCClass('CLGeocoder') CLGeocoder.alloc().init().reverseGeocodeLocation_preferredLocale_completionHandler_(clocations, enlocale, completionHandler) CLGeocoder.release() enlocale.release() clocations.release() #日本語の住所が返ってくるスクリプト from objc_util import ObjCClass,ObjCInstance,c_void_p,ObjCBlock import location location.start_updates() from time import sleep sleep(2) del sleep currentlocation = location.get_location() location.stop_updates() CLLocation = ObjCClass('CLLocation') clocations = CLLocation.alloc().initWithLatitude_longitude_(currentlocation['latitude'],currentlocation['longitude']) del location print(clocations) NSLocale = ObjCClass('NSLocale') enlocale = NSLocale.alloc().initWithLocaleIdentifier_('ja_JP') def completion(_adr, _error): if _error: print(_error) print(ObjCInstance(_error)[0]) print(_adr) print(ObjCInstance(_adr)) exit('end') completionHandler = ObjCBlock(completion, restype=c_void_p, argtypes=[c_void_p, c_void_p]) CLGeocoder = ObjCClass('CLGeocoder') CLGeocoder.alloc().init().reverseGeocodeLocation_preferredLocale_completionHandler_(clocations, enlocale, completionHandler) CLGeocoder.release() enlocale.release() clocations.release() >>265 英語住所 >>266 日本語住所 enlocale = NSLocale.alloc().initWithLocaleIdentifier_('ja_JP') を変えるだけ Errorの方に住所が返ってくるのを誰か直して ''' gpsの位置が不正確だった >265>266 のsleepは5以上くらいにした方がいいなあ gpsの位置情報ある程度正確になるまで繰り返すのを作った(適当)↓ ''' from time import sleep import location def getgps(): location.start_updates() sleep(3) #currentlocation currentlocation = location.get_location() if currentlocation['horizontal_accuracy'] > 10 or currentlocation['vertical_accuracy'] > 10: for i in range(3): sleep(3) location.get_location() sleep(i+2) currentlocation = location.get_location() if currentlocation['horizontal_accuracy'] < 10 and currentlocation['vertical_accuracy'] < 10: break else: print('警告:') location.stop_updates() return currentlocation 要望あればpastebinに貼る 住所取得は簡単なdefとifしかないから要望ないと思うけど 短いし ソースリストをそのまま流用できるように QRコード化してそれを貼ってもらえると 嬉しいな 計算の算術演算子に%がないのはなんでだ。 あと科学演算の係数ってなんだ?どんな計算してんだ? >>264 そのグローバル変数がObjective-Cのヘッダファイルで定義されてるから Pyhtonista側からは参照できないと思う 素直にメソッド使え >>267 ObjCBlockの書き方が違う http://omz-software.com/pythonista/docs/ios/objc_util.html#objc_util.ObjCBlock 例文の「# Note: The first (hidden) argument `_cmd` is the block itself, 〜」の コメントの通りに、ブロック自身を参照する第1引数を追加する必要がある だから今のコードだと_adrにブロック自身が、_errorに住所が返る 計算の係数は280分入力されて 科学演算 係数 オペランド 60 にすれば40が返ってくるから何時何分の時の何分をだすときに使っていいんだよね? ショートカットを外部から呼べるようになったら、cronとかをトリガにして楽しめるのにな AutomaterをiOS版にするだけでよかったのにな。 AppleさんはAutomatorやる気無いじゃん Siriからショートカットを実行するとショートカット内の音量変更が上手く動かないのは仕様? >>281 Automaterの方がやれること少ないよ むしろ、ショートカットをmacOSへ移植して欲しい AppleScriptや他のスクリプト使わないと辛い 対応Appが少ない >>280 cronで音声再生してSiriショートカット起動とか? >>285 なんと! 音声合成でSiriへ指示を出すとな! TV音声にも反応するけど 自分自身にも反応するんだろうか >>284 少ないっていうけど、AppleScriptやシェルコマンドが使えるじゃん? ショートカットは外部アプリがひつようなんじゃない? Automatorの方が遥かにやれることは多いと思うんだが レシピでパーツっていうんだよね? 一時的にパーツを無効にしたい場合どうすればいいのかな。 今はいったん削除してるけど、チェックマークがあってオンオフができないよね? iOSに持ってきてMacと同じ事が全部出来ると思うのか >>287 PagesやNumbersすらAutomatorに対応してないし 逆に言えばスクリプトの手助けなければあれやこれが出来ない 例えば二つの画像を横に連結するレシピが過去スレにあったけど、Automatorでやらせようとしたらそのアクションが無かった 漢字Talkの時代からあったAppleScript 他社Appも操れる程強力な仕組み macOSがUnixに代わり他のスクリプト言語も利用できるようになった 故にAutomatorは必要最低限の手続きや制御構文だけ スクリプトと併用するのが前提 対してショートカットは素のままではスクリプトは利用出来ず、sshやPythonistaが必要 スクリプトよりも敷居が低いショートカットの方が万民向けなのは明らか ていうかAppleScriptとかシェルコマンドとか使うならAutomator介さない方が安定すると思う Automatorは日本語ファイル名周りで不安定な事があって信用出来ない 流れをぶった切ってすみません 過去スレではさんざん既出なのかもしれませんが、「毎回違う回数繰り返す」処理がうまくできません どなたか教えていただけませんでしょうか あと、Evernoteの記事を取得するのに「タイトルが14〜15文字以上だとうまく取得できない」みたいですね iOS 12.0.1、ショートカットApp 2.0です >>295 繰り返す 繰り返し回数のところに乱数入れるだけじゃないの? どういう動作を求めてるのかいまいち分からん あと大きいテキストや辞書はメモリを使わない形でマッチとかやらないとエラーも出さずに空を返してくる 常にチェックが必要 後、ダウンロードしながら解析してるのか ダウンロードだけで落ちるページがあったりするから確実に脆弱性もある ショートカットにあまり期待するな WorkFlowからショートカットになってからtodoistにログインできなくなったんだが何これ >>296 レスありがとうございます 今、特に困っているのは「文を読み上げさせては『もう一度』か『別の文を入力』を選択させる」ような処理です 後出しですみません なお >繰り返す 繰り返し回数のところに乱数入れる 方法も教えてくれませんか? 変数「繰り返しインデックス」を直接いじるのもできないみたいだし… >>300 https://i.imgur.com/9QWPNvQ.png よくわからんけどこんな感じは? >繰り返す 繰り返し回数のところに乱数入れる 乱数のあとに繰り返し置いて回数をマジック変数で先の乱数にすればいいのでは 出来ることの大小の話が、敷居の高低の話にすり替わってる。 >>301 ありがとうございます 再帰させる手がありましたか 「繰り返す」の回数は[−|+]のボタンか、「実行時に尋ねる」でしか設定できないようですが… 自己レスです >>295 後段のEvernoteの件は、「Evernoteの『ノートを取得』で『タイトル検索』に渡す文字数が14〜15文字以上だと取得に失敗する(ことがある?)」です わかりにくくてすみません >>303 マジック変数を選択っていうのがあるよ それで事前に作った乱数を指定する >>301 ちょっと関係ないけど、こんなスクリーンショットはどうやって撮影してるの? 何かアプリをいれてるんですか? スクショを自動で繋げるアプリがあるからそういうの使ってるんじゃないか じゃ少しづつズラして撮影してそのアプリで加工してるんですね。 結構手間をかけてアップしてくれてるんですね。 >>305 追記… 繰り返し の前に変数になるようなものがなければ マジック変数を選択 は表示されない 逆に 変数を設定 していればその 変数 も選択肢に出る >>310 ありがとう。 そんなレシピもあるんだね。 >>305 ,309さん、ありがとうございます 選択肢に出てきました! これでいろいろ広がります! ただ、例えば繰り返し回数に変数iを指定してループに入ったとき、途中でiを書き換えても最初に指定しただけループは回ってしまいますね 繰り返しループの最初でその周の繰り返しインデックスが書き換えたiの値と比べて大きいか小さいかで場合分けすればいいじゃん >>306 俺も最近知ったけど、自動で連結してくれるアプリがあるんよ Stitching Screenshotで探してみ結構色々あるから 結論としては>>301 さんの再帰呼び出しで求める動作が出来ました ありがとうございます なお、別のショートカットに引数を2個以上渡すには「リスト」にしてしまえばいいんですね 基本かもしれませんが 自分の例で言えば「読み上げ言語」と「読み上げ文章」の2つを渡したかったので、どうしたものかしばし悩んでしまいました テキストとしてつなげて、渡した先で分割するか、とか 習作です https://imgur.com/a/NYMiho7 「Call Text2Speak」で読み上げ言語をドイツ語に、読み上げ文を「Guten Tag!」に設定した上で「Text2Speak」を呼び出して、気が済むまで読み上げ、です みなさまありがとうございました >>318 さん、拡張子付加ありがとうございます Imgurにupしたの初めてでして… ところで、「ショートカットを実行」で「実行中に表示」をOFFにして読み上げさせると、言語の指定を無視してdefaultで読み上げるようですね ってオイオイオーイ!w 礼を言うなら俺のほうにじゃろがい!w Imgurのページで画像長押しでコピーできるアドレスからいらんもん消したら>>319 になるよ っていうか普通に専ブラ使いなよ ある動作をすると通知1が表示され、数秒の待機をしたのちさらに通知2を出すようにして ウィジェットにショートカットを登録してあるけど ウィジェットでタップすると正常に動作するときもあるが、 他の関係の無いウィジェットのアイコンが一瞬点滅したのち通知2が表示されないことが多い。 ショートカットアプリからなら常に正常に通知1 通知2は表示されるけど。 何が関係してるのかな。 https://i.imgur.com/EsN3UjM.png 何度も読み上げるのはpythonの方がいい しかも簡単に作れる 数値を記録できるようにならないかなぁ 累算がしたい PythonistaでiCloud上に保存したスクリプトをショートカットから起動するにはどうしたら良いでしょうか? スクリプトをフルパスで指定してみたりしたのですが出来なくて… >>326 すみません、自己解決しました。 URLスキームで実行したら動きました。 サウンドを再生の再生する音ってどうしたら選択出来ますか? 所定の時間にインターネット共有を開きたいんですが、できますか? 通勤時にアレクサでテザリングさせたいんだけど毎度手で開くのがめんどくさい >>319 >>321 さん、ありがとうございます! ちなみにImgurは専ブラです が、めったに使わないのでよくわかってないです すみません 5chも前は専ブラでしたが、ハマり過ぎてたので削除しました(2年ぶり3回目ぐらい) ミュージックで曲が再生中か一時停止してるかをどうすれば得られるだろうか。 また、現在再生してるプレイリスト名を得る方法はあるかな? ミュージックの詳細を取得にはタイトルやアルバム名などはあるが、 上記2項目は入ってない。 https://twitter.com/CRAFT_wkwk3 自演みたいやけど参考になる Pythonとかそういう系じゃないが発想と元からある機能の使い方が上手い workflowスレにも貼っとこ https://twitter.com/5chan_nel (5ch newer account) ショートカットスレ2つあってややこしいね 向こうはSiriショートカット専用にしてほしいわ >>340 だからそのようにスレタイには書いてありますよ。 こちらはSiriを使わないショートカットのスレと思ってこれまで利用してきた。 >>334 再生中か一時停止中かはショートカットだけでは無理っぽい ショートカット対応の状態取得App作るしかないかも Pythonistaなら状態を把握できそう >>342 そうですか。 色々できないことが多いですね。 どうもありがとう。 この教えたがり君も邪魔くさいからあっちのスレだけにレスしてくれねーかな ここで質問をしたりレスをするとやたらと絡まれたり怒られたりするな… スレの雰囲気が割る気なるだけだから 質問も答えもしない人こそ他のスレに移動してほしいんだが。 >>343 macOSのAutomatorでも無理なんよ 再生曲無いとエラーでフローが停止する ショートカットはエラーでても無視するみたい ミュージックの詳細取得の後にカウントで0なら再生項目自体無いから停止なのは判断できても 一時停止がどうやっても判定できない また再生/一時停止中で、プレイリストによる再生かも判定不能 playbackStateあるんだけどこれじゃ駄目なのか? from objc_util import ObjCClass MPMPCsysMP = ObjCClass('MPMusicPlayerController').systemMusicPlayer() q = [] for i in range(MPMPCsysMP.numberOfItems()): q.append(MPMPCsysMP.nowPlayingItemAtIndex(i)) #print(q) print('-- 再生リスト --') if q!=None: for item in [item.title() for item in q]: print(item) print('--------------') print('再生中: ',MPMPCsysMP.nowPlayingItem().title()) print('再生リストの位置: ',MPMPCsysMP.indexOfNowPlayingItem()) print('playbackState: ',MPMPCsysMP.playbackState()) ''' playbackState 1再生中 2一時停止 ''' print('repeatMode: ',MPMPCsysMP.repeatMode()) >>348 停止中は print('再生中: ',MPMPCsysMP.nowPlayingItem().title()) でエラー出るから ここの前に if None!= MPMPCsysMP.nowPlayingItem(): 入れないとダメだな >>348 >>349 そう、ショートカットだけでは手に負えない Pythonistaの様なAppの手助けがいる そうかAutomaterでもだめなのね。 Pythonよくわからないしそのうちアップルに吸収されそうだし 買うの躊躇してるんだけどかってみようかな。 ショートカットだけじゃできないことがPythonistaでできるのは結構だがことあるごとにPythonistaなら〜ってシュバって来てコード貼り出すのは流石にキモいし単純に邪魔 うわ何これ自作自演してたのかこいつ 気持ち悪いなあ エラー直して全プレイリスト表示させた from objc_util import ObjCClass MPMPCsysMP = ObjCClass('MPMusicPlayerController').systemMusicPlayer() q = [] for i in range(MPMPCsysMP.numberOfItems()): q.append(MPMPCsysMP.nowPlayingItemAtIndex(i)) # print('-- 再生リスト --') if len(q) > 0: for item in [item.title() for item in q]: print(item) # print('--------------') if None!= MPMPCsysMP.nowPlayingItem(): print('再生中: ', MPMPCsysMP.nowPlayingItem().title()) # print('再生リストの位置: ', MPMPCsysMP.indexOfNowPlayingItem()) print('playbackState: ', MPMPCsysMP.playbackState()) ''' playbackState 1再生中 2一時停止 ''' print('repeatMode: ', MPMPCsysMP.repeatMode()) else: print('リスト無し') # MPMediaQuery = ObjCClass('MPMediaQuery') mq = MPMediaQuery.playlistsQuery().collections() for i in mq: print('------') print(i.name()) # print(i.authorDisplayName()) print('説明:', i.descriptionText()) print('属性:', i.playlistAttributes()) print('persistentID:', i.persistentID()) # print('seeditem',i.seedItems()) print('item', i.count()) print('mediaTypes', i.mediaTypes()) '''if None!= i.representativeItem(): print('representativeItem:',i.representativeItem().title()) ''' for il in i.items(): if None!=il: print(' ', il.title()) # # # ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる