PHP-скрипт парсинга last.fm (MySQL)

Павел19 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
20.01.2010

Инструменты: PHP (ООП), MySQL. Библиотеки на выбор исполнителя.

Скрипт должен создать полную копию каталога исполнителей, их альбомов и песен Last.fm, и сохранить в БД. Желательно, но не обязательно, использование curl.

По каждому исполнителю:

- artistID;

- artistTitle;

- кол-во прослушиваний;

- кол-во слушателей;

- адреса большой и маленькой титульных картинок;

- локальный адрес большой и маленькой титульных картинок;

- адреса первых 10-ти фото;

- теги (в отдельной таблице соответствия: tagID, artistID);

- описание на англ. языке;

- похожие исполнители (первые 10, внести в таблицу sameArtists: artistID, sameArtistID);

- лучшие альбомы (таблица: albumID, artistID);

По каждому альбому:

CREATE TABLE IF NOT EXISTS `albums` (

`albumID` int(9) NOT NULL AUTO_INCREMENT,

`artistID` int(7) NOT NULL,

`albumTitle` varchar(120) NOT NULL,

`albumDescr` varchar(120) NOT NULL,

`albumListenCount` int(9) NOT NULL,

`albumListenersCount` int(9) NOT NULL,

`albumSongsCount` int(3) NOT NULL,

`albumDuration` int(4) NOT NULL,

`albumImage` varchar(60) NOT NULL,

`albumReleaseDate` date NOT NULL,

PRIMARY KEY (`albumID`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

По каждой композиции:

- кол-во прослушиваний;

- кол-во слушателей;

- название;

- artistID;

- albumID (если композиция входит в несколько альбомов, то указать топовый по кол-ву прослушиваний, остальные trackID внести в таблицу соответствия: trackID, albumID, где "trackID, albumID" - первичный ключ);

- длина трека в секундах;

Все найденные (у исполнителей, в альбомах и композициях) теги добавлять в локальную базу: tagID (PK AI), tagName (UNIQUE).

Таблица соответствия тэгов для исполнителей, альбомов и композиций:

- структура: tagID (PK AI), artistID, albumID, trackID, tagWeight;

- tagWeight можно брать из верстки (font-size: 42px;), где 42 - вес;

- "artistID, albumID, trackID" - UNIQUE. Если тег относится к песне, то ненулевое значение только у trackID, а artistID и albumID - ноль.

Конфиг.

Файл конфигурации должен содержать следующие переменные:

- задержка между запросами к last.fm "от" в миллисекундах;

- задержка между запросами к last.fm "до" в миллисекундах;

- данные для доступа к БД;

- данные для авторизации на last.fm (если потребуется авторизация, при использовании API);

Скрипт 2.

Скрипт обновления копий чартов "Любимые треки", "Перспективные исполнители", "Набирающие популярность композиции", "Рейтинг композиций" и "Модная музыка на Last.fm". Все страницы! С привязками к имеющимся ID исполнителей, альбомов и композиций.

При обнаружении нового исполнителя, или альбома, или композиции, или тэга - внести данные в базу.

Требуется опытный программист, имеющий опыт создания подобных программ. Необходим готовый к работе скрипт, с аккаунтом на last.fm (если потребуется авторизация).

Оплата: WMZ, WMR, PayPal.