上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--|スポンサー広告||TOP↑

Mac OS X 10.4.7 上の話。

AppleScript をメニューバーから実行できる「スクリプトメニュー」で表示できる階層には
/Library/Scripts (ライブラリ・スクリプト・フォルダ)

~/Library/Scripts (ユーザ・スクリプト・フォルダ)
の二つがありますが、自分でスクリプトを書くようになると、ライブラリ・スクリプトの方は表示しない設定にしたくなりますよね。あまり使わないスクリプトが多いし、無駄にメニューが長くなるし。
でもそうすると、ライブラリ・スクリプト・フォルダに入っている便利なスクリプトもメニューから実行できなくなってしまいます。
そこでエイリアスですよ。

例えば、
/Library/Scripts/Folder Actions
のエイリアスを
~/Library/Scripts
の中に置いておくと、スクリプトメニューにユーザ・スクリプトだけを表示する設定にしていても、フォルダアクション設定用の各種 Apple 謹製スクリプトを使うことができて超便利。

というかですね、
ハードディスクのあちこちに散らばっているアップルスクリプトやらシェルスクリプトやら (またはそれらが入っているフォルダ) のエイリアスをスクリプト・フォルダ以下の階層に放り込んでおくだけで、スクリプトメニューからなんでも実行できてしまうようなのです。
や、今日初めて気付きました。

ちなみに、スクリプト以外の項目のエイリアスを入れておくと、そのファイルやフォルダのオリジナルをスクリプトメニューから開くことができます。
AppleScript を一切使わない人でもスクリプトメニューを有効にしておくといろいろ使い道があるかも。


スポンサーサイト
08/29|AppleScriptコメント(0)トラックバック(0)TOP↑

前にも書いた気がしますが、Safari の do JavaScript は JavaScript 中に含まれる「%20」などの URL エンコーディング (最近はパーセントエンコーディングとか言うらしい) された文字をそのままの文字列として扱ってしまうようです。
あとで読む」用のブックマークレットには「%20」と「%22」が含まれているので、これらをあらかじめ「 (半角スペース)」と「"(ダブルクォート)」に置換しておく必要があります。さらに、AppleScript では文字列中のダブルクォートをエスケープしなければならないので、「%22」は「\"」となります。
ちなみにブックマークレットの先頭にある「javascript:」は do JavaScript では不要。
これで「del.icio.us とはてなブックマークにブクマした挙げ句にあとで読む」スクリプトなんかも書けますね。


08/07|AppleScriptコメント(3)トラックバック(0)TOP↑

Amazon のアートワークの余白を編集したいときは、Safari のウインドウからプレビュー.app や ToyViewer のアイコンに画像をドラッグアンドドロップすればすぐに編集を始めることができるよ。

画像を「別名で保存」し忘れたときは、
~/Library/Caches/TemporaryItems
を探せば元画像の一時保存ファイルが残ってるはずだよ。
ただし OS を再起動すると消えちゃうよ。

そんだけ(*´ω`*)


08/06|Macコメント(0)トラックバック(0)TOP↑

Mac OS X 10.4.7
Safari 2.0.4 (419.3)
Shockwave Flash 9.0 r16
で動作確認。

Safari で YouTube 動画の読み込みが完了してから実行。
/private/var/tmp/folders.501 にある FLV 動画のキャッシュをデスクトップにコピーします。
キャッシュが複数ある場合はただまとめてコピーして拡張子をつけるだけ。
キャッシュが一つで Safari の前面ページの URL が http://www.youtube.com/watch?v= で始まっている場合に限り、ファイルのリネームができます。
キャッシュが一つで、かつ
do JavaScript "document.urlForm.video_link.value" in document 1
の結果が "" でない場合に限り、ファイルのリネームができます。
途中で飽きたのでいい加減。エラー多発するかも。(既存ファイルの変更・移動・削除を行うものではないので深刻なトラブルは起きないと思います。)
動かないときは TemporaryItemsFlashTmpXXXX というファイルを手作業でコピーするのが確実^^;

tell application "Finder"
set tmpFolder to ((startup disk as Unicode text) & "private:var:tmp:folders.501:") as Unicode text
if not (exists tmpFolder) then return
set tmpFiles to every document file of folder tmpFolder
set flvFiles to {}
repeat with curItem in tmpFiles
try
set x to (open for access file (curItem as Unicode text))
set y to read x to 3
close access x
if y is "FLV" then set flvFiles to flvFiles & {contents of curItem}
on error
close access x
end try
end repeat
if (number of items of flvFiles) = 1 then
set newFolder to makeNewFolder() of me
set duplicatedFLV to (duplicate flvFiles to newFolder)
set flvName4 to (name of (item 1 of newFolder))
tell application "Safari"
set videoURL to do JavaScript "document.urlForm.video_link.value" in document 1
if videoURL is not "" then
set flvName1 to (do shell script "echo " & quoted form of videoURL & " | sed 's/http:\\/\\/www\\.youtube.com\\/watch\\?v\\=//'")
set flvName2 to (name of document 1)
set flvName3 to (do shell script "echo " & quoted form of flvName2 & " | sed 's/^YouTube - //'")
choose from list {flvName1, flvName2, flvName3, flvName4} with prompt "Please choose new FLV name." default items {flvName2}
set theResult to result
else
set theResult to false
end if
end tell
if theResult is not false then
set fileName to (do shell script "echo " & quoted form of (item 1 of theResult) & " | sed 's/^\\./_/;s/:/_/g;s/\\//_/g'")
set (name of duplicatedFLV) to (fileName & ".flv")
end if
activate
reveal newFolder
else if (number of items of flvFiles) > 1 then
set newFolder to makeNewFolder() of me
duplicate flvFiles to newFolder
set duplicatedFiles to (every document file of newFolder)
repeat with curItem2 in duplicatedFiles
set name of curItem2 to ((name of curItem2) & ".flv")
end repeat
else
display dialog "Cannot find FLV." buttons {"OK"} default button 1
end if
end tell

on makeNewFolder()
tell application "Finder"
make new folder at (path to desktop folder) with properties {name:"YouTube Caches -" & (do shell script "date '+%Y%m%d%H%M%S'")}
end tell
end makeNewFolder

スクリプト中に円記号があったらすべてバックスラッシュに置換する必要があります。(Web ブラウザによります。)


追記 (061013)
いつの間にかキャッシュの場所が変わってしまったらしく、スクリプトの2行めを以下のように書き換えないといけないようです。

set tmpFolder to ((startup disk as Unicode text) & "private:var:tmp:folders.501:TemporaryItems:") as Unicode text

しかしすでに SafariStand 2.0b16 が Adobe Flash Player 9 に対応しているのでそちらを使った方が手っ取り早いですね。
SafariStand をインストールした Safari で、読み込みが完了している YouTube の動画画面を Command + クリック (林檎キー + クリックです。Control + クリックではないので注意。) すると、ページのタイトル+".flv" というファイル名で保存できます。


08/04|AppleScriptコメント(0)トラックバック(0)TOP↑
プロフィール

AquaBowler

  • Author:AquaBowler
  • 現在の Mac 環境:
    iBook Late2001
    Mac OS X 10.4.11
フリーエリア
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
del.icio.us
feed meter

RSS feed meter for http://kotoerisan.blog16.fc2.com/

FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。