himorogiの日記

主にプログラミングに関することなど。少々ハード(電子工作)についても。

Automator で Javascript

Automator でワークフローを開いたら"JavaScript を実行"というアクションが追加されていた。

Yosemite になって Javascript for Automation が追加されたんだから当然のことではあるが。
早速、"JavaScript を実行"のアクションを選択してみたら、以下のようなスクリプトが表示された。

function run(input, parameters) {
	
	// Your script goes here

	return input;
}

input が関数の引数にも return のパラメータにも出てくるというのがよく分からない?
とりあえず"JavaScript を実行する"アクションに以下のような script を書いた。

function run() {
	return( "Hello World!" );
}

これに続けて"結果を表示"アクションを配置し、ワークフローを実行してみた。

{"Hello World!"}

LotoNumbers の生成

"JavaScript を実行"のスクリプトを以下のように書き換える。

function run(){

	function loto( n, c ){
		var	numbers = []; 
		
		function lotoGen(){ return ("00" + Math.ceil( Math.random()*c )).substr(-2) }
	
		for( numbers.push( lotoGen() ); numbers.length < n; ){
			if( numbers.indexOf( a = lotoGen() )) numbers.push( a ) ;
		};
		return numbers;
	}
	
	var result = [];
	result.push( "[miniLoto:" + loto( 5,31 ).sort().toString() + "]" );
	result.push( "[Loto6:" + loto( 6,43 ).sort().toString() + "]" );
	result.push( "[Loto7:" + loto( 7,37 ).sort().toString() + "]" );
	
	return result.toString();
}

これに続けて"結果を表示"アクションを配置し、ワークフローを実行した結果。

[miniLoto:07,13,17,24,29],[Loto6:01,13,18,22,37,41],[Loto7:01,03,12,18,26,35,37]

"\n" で改行しないので…