EN
chimildic
chimildic
135 subscribers
goals
2 of 10 paid subscribers
Спонсировать новые проекты
0 of $ 110 money raised
Спонсировать новые проекты

📚 Экспорт прочитанных книг с Livelib.ru

С 2011 года у социальной сети в мире книжек Livelib есть запрос от пользователей на экспорт списка прочитанных книг. Для разных целей: спасти историю на случай закрытия сервиса, создавать графики в Excel, перейти в другой сервис.
За последние несколько лет уже появились решения от сторонних разработчиков. Кто-то делал целую курсовую работу. Потому что очень подробно описал процесс с добавлением базы данных. Кто-то обошелся простым скриптом. Самый дружелюбный вариант требует вручную сохранить страницу и загрузить на сервис для парсинга. Кстати, последний вариант можно назвать квестом со звездочкой для пользователя мобильного устройства.
Далеко не каждый читатель сможет завести скрипт, пройти квест или довольствоваться лишь названием книги из-за особенностей реализации сервиса. Мне стало интересно, а как я решу эту задачу?
Выбор платформы
Расширение для браузера - хороший вариант, но отрезает
мобильных пользователей. И, если честно, разметка и процессы сайта довольно старые или просто плохие. Особенно на контрасте с VK Play Live или Яндекс.Музыкой. Внедрил казалось бы стандартные на сегодня стили страницы для будущего окна от расширения - так то тут, то там поехали кнопки и анимации самого сайта. Потому что создатели решили, что размещать элементы в абсолютных позициях и выравнивать по пикселям это хорошая затея. Понятно, что внедрение сторонних вещей ломает исходник. Но исправлять добрую половину сайта или искать фреймворк, который приживется лучше - нет никакого желания. 
Веб-приложение поднимает "проблему" кросс-запросов. Браузер на основе определенных заголовков запрещает отправлять запросы с одного домена на другой. Например, нельзя отправить запрос с сайта Boosty на сайт Livelib для получения данных о книжках, находясь только в рамках браузера. Обходной путь - третья сторона, то есть свой сервер. 
Мобильное приложение во всем лучше: и разметка своя, и запросы вне браузера. Но опять же отрезаются пользователи компьютера. 
Веб-приложение
Опыт создания goofy наглядно доказал, что платформа Google Apps Script сильно недооцененная вещь. Она позволяет делать проекты практически лобового вида. Да, есть вопрос масштаба и лимитов, но определенные алгоритмические решения в сочетании с фактически бесплатным сервером делают платформу идеальным решением для небольших проектов вроде парсера. Что в контексте задачи означает решение "проблемы" кросс-запросов. 
В итоге получилась небольшая форма, которую вы видели на скриншоте в начале поста. Она доступна по ссылке livelib-backup с открытым исходным кодом на Github
Возможно способ получения данных со временем прикроют, но на данный момент работает лучше аналогов так как:
- от пользователя нужен только никнейм
- дается выбор десятка полей
- есть несколько видов страниц и форматов
В заключении
Похоже на рубрику "закрой древний тикет/запрос", о которой никто не просил🙂 Возможно у вас найдутся интересные задачи для других ресурсов. Можете связаться со мной на эту тему.

Subscription levels

Тестировщик

$ 2,19 per month
• Поддержать разработчика

Программист

$ 4,4 per month
• Доступ к скачиванию приложения YaMuTools
Go up