みるくとはちみつの予定調和: 05/14

2014-05-29

iTunesで再生されている音楽をAppleScriptでツイートしてみる

ツイッターを初めてから、iTunesで再生されている音楽をツイートしたくていろいろ試しましたが、試している間にTwitter APIの制限が出てきたり、支援アプリの認証があったりと色々とめんどくさいことが多く、さらに公式のTwitterアプリがAppleScriptに対応したとかアナウンスされて喜んでたりしたら、ツイートできるような機能がなく完全にぬか喜びだったりとかなり放置。
先日なんとなく、思い立って検索してみたら「Twitter Scripter」なるアプリがあると「Macの手書き説明書」さんのエントリーが引っかかったじゃありませんか!

そんな事で、まずはMacの手書き説明書さんの素敵エントリー Mountain LionのTwittter連携機能をAppleScriptから利用『Twitter Scripter』 を読んで頂きたい!!

ようするに、Twitter Scripterのインストールをすれば、AppleScriptからツイートできるってことです。


出来上がったものはこんな感じの機能

  • アプリ(スクリプト)を実行すると今iTunesで再生されている曲名、アルバム名、アーティスト名をツイートする
  • 自動ツイート機能は無し
  • ハッシュタグをつける
  • 140文字をオーバーしたら、内容を頭から138文字ぐらい抜き出してツイートする

自分が必要と思ったものしか作ってないのでこんな感じ。
自動ツイートに関しては、頑張ればできるんじゃないかと思っておりますが、必要性が無いのでそれなりのアプリなど探したほうが早いかと思われます。「この曲ツイートしたい!」と思ったときに、ストレスなくツイートできる機能と思っていただければ。
同じ機能のアプリをiOSでもほしいのだが、年末年始の休みに作ろうと思って資料集めの途中で放り投げたままだな。


必要な物

  • Mac OS X 10.8以降
  • MacOSで認証されたtwitterアカウント
  • Twitter Scripter
  • iTunes
  • Automator または AppleScriptエディタ

スクリプト内容(Automatorのアプリケーションで作成)
on run {input, parameters}
	
	set tweetaccount to "*****" --Twitterアカウント名
	
	set head to "iTunes再生中♫" --ヘッダー ツイートの頭の文
	set hashtag to "#nowplayingJP" --ハッシュタグ ツイートの最後に追加
	
	set musicname to "【曲】" --曲名の前に来る文
	set artistname to "【アーティスト】" --アーティスト名の前に来る文
	set albumname to "【アルバム】" --アルバム名の前に来る文
	
	set overtext to "…" --140文字をオーバーしたときに最後に加える文
	
	set kaigyou to "
" --改行コードを変数に代入
	
	tell application "iTunes"
		
		set playitunes to head & kaigyou --ヘッダー
		
		set playitunes to playitunes & musicname & name of current track & kaigyou --曲名	
		set playitunes to playitunes & artistname & artist of current track & kaigyou --アーティスト名	
		set playitunes to playitunes & albumname & album of current track & kaigyou --アルバム名
		
	end tell
	
	set moji_count to count item of playitunes --文字数のカウント
	
	if moji_count + (count item of hashtag) < 140 then --ハッシュタグを含む文字数が139文字以内の処理
		
		set playitunes to playitunes & hashtag --ハッシュタグの追加				
		
	else if moji_count ≥ 139 then --ハッシュタグを含まず文字数が139文字以上の処理
		
		set dellcount to 139 - (count item of overtext)
		set playitunes to characters 1 thru dellcount of playitunes as text
		set playitunes to playitunes & overtext
		
	end if
	
	--ハッシュタグを含まずに138文字以内の場合はそのままツイート
	tell application "Twitter Scripter"
		tweet playitunes using account tweetaccount
	end tell
	
end run


これを、AutomatorかAppleScriptエディタでアプリ化してあげればよいかと。
エディタで作ればスクリプトファイルのままでも大丈夫かな?たぶん大丈夫なはず。最近AppkeScriptはAutomatorでしか書いてないから忘れた。

ブログにエントリーするためにスクリプトの整理してたら時間喰った。

2014-05-19

ブロイラーユニット−マインクラフト

マインクラフトでブロイラー飼育場のような狭くて大量にニワトリを飼育する施設をつくってみた。

ブロイラーユニット−マインクラフト(YouTube)

まずは、リンク先の動画をみてください。動画で紹介しているのは施設の1ユニット。これを並べて行けば大量のニワトリを効率良く飼育できます。

動画はクリエイティブモードでスポーンエッグを使用しておりますが、サバイバルモードでの卵からの育成も確認済みです。
ヒナは水流があるため溺死しません。(クライアント: 1.7.9)
最上段の水流は手前から奥へ、その下の水流は奥から手前へ流れております。
天井についている柱(柵)ですが、プレーヤーの転落防止用につけております。