PHP-скрипт парсинга last.fm (MySQL)
Инструменты: 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.