ZX-Art 05.2019: Pouet, Simple HTML, cache

Кратко изложу новости разработки ZX-Art. Как вы понимаете, разработка не стоит на месте, и на заднем плане понемногу происходит немало вещей.





Интеграция с API Pouet.net

В апреле была завершена интеграция с API поуэта. Написан и отлажен парсер, подготавливающий информацию для класса-интегратора. К сожалению, API не имеет фильтрации, поэтому пришлось проверить абсолютно все проды, имеющиеся в базе. Впрочем, это достаточно нетрудный процесс, но занявший некоторое время в связи с тем, что Pouet сейчас очень тормозит, и многие запросы обрываются и требуют повторной отправки. Постоянно бомбить их API — некрасивая практика, поэтому в случае ошибок делаются значительные паузы, из-за которых весь импорт базы растянулся на неделю. Что дал импорт базы Pouet:
  • Youtube-видео для продов, у которых не было более надежного источника
  • Оригинальные файлы релизов, неадаптированные к диску и пентагону
  • Огромное количество информации об авторах и их ролях
  • Релизы с Sam Coupe и ZX81
  • Примерно половина продов имеет также внесенный ID с Demozoo. Это облегчит импорт базы Demozoo примерно вполовину.
  • Занесение демо/интро с новых пати теперь требует только занесения их на Pouet. Остальное сделает автоматизация

Непредвиденные трудности:
1. Плохая стандартизация ролей авторов. Одних только вариантов работы над графикой насчитал десятка полтора.
2. Куча битых линков на скачивание файлов.
3. Низкая точность информации в плане годов релизов и названий продов. Как ни странно, даже у AAA много поправлено по сравнению с Pouet.

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

Simple HTML версия и NedoOS

В совместной работе с DimkaM была создана отдельная точка входа и тема оформления ZX-Art для браузера NedoOS. Фотографию того, как это на момент разработки выглядело на реальной машине, можно увидеть в самом начале топика.
Отличительные особенности:
  • Максимально упрощенный и облегченный HTML без лишнего форматирования
  • HTTP-доступ без шифрования
  • Форматирование, подогнанное под текстовый режим шириной в 80 пикселей

zxart.ee/simple/ — доступно вот по этому адресу. Жду любых пожеланий по развитию/стандартизации также от авторов альтернативных интернет-решений.
www.youtube.com/watch?v=tswHUAC2oWI — Видео с презентацией NedoOS, если кто пропустил.

Cache

В движок сайта внедрено кэширование на базе Redis. Это позволило ускорить работу часто используемых страниц примерно в 8-10 раз.

API ZX-Art открыто в статусе бета-версии

Меня часто спрашивают: как бы я отнёсся к тому, что «кто-то заберет весь мой сайт»? Наверняка я был бы очень недоволен, бегал бы кругом по форумам и обвинял бы наглых воров, посягнувших на базу? Что ж, подобное обвинение больше всего может поведать о моральных качествах именно того, кто его озвучил, ибо, как известно, такие персонажи судят окружающих прежде всего по себе, по своей привычной мотивации и собственным моральным нормам. Именно поэтому лучше всякой болтовни мои настоящие намерения подтверждает публикация открытого API на ZX-Art.

zxart.ee/eng/about/api/ — первая версия документации, пока что только на английском. Этого набора функционала должно уже сейчас хватить для того, чтобы полностью скопировать и публичную информацию, и соответствующие файлы со всей базы.
Пробуйте, тестируйте, копируйте, запускайте приложения, копии, зеркала и полностью собственные архивы. Копируйте, распространяйте, конкурируйте, поглощайте, интегрируйте потоки информации в свои решения — делайте всё, чтобы максимально распространить и файлы, и базу, чтобы наследие платформы и сообщества не зависели от воли и настроения одного человека, как это частенько случалось ранее. В распределенности и дублировании — залог выживания ZX Spectrum, поэтому дерзайте, и пишите, если что не работает.

ZX-Art, как архив софта, после всех разработок действует сообразно принципу Solve et Coagula: информация из внешних источников полуавтоматически парсится и систематизируется, а потом выдаётся наружу в едином, удобном и готовом к машинному употреблению виду.

Кстати, спасибо инициативе Shadow Maker, значительная часть этого API была оттестирована и отлажена (результат можно увидеть в разделе Pictures на trd.speccy.cz/), а теперь я нашел немного времени, и довел до завершения некоего логического этапа и остальные типы объектов. Одна просьба: Shadow Maker, скопируй к себе также оригинальные файлы и PNG, чтобы не линковать их с ZX-Art. Иначе весь твой архив картинок рискует превратиться в тыкву, если вдруг упадёт ZX-Art.

Дальнейшие действия
В базе после всех импортов образовался невиданный бардак. Из-за совершенно разнородных стандартов по внесению информации образовалось множество дублей: дублей авторов, групп, софта. Для устранения этой ситуации уже сейчас разработан и понемногу применяется богатый инструментарий, позволяющий без потери информации объединить или сделать алиасы из дублей, а то и вовсе конвертирующий авторов в группы, а группы в авторов. Этим самым сохраняются оригинальные ID из других баз данных, что в ближайшей перспективе позволяет собрать однородную структуру из совершенно разнородных источников.
В общем, имейте терпение, и бардак будет убран, и перестанет возвращаться при последующих импортах. Всё продумано, а что не продумано, будет еще дополнительно подправлено по факту.
Кроме того, к осени будет интеграция с Demozoo и Retroscene Events, а также будет готов невиданный доселе инструментарий для всех, кто занимается разбором чужих дисковых/ленточных архивов.

Отдельное спасибо передаю всем, кто продолжает помогать с наполнением архива.

4 комментария

avatar
Очень круто!
Спасибо что продолжаешь разработку!
avatar
Присоединяйся! Если ты сделаешь схожее API, то мы сможем автоматизировать выкладку новых релизов по типу конвейера.
avatar
понял, описание апи очень приятное
avatar
Я уже заметил пару важных ошибок в API — например, файлы релизов на скачку не выдаёт должным образом. Пофиксю тоже.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.