f8g

SkypeにiTunesで再生してる曲のArtwork表示

画像関係の部分がちょっと分かった。前のとあわせるとこんな風になる。

// Artworkを保存するディレクトリ
var fileDir = "c:\\itunes";
// Artworkが何にも無い時に表示する画像
var defaultFile = "C:\\Documents and Settings\\NANTOKA\\My Documents\\My Skype Pictures\\Skype.png";

var skype = WScript.CreateObject("Skype4Com.Skype");
var it = WScript.CreateObject("iTunes.Application");
WScript.ConnectObject(it, "ITEvent_");

var me = skype.CurrentUserProfile;
while(true) WScript.Sleep(1000);

function ITEvent_OnPlayerPlayEvent(track){
	changeAvatar(track, fileDir);
	with(track)
		var text = [Name,Artist].join(" / ");
	if(me.MoodText != text){
		me.MoodText = text;
		print(me.MoodText);
	}
}

function changeAvatar(track, path){
	if(track.Artwork.Count <= 0){ skype.Settings.Avatar = defaultFile; return; }
	var format = imgFormat(track.Artwork.Item(1).Format);
	if(!format){ skype.Settings.Avatar = defaultFile; return; }
	var file = path + "\\artwork." + format;
	track.Artwork.Item(1).SaveArtworkToFile(file);
	skype.Settings.Avatar = file;
}

function imgFormat(n){
	switch(n){
		case 1:  return "jpg";
		case 2:  return "png";
		case 3:  return "bmp";
		default: return false;
	}
}

function print(s){ WScript.Echo(s); }

もっと何とかしたいときはchangeAvatarあたりを変えればよさそうです。

var file = [path,"\\",track.Album,".",format].join("");

とか。なんかもう適当。