Обновление VKMM 0.1.2

В процессе портирования программы VKMM сделал давно актуальный фикс – ВКонтакте уже довольно давно присылает 302 редирект на страницу ошибки, вместо прямого кода ошибки HTTP 404. С точки зрения QNetworkReply разумеется редирект не считается ошибкой, что приводило к зависаниям стрима, если плейлист был открыт давно (и ссылки протухли).

Обработка редиректа в Qt выполняется достаточно просто:

1. Присоединяемся к QNetworkReply::finished

connect(netReply, &QNetworkReply::finished, this, &mStream::onNetResult);

2. В слоте проверяем код статуса HTTP на редирект:

void mStream::onNetResult()
{
QNetworkReply* reply = qobject_cast(sender());
Q_CHECK_PTR(reply);

if (!reply) return;

switch (reply->error())
{
case QNetworkReply::NoError:
{
int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
switch (statusCode) {
case 301:
case 302:
case 307:
qDebug()

VKMM (Vkontakte Music Mania) теперь open-source

Мой старый проект (основное развитие в 2012 году) гибридного музыкального плеера VKMM выложен в открытый доступ.

Перед выкладкой выполнил портирование на Qt5. Были сложности с компиляцией Qt5 проекта под Windows, но кажется что (почти) всё работает. Точно есть проблемы с last.fm API и событиями в потоках движка плеера.

Проект на gitgub: github.com:petrows / vkmm-desktop