| |
| Статья написана 20 апреля 2020 г. 01:20 |
- По просьбе vbltyt починена сортировка произведений в разделе "Входит в..." на странице произведений. До этого порядок был около-случайный, теперь сортируются по дате от более ранних к более новым. Пример
- По просьбе БорЧ-а исправлена сортировка изданий. Суть проблемы: у некоторых изданий дата публикации известна с точностью до месяца, но в списке изданий цикла, например, они сортировались без учета месяца, только по году. Исправлено, теперь месяц тоже учитывается (во всех списках изданий на странице произведения). Пример
- Многие пользователи (и lomakos, который не поленился отписаться) обратили внимание, что сломано отображение списка похожих авторов в библиографии автора — список пересекался с самой библиографией. Исправлено.
- Некоторый прогресс в Go-API:
- 1. Доделан аплоад аттачей к сообщениям и черновикам в форуме
- 2. Исправлена пагинация списка статей в блоге (как-то я умудрился ее пропустить в свое время, выдавался весь список)
- 3. В списке статей больше не выводится текст статьи, чтобы клиенты не грузили лишнее
- 4. Список книжных полок пользователя перенесен из Perl API
- 5. Так же, как и создание первичных полок. Если кто помнит, после регистрации у пользователя есть возможность нажатием кнопки создать 5 полок: "Мои книги", "Продаю", "Куплю", "Прочитать", "Ожидаю". Теперь это работает и в Go-API (пока в тестовом режиме).
- ilyakokhan в Android-клиенте добавил обработку тегов с выравниванием (пригодится, например, в выводе изображений в статьях) и черновики сообщений в форуме.
- creator поправил отображение блока "В продаже" у изданий в разделах "Новинки фантастики" и "Планы издательств"
PS Немного деталей внутренней работы с кодом. Все задачи (новый функционал, исправление багов и пр.) проходит через обязательную стадию ревью: создается так называемый Pull request с набором изменений в коде, который должен посмотреть кто-то из других программистов. Если возражений нет, код сливается в основную ветку и заливается на сервер (после этого вы и видите изменения). Если нет — вносятся изменения, пока ревьюер не будет удовлетворен качеством кода. В случае Go-API у нас с nseven92 никаких проблем нет, все изменения ревьюятся в пределах одного дня. К сожалению, для сайта это не работает, поэтому было решено внедрить простое правило: если Pull request висит без ревью более 2 суток, он сливается в основную ветку без уведомления. Именно поэтому, даже если какой-то баг исправлен прямо в день, когда о нем сообщили (а чаще всего так и есть), на сайте этот фикс появится не раньше, чем через пару дней. Скорее всего. Если не случится чуда и не очнутся от вековечного сна Ктулху, Йог-Сотот и Азатот creator, vad и Demiurg. PPS creator-у закон не писан, он обходится без ревью и это очень печально.
|
| | |
| Статья написана 13 апреля 2020 г. 01:19 |
Сделано на этой неделе не так много, но кое-что все же есть: - psw заметил, что на странице переводчика переводы сортировались без учета соавторов. Исправлено.
- Некоторые пользователи со старыми браузерами (vita_9, razrub, ааа иии) столкнулись с проблемой, что вставка тегов, цитирование, ответы на комментарии и пр. перестали работать. Это моя вина — не учел, что не все браузеры поддерживают стандарт ES6 JavaScript-а, и использовал кое-что из него. Исправил, приношу извинения.
- Добавил в выдачу Perl-API новостей поле short_text — использовать его в качестве краткого описания в списке новостей на мобильных клиентах будет куда удобнее, чем description. Документацию также обновил.
- В остальном я пока по-прежнему занят задачами Go-API. В особенности аплоадом аттачей к сообщениям/черновикам в форуме.
- ilyakokhan прикрутил в Android-клиенте функционал блогов.
- creator исправлял работу кеша изображений в блогах и сериях. Делал и что-то еще, но, поскольку он никогда не объясняет, что делает, понятия не имею, что это было.
|
| | |
| Статья написана 5 апреля 2020 г. 17:59 |
- ziza обнаружил, что поиск по ISBN в API работает неверно. Исправлено, теперь список результатов отдается правильно и в общем поиске (searchmain), и в поиске изданий (search-edition).
- vad заменил поле edition_name_raw в API издания на edition_work_id, содержащий id соответствующего произведения. ziza, это тебе.
- Как выяснил, опять-таки, ziza, можно было отправить сообщение в личку самому себе, т.е. по факту, выстрелить себе в ногу. Отобрал ружье.
- Техническая проблема: не очищался кеш при удалении комментариев в блогах. Поправил.
- Удаление ветки комментариев (доступное модераторам рубрик), как выяснилось, никогда не работало правильно. Починил. Интересно, кто-нибудь когда-нибудь вообще пользовался этим функционалом?
- Мало кто знает, что на сайте существовали ссылки вида https://fantlab.ru/discusswork1. Правда, при переходе сайт всегда падал с 500 ошибкой. Когда-то давно планировалось на базе комментариев (из блогов) сделать функционал обсуждения произведений. Потом от этой идеи отказались (не очень понятно было, чем это будет отличаться от отзывов), а вот код остался и был сломан. Полностью убрал этот функционал, теперь отдает обычное "Страница не найдена".
- Поправил валидацию URL при вставке ссылки (проверка фейлилась в некоторых случаях). Спасибо Demiurg-у за дельные замечания.
- По просьбе sham-а на всех страницах, где есть награды, у каждой номинации теперь показывается своя иконка, если она есть.
- В Go-API в респонсе создания/редактирования сообщений теперь возвращается само сообщение. Сделано для удобства, чтобы не перезагружать всю страницу заново.
- Также немного поменялся формат запросов с пагинацией. Теперь используется параметр sortAsc=0/1 — сортировка сообщений от новых к старым или наоборот.
- nseven92 прикрутил к API-сервису наикрутейший мониторинг через Elastic APM. Теперь в режиме реального времени можно посмотреть, сколько времени занимает каждый запрос, сколько из этого занимают отдельные запросы в базу и т.д. Плюс поднял Min.io для хранения файлов.
- ilyakokhan в Android-репозитории прикрутил новую авторизацию (из Go) и добавил функционал форумов.
- В силу того, что есть сложности взаимодействия между новым Go-API и старым Perl-API (у них совершенно разные схемы работы с авторизацией пользователей), было решено перенести все авторизованные endpoint-ы из Perl в Go. Полный список задач можно посмотреть здесь. Этим я и буду заниматься в ближайшие пару недель.
P.S. DeMorte попросил всем напомнить, что использовать HTML-теги (iframe и прочие) в авторских колонках строго не рекомендуется. Это недокументированная возможность, которая в целях безопасности рано или поздно будет закрыта. В лучшем случае она просто перестанет работать для новых статей, в худшем — старые статьи с HTML превратятся в тыкву. Не советую.
|
| | |
| Статья написана 29 марта 2020 г. 23:09 |
Итак, небольшой список того, что было сделано за прошедшую неделю.
- По просьбе замри и умри добавил новый формат для изданий, 70x103/16 (165х250) — используется в комиксах.
- darkseed просил убрать ограничение в 25 результатов в быстропоиске художников при добавлении издания. Убрал, теперь результаты выводятся все, но пришлось добавить другое ограничение: поиск начинается после ввода минимум 2 букв, иначе поиск тысяч результатов вызовет жесткие тормоза в UI.
- БорЧ просил добавить в список издательств информацию о наличии фото на их страницах. Добавил колонку Фото рядом с колонкой Текст. К сожалению, не могу гарантировать, что алгоритм работает абсолютно верно. Изредка могут попадаться false-negative результаты (когда фото на самом деле есть, но в таблице не указано), но на практике, надеюсь, никто с этим не столкнется.
- По просьбе punker-а убрал шаблон http:// из диалога вставки ссылки. Попутно добавил валидацию url. Правда, как выяснилось при редактировании этой статьи, некоторые сложные случаи обрабатываются неправильно, так что еще доработаю.
- Когда-то давно Zlogorek писал о наличии проблемы в киноциклах: к каждому фильму прикреплена ссылка на тему форума с обсуждением, но в большинстве случаев она ведет в никуда. Починил.
- ziza просил добавить в текущую выдачу API изданий поле edition_name_raw, чтобы он мог написать скрипт поиска обложек оригинальных изданий для колонки Новинок литературы. Сделано.
- ЭльНора обнаружила проблему с добавлением новых изданий (перестало подставляться название издания). Сам же сломал чуть раньше, сам и починил.
- В проекте нового API на Go добавил endpoint-ы добавления, редактирования и удаления комментариев в блогах. Это позволит добавить соответствующий функционал в Android и iOS-клиенты. Чтобы результат работы API не отличался от того, что на сайте, я внимательно читаю Perl-код и переношу его в Go. Часто попутно находятся и баги, например:
- 1. Можно было ответить на собственный комментарий. В интерфейсе такой возможности не было, но можно было сделать это через прямой вызов endpoint-а. Пофиксил.
- 2. Любой пользователь мог написать модераторское сообщение. Достаточно было заключить текст в теги moder. Закрыл дыру.
- 3. У любого модератора рубрики была возможность наложить цензуру на сообщение другого модератора. Странная возможность, прикрыл.
- Сделал для админов выгрузку пропущенных id в списке произведений и изданий. Правда, что с этим делать, пока не решили.
- Позанимался немного правками dev-базы, использующейся для разработки и обучения новых админов. Детали раскрывать не буду по соображениям безопасности.
- nseven92, с которым мы на пару ведем разработку Go-API, добавил возможность логина по email, немного подправил документацию, поправил мои баги (sic!) и, как обычно, мучал Docker. И стартанул прикручивать мониторинг сервиса. Если у кого-то есть желание потестировать API, напишите — все расскажем и покажем.
- grbIzl сделал для Android-клиента экраны переводчика и наград автора. Появятся в следующем релизе.
- ilyakokhan стартовал внедрение Go-API в Android-клиент. Есть некоторые сложности в скрещивании с уже имеющимся API, но разберемся.
- vad начал разбираться в том, какие страницы на сайте сделаны как полагается (вынесены в шаблон), а какие — нет. Если повезет, займется переделкой.
- Demiurg, судя по всему, занят, так что ограничился ревью pull request-ов в основном репозитории с кодом сайта.
|
|
|