0

現在、タスクをアプリとして自動化しようとしていますが、「URL を保存する」ステップに問題があり、それを置き換えるカスタム AppleScript が必要です。

私のプロジェクトの背景を説明すると、Wi-Fi テザー撮影用に東芝 FlashAir SD WIFI カードを購入しました。SD WIFI カード (カメラにインストールされている) を使用して、カメラから Mac コンピュータにすべてのファイルをリアルタイムでダウンロードしたいと考えています。東芝 FlashAir は、接続先の独自のネットワークを実行し、SD コンテンツを Web ブラウザー (ftp や webdav がないため、http 接続のみ) を介して閲覧できます。FlashAir API を使用して、SD にアップロードされた html/Jquery ページを準備しました。これにより、ページhttp : // flashairにアクセスすると、すべての画像リンクが毎秒更新されるページが表示されます。ほぼリアルタイムで、ブラウザに新しいショット画像を表示します。

これらの写真をコンピューターにダウンロードして、iPhoto やその他の写真アプリがテザー モードのようにディレクトリを「監視」し、必要に応じてその場で処理できるようにしたいと考えています。

私のコンピューター側では、AUTOMATORを使用しています:

  1. 「特定の URL を取得する」 > http : // flashair (SD カードのマイクロ サーバーに到達するため)。
  2. 次に、この特定の URL と関連する URL から「すべての画像 URL を取得」します。
  3. 次に、コンピューターにまだない画像のみをダウンロードします(これは、AppleScriptの知識が不足している場所です)
  4. 次に、240分間ループします...(リモートページを観察し、新しいファイルを何度もダウンロードするためだけ。)

すべてが完璧に機能しますが、自動化ワークフローを起動すると、同じ画像がファイル名サフィックス-01-02、... で何度も保存されます。これは、ループ インスタンスと同じ量の重複した画像があることを意味します。

自動化プロセスの「URL のダウンロード」では、新しいファイルまたは変更されたファイルのみをリモートからローカルにダウンロードするかどうかを正確に指定できません。

この「applescript」ステップで私を助けてくれる人はいますか?

あなたの貴重な答えに感謝します。

ダミアン

4

1 に答える 1

0

探しているコードは次のとおりです。

on run {input, parameters}
    set dLocation to POSIX path of (path to downloads folder) & "test/"

    set fileList to {}
    set AppleScript's text item delimiters to {"/"}
    repeat with i from 1 to (count of input)
        # With the delimeter to '/' last item is the filename!
        set urlStr to (get item i of input) as text
        set urlFile to last text item of urlStr

        set savedFile to (dLocation & urlFile) as POSIX file

        log "Saved file is: " & savedFile

        try
            savedFile as alias
            log "File exists: " & savedFile
        on error mMsg
            set end of fileList to urlStr
            log "Adding URL: " & urlStr
        end try
        #       delay 5
    end repeat
    return fileList
end run

上記のすべては、リンクの最後にあるファイル名を取得することです。ファイルが存在するかどうかを確認し、存在しない場合は、ダウンロードするリンクのリストにリンクを追加します。次に、リンクのリストを渡します。

Applescript アクションの後にアクションを追加Download URLsすれば完了です。

編集:

したがって、ワークフローは次のようになります。

  1. サイト URL の定義
  2. アクション: Web ページから URL リンクを取得する
  3. アクション: applescript を実行します (上記のコード)。
  4. アクション: URL をダウンロードする
  5. アクション: 一時停止 (オプション)
  6. アクション: ループ

ループ アクションでは 1000 分に制限されていることに注意してください。したがって、2 つの選択肢があります。1) ループ アクションを追加するか、2) 無限ループを含むスクリプトからワークフローを起動します...

もう 1 つの方法は、すべてをスクリプトとして記述し、継続的に実行することです。

EDIT2:

おっと、質問を読み直してください。240分間だったので、1回のループ機能で問題なく動作します。

于 2014-07-08T19:17:47.613 に答える