ショートカット Part 4
■ このスレッドは過去ログ倉庫に格納されています
App Store Appの詳細を取得が動かんのだがどうしたらうまく動くんだ?
Appを共有のエクステンションから動かしてもこんな画面が出るだけなんだが
https://i.imgur.com/ZVQMi3w.jpg >>170
最近JSONの構造が変わったのかな?アプリがデータを読めないみたいだね
アップデートまでの応急処置案としては
AppStoreからマッチテキスト使ってidを引っ張ってきて変数に設定
URLにhttps://itunes.apple.com/lookup?id=設定した変数&country=JPと入力してURLの内容を取得
辞書の値を取得でキーにresults
もう1度辞書の値を取得を配置してすべてのキーから必要な値探す
これでどうだろう >>169
動くには動きますが、例えば120分のたいまーをかけて寝て起きても音楽が流れたままとかです。
つまりiPhoneがロックされてると120分経過しても音楽が停止されないのです。
時間は20分でも1分でもロック中は音楽が止まらず再生が続いてしまいます。 >>174
確かにバックグラウンドは親スイッチもアプリ全てもオフです。
バックグラウンドの設定てWi-FiかWi-Fi・モバイル通信の設定があるので
通信以外に関係無いと思ってました。
一応オンにしてみました。 問題があると言うなら再現する正確な手順を示しなよ
中途半端な例えとか要らないよ バックグラウンドでは動かない、
動いても数分くらい
それがiOSの仕様かと思ってたが… やはり動かないんですね。
じゃタイマーなんて作るだけ無駄ですよねw
できないことがはっきりしたので他のことにチャレンジします。
教えていただいた方ありがとうございました。 >>164
ウィジェットからか、Siriのフレーズ登録しか無理だよね
ホームアイコンをタップした時の動作モードとは違うから
ウィジェット動作時はタスクリストに残らないから 単語の言語の認識はMicrosoftのサイト使わずに出来るのか
Language
>:
>:
164:
:
ウィ: ja
ジェット: ja
から: ja
か: ja
、:
Siri: und
の: ja
フレーズ: ja
登録: ja
しか: ja
無理: ja
だ: ja
よ: ja
ね: ja
Script
>:
>:
164:
:
ウィ: Jpan
ジェット: Jpan
から: Jpan
か: Jpan
、:
Siri: Latn >>183
なんで恥ずかしくならないとダメなの??? サウンドを再生ってあるけど、デフォルトの着信音しかならないですよね?
他の着信音は呼び出す方法はないのかな? music://play/?pid=persistentID
こんな感じで簡単に曲流せる ではpersistentIDをどこかしらか調べてくれば他のサウンドも使えるんでか。
検索して方法をさがしてみます。
ありがとう。 persistentIDはショートカットだけだと調べられなかったな 英語環境で使用している場合に現在地を日本語で取得する方法はある?
取得した情報を日本語に翻訳するのはうまくいかなかった >>192
PythonistaのGeo Locationで郵便番号取得して、郵便番号検索APIに問い合わせするとか persistentID調べるpythonスクリプト
from objc_util import ObjCClass
mpp = ObjCClass('MPMediaPropertyPredicate').alloc()
mpp.setProperty('isCloudItem')
mpp.setValue(False)
mpp.setComparisonType(0)
MPMediaQuery = ObjCClass('MPMediaQuery')
mq = MPMediaQuery.albumsQuery()
mq.addFilterPredicate(mpp)
for item in mq.items():
print(item.title())
print('- artist: %s' % item.artist())
print('- albumTitle: %s' % item.albumTitle())
print('- persistentID: %d' % item.persistentID()) ショートカットで連携できそうだからと
Pythonista購入したけど
iMac使ってるんだから
SSH使えばPythonista買わなくても良かった事に今頃気が付いた >>194
こんな大騒ぎのスクリプトを外部アプリを購入しないとiPhoneにインストールしてる着信音が使えないのかw
もっと簡単にしようってアップルは考えなかったのかな。 >>193
結構面倒なのね…
難しそうだし諦めます ありがとう サンプル探してきて貼ってるだけだから余計にややこしく見えてしまうっていうね
郵便番号取得しても現在地とはズレるし何がしたいのやら
郵便番号だけならショートカットで済むし >>200
凄い……うまく動きました ありがとう! >>188
通知音はデフォルトのしか使えない
めんどいけど音楽ライブラリとかに自分でファイルを用意してそれを指定するしかない
persistentIDが何で出てきたのかよくわからんがコンテンツグラフから取得できるよ >>203
コンテンツグラフとはどんなものでしょうか? 特定のBluetoothに接続後、テザリングが開始させる方法はありませんか?
何方か賢い人作成して下さい。 >>205
テザリング、インターネット共有で引っかからないから無理ぽ テザリングって、自動的にそうなるものじゃないの?
それとも、ペアリングまで自動化したいってことなのかな? インターネット共有のオンオフだけでもできないのかなー 写真アプリってカメラロールから削除しても最近削除した項目に残るじゃん?
ボタン1個でカメラロールから削除して最近削除した項目からも削除できないかな?
というかショートカット なんて作らないでも純正機能でそれくらい作れよ!って思う機能多すぎだよな。 >>209
痒いところに手が届かないのがApple製品 >>210
ショートカット自体が痒いところに手が届いてないじゃないか キンカンみたいなもんだな
「キンカンぬって、又ぬって」 >>192
iOSのAPIの逆Geocodingにlocale渡せるから
pythonistaでやれるかもしれない Safariの履歴とwebサイトデータ消去って出来ないのかな? ミュージックを再生時に音量を調整(下げる)
5曲再生(音楽停止)
音量を元に戻す(上げる)
この2〜3行目をどうしたらいいのか誰か教えてもらえないですか? 5曲再生はプレイリストに5曲入れてそれ指定したらいいと思うけど
最後のはできないのでは >>221
なるほどなぁ
でも5曲終わったタイミングでボリューム戻すのは無理っぽいのか
「戻るまで待機」で戻ったタイミングでボリューム戻すってのは出来るだろうけどそれだったら手動の方が早いだろってなりそうだし レスありがとう。
スクリーンショットを参考にしてみましたが、レシピの再生をすると
ボリュームダウンしてすぐにボリュームアップしてしまいますね。
5曲の再生が終了してからじゃなく、5曲がセットされた時点でボリュームが再設定されてしまう感じになりました。 ミュージック選択するかプレイリスト取得して5曲分を変数に入れた上で
ミュージックの詳細を取得 再生時間
統計を計算 合計
端数を処理 小数点の右側 切り上げ
変数を取得 5曲分
ミュージックを再生
待機 合計を代入
音量を元に戻す
バックグラウンドで動くのかは試してない >>224
間違えた
待機に代入するのは合計じゃなくて端数処理済みの数値ね
まあ合計でも再生終了直前に音量が戻る程度の誤差だけど まぁ 待機 させててもバックグラウンドに回してるとそのうちショートカット自体が止まるだろ >>225
詳しくありがとう。
分かりやすく書いていただいたので簡単に追加できました。
ですがやは指摘されてるようにバックグラウンドではボリューム変更はされないようでした。
>>226
なるほどー
ショートカット アプリ自体が止まってしまうのですね。
じゃ時計アプリのような仕様にならないとこれはどうしようもないですね。 再生されてるかどうかチェックできないのかな
(試したら無理っぽい) from objc_util import ObjCClass, ns
NSLocale=ObjCClass('NSLocale')
test = NSLocale.alloc().initWithLocaleIdentifier_(ns('ja-JP'))
print(test.localeIdentifier())
print(test.objectForKey_(ns('NSLocaleIdentifier')))
objectForKey:NSLocaleIdentifierが動かない
何でだ
誰か教えてくれ print(test.localeIdentifier())
と
print(test.objectForKey_(ns('NSLocaleIdentifier')))
は同じ値のはずなんだが
objectForKey:NSLocaleIdentifierでは上手くいかない >>236
君が移動したほうがいい。
君のような事を言う人はここには必要ないから。 煽りじゃなくPython関係のスレで聞いた方がいいんじゃないの? iOS固有の機能が使えるようにPythonistaが独自に実装したもんを、
Pythonスレで聞いたところで追い返されるのがオチじゃん
スレの勢いもそんな早くないし、やることは似通っているんだから、仲良く共存していけばいいじゃん >>240
そのスレはiOSのPythonistaというアプリとは関係ないよ >>241
iOSのPythonistaの話もしてて追い出されてないからここよりいいんじゃね? 自分が知らないor関心がないからってすぐ排除しようとするのはどうかと思うわ
Workflowが日本語化されてから変な人が増えたなあ >>235
print(test.objectForKey_(ns('NSLocaleIdentifier')))
じゃなくて
print(test.objectForKey_('NSLocaleIdentifier'))
じゃ無いのか
試して無いし適当だけど ショートカットアプリに関わる話をしているんだから問題ないよ。
気に入らない人が出て行けばいい。 いやどう考えてもスレチだろw
コソコソやっときゃスルーするけど
開き直って共存とか言い出したらウザいわ >>243
いや排除とかそんなんじゃなくて向こうの方が分かる人とか多いんじゃないかと思っただけなんだけどね だからわかる人が多方がいい人はそのスレに行けばいいじゃん。 あれも聞けないこれはどうだろう?
向こうのショートカットスレみたいになっていくんだな。
向こうにも
UNIX板でやってくださる?
とか言う人。同じ人だろうが。 みんなが仲良くショートカットアプリを使って楽しめるスレを新しく作ろうか。
排除したりすぐにググれカスとか禁止なスレを別に作るか。 だれも答えてくれてなかったみたいだから書いただけなんだけど…何かすごい反発受けて戸惑うわ >>244
結果は同じ
nsはNSStringに変換してるだけだから 意に沿わなければ攻撃されたと短絡的に考えてしまってるんだろな こいつちょっと前からいる教えたがり君だろ
大した知識も無いのにPythonistaガー言ってるから痛々しくて見てられん ショートカットに関わるPythonならココでやるべき
同様にsshでシェルスクリプトや場合によっては
Perlやrubyスクリプトも例題にあがることもあるだろう
ショートカットからssh使えるのはとても強力な機能だもの
ヒアドキュメント使えばショートカット側でスクリプトファイルを用意できるし ある数字の桁数を揃えたいのですがいい方法はありませんか?
18
9
4
などの場合に
18
09
04
て感じです。
Pythonistaなど使わずショートカットのアプリ内で完結したいです。 >>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 ■ このスレッドは過去ログ倉庫に格納されています