����Υ�ϥӥ����Ƥ�ˡ�
Demo:
- �ʲ����п�����ʬ�˳ڶʥե������drag & drop���Ƥ���������
- �ǥ����ȥåפ�������ǤϤʤ���iTunes.app�����ľ��drag & drop�Ǥ��ޤ���
- ʣ���ե����뤬drop���줿��硢�ǽ�Τ�Τ����������оݤˤʤ�ޤ�
- ���㥱���򥯥�å�����ȡ�iTunes Store�����Ӥޤ���
����
��äƤ��뤳�ȤϤ���Ȥۤ��Ѥ��ޤ���
�������Ȥ������������Ȥ�������iTunes¦�ˤϰ��ڤ��ѹ���ä��ʤ��Ȥ������㤤�Ǥ�����
�ǡ���äƤߤ�Ф狼��ΤǤ��������μ�ϻȤ��٤��ǤϤ���ޤ�����
����äȹͤ��Ƥߤ�Ф狼��ΤǤ�������Ʊ���ڶʡפȤ��äƤ⡢������Ͽ���Ƥ��륢��Х�Ϥ����Ĥ⤢��ޤ������ʤ���Let it be�ϺǸ�Υ���Х�Ǥ����Ĥ��ۤǤ�������Ȥ�1�Ǥ���?���뤤�Ϥ褽�ι�Ǻ��줿����ԥ졼����󥢥�Х�Ǥ���?
��μ긵�Ǥ�The Essential Micheal Jackson�˼�Ͽ����Ƥ���Bad������˥ޥå��������Τä����ˤϥԥ������á¤ï¿½Þ¤ï¿½ï¿½ï¿½ï¿½è¤¿ï¿½ï¿½ê¤·ï¿½ï¿½ï¿½ï¿½
Enjoy!
Dan the Man with Too Many Songs to Match and Upload
Demo Source:
HTML
JavaScript
(function(global){
if (!global.FileReader) return; /* throw new Error('FileReader not supported'); */
var $ = function (id) {
return document.getElementById(id)
};
var itxt = 'innerText' in document.body ? 'innerText' : 'textContent';
var mingif = 'data:image/gif;base64,' +
'R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';
/* var countries = 'JP US GB CA AU FR DE IT DZ AO AI AG AR AM AT AZ BS BH BD BB BY BE BZ BM BO BW BR BN BG CM KY CL CN CO CR CI HR CY CZ DK DM DO EC EG SV EE ET FI GH GR GD GT GY HN HK HU IS IN ID IE IL JM JO KZ KE KR KW LV LB LY LI LT LU MO MK MG MY MV ML MT MU MX MD MS MM NP NL NZ NI NE NG NO OM PK PA PY PE PH PL PT QA RO RU KN LC VC SA SN RS SG SK SI ZA ES LK SR SE CH TW TZ TH TT TN TR TC UG UA AE UY UZ VE VN VG YE'.split(' '); */
var countries = 'JP US CA GB AU NZ HK SG JM'.split(' ')
var readit = function (files) {
var file = files[0],
info = {
name: file.name,
lastModifiedDate: file.lastModifiedDate,
size: file.size,
type: file.type
};
$('fileInfo').textContent = JSON.stringify(info, null, ' ');
if (file.type.indexOf('audio/') === 0) {
checkid(file, $('itsID'));
} else {
noitsid();
}
};
var noitsid = function () {
$('itsID')[itxt] = 'No iTS ID Found.';
$('lookup')[itxt] = '';
clsArtwork();
};
var clsArtwork = function () {
$('trackViewUrl').href = '';
$('artworkUrl100').src = mingif;
};
var checkid = function (file, node) {
var reader = new FileReader();
reader.onload = function (ev) {
var head = ev.target.result.slice(0, 1023),
idx = head.indexOf('song');
if (idx !== -1) {
var itsID = (head.charCodeAt(idx + 4) << 24) + (head.charCodeAt(
idx + 5) << 16) + (head.charCodeAt(idx + 6) << 8) +
head.charCodeAt(idx + 7);
node[itxt] = itsID;
JSONP.cidx = 0;
JSONP.get(itsID);
} else {
noitsid();
}
};
reader.readAsBinaryString(file);
}
global.JSONP = {
get: function (itsID) {
if (JSONP.cidx >= countries.length) return;
var d = document,
u = 'http://itunes.apple.com/lookup?callback=JSONP.run' + '&id=' +
itsID,
s = d.createElement('script'),
c = countries[JSONP.cidx++];
$('lookup')[itxt] = 'Looking up: ' + c;
if (c !== 'US') u += '&country=' + c;
s.charset = 'UTF-8';
s.id = s.src = u;
d.body.appendChild(s);
},
run: function (json) {
$('lookup')[itxt] = JSON.stringify(json, null, 2);
if (!json['resultCount']) {
clsArtwork();
JSONP.get($('itsID')[itxt]);
} else {
$('artworkUrl100').src = json.results[0]['artworkUrl100'];
$('trackViewUrl').href = json.results[0]['trackViewUrl'];
}
},
cidx: 0
};
var ondragover = function (ev) {
ev.stopPropagation();
ev.preventDefault();
ev.dataTransfer.dropEffect = 'copy';
};
var ondrop = function (ev) {
ev.stopPropagation();
ev.preventDefault();
readit(ev.dataTransfer.files);
};
$('dropfile').addEventListener('dragover', ondragover, false);
$('dropfile').addEventListener('drop', ondrop, false);
})(this);
���Υ֥����˥����Ȥ���ˤ�����������ɬ�פǤ���
��������������
���ε����ˤϵ��ĥ桼�����������Ȥ��Ǥ��ޤ���