Перейти к содержанию

Изменения HeroesWorld-а

Аватар пользователя
#93

Прошла уже неделя с момента запуска нового движка.

Большое спасибо всем, кто писал в тему #Глюки нового интерфейса сайта , отправлял отчеты об ошибках через встроенную форму или просто присылал личные сообщения, все это помогло исправить много проблем, добавить функционал и сделать HW лучше и удобнее для использования 👍

Основная цель нового движка подтвердилась, спам ботам теперь действительно намного сложнее пробиться, за неделю был только один случай.

Также движок хорошо себя продемонстрировал в плане удержания нагрузки, предыдущий форум ложился уже после 7000-9000 анонимных сессий ботов.

Этому удалось вчера дожить до около 100000.

Некоторая часть видимых изменений и исправлений достигнутых благодаря хорошей обратной связи 🤝

Редактор сообщений
  • После двоеточия нельзя было начать новую строку, / открывал поиск вместо ввода символа, а после вставки ссылки переставал работать Enter. Причин было две — обе устранены.

  • Тире в начале строки превращало реплику в маркированный список — а диалог по-русски именно так и записывается. Автоформатирование начала строки теперь отключается кнопкой в панели.

  • Перед цитатой нельзя было ничего написать: курсор физически не вставал выше неё. Теперь над первым блоком есть полоска «+» и работает стрелка вверх — это же чинит сообщение, начинающееся с таблицы, кода или картинки.

  • Вставленные из буфера картинки (Ctrl+V, скриншоты) молча пропадали при сохранении — сообщение уходило с пустыми рамками. Теперь такая картинка загружается как обычное вложение.

  • Одна и та же картинка, вставленная несколько раз, каждый раз создавала новое вложение и списывалась с вашей квоты. Повторная вставка переиспользует уже загруженный файл.

  • Спойлер, картинку и таблицу нельзя было отредактировать после вставки — панель инструментов «замерзала».

  • Панель инструментов закрепляется под шапкой, а не за ней: раньше она «прилипала» ровно туда, где её не видно.

  • Полноэкранный режим на телефоне был дверью в одну сторону — с наполовину написанным сообщением по ту сторону. Заодно перестали пропадать всплывающие панели редактора (ссылка, картинка, цвет, таблица), открывавшиеся под ним.

  • Enter можно переключить на перенос строки, как в старом редакторе — кнопка ¶ / ↵ в панели, выбор запоминается.

  • Таблицы: вернулись рамки, добавлена ручка ширины столбцов и вертикальное выравнивание; таблица больше не расползается по горизонтали на телефоне.

  • Цитата вставлялась пустой — единственное поле было подписано «Автор или источник». Теперь сначала спрашивается текст цитаты. Добавлена и отдельная полноэкранная страница редактора для длинных сообщений; отказ сервера в сохранении больше не стирает набранное.

Смайлики
  • Смайлики со старого форума вернулись в панель выбора — все 64. Раньше они работали, но вставить их можно было только вспомнив код :smileNN:.

  • Панель открывается на смайликах, а не на стене символов. Раньше она открывалась на клавишных значках и иероглифах — смайликов будто и не было, хотя все 1 906 значков лежали на месте.

  • Четыре смайлика были в белом квадрате на тёмной теме — фон вырезан. Подписи вкладок исправлены и переведены на все 16 языков.

Ответы и темы
  • Форма быстрого ответа открыта сразу, курсор — в поле ввода. Раньше её нужно было сначала открыть.

  • Спойлер открывался с прокруткой. Так себя вёл браузер: на спойлере высотой 9 500 px он уводил страницу ровно на 9 500 px вниз. Теперь страница остаётся там, где вы её оставили.

  • Добавлен предпросмотр сообщения перед отправкой — и в теме, и в личных сообщениях.

  • Цитировать собственное сообщение снова можно, и цитата встаёт ответом под тем сообщением, которое процитировано.

  • Подряд идущие сообщения одного автора можно объединить — как на старом форуме. Кнопкой, а не автоматически: этот сайт хранит каждое сообщение на двух языках.

  • Время сообщения ставится в момент отправки, а не в момент, когда был открыт редактор.

  • Заголовок темы редактируется по языкам. Раньше на английской версии открывалось русское название, а введённый вручную английский заголовок молча удалялся при следующем сохранении.

  • Переименование темы доходит до всех языковых версий и до библиотеки, а не только до одной строки. В открытой теме появляется плашка о новых сообщениях.

Даты и время
  • Время сообщений показывалось не в вашем часовом поясе. Сообщение, написанное час назад, показывалось так, будто ему уже десять часов. Теперь время показывается в вашем поясе — точной датой и временем.

  • То же самое в личных сообщениях: время отправки не подстраивалось под часовой пояс и не совпадало даже с гринвичским.

  • В колонке «последнее сообщение» рядом с «3 недели назад» теперь стоит точная дата. По одному «энному количеству времени назад» нельзя ни сравнить две строки, ни понять, читали вы уже эту тему.

Навигация по длинным темам
  • В списке тем вернулась ссылка на последнюю страницу. 39% тем многостраничные, а /topic/214/ — это 324 страницы, и попасть можно было только на первую.

  • Быстрые прыжки по страницам: −1000 −500 −100 −50 / +50 +100 +500 +1000 и поле «перейти на страницу N». В теме на 4 841 страницу добраться до 2 500-й стоило около 250 кликов.

  • Добавлен шаг ±10: из середины темы одним кликом можно было уйти максимум на пять страниц вперёд.

  • Непрочитанные темы выделены самим заголовком — жирнее и темнее. Ссылка ведёт к первому непрочитанному сообщению, а не к последнему.

  • Непрочитанное считается и для гостей, теперь по каждой теме отдельно. И вход в аккаунт посреди чтения больше не гасит разом весь накопленный список.

  • Вернулась кнопка «Отметить все прочитанным» на главной форума. Без неё сбросить отметки можно было только открыв каждую тему.

  • Появилась кнопка «Наверх» — в правом нижнем углу, после полутора экранов прокрутки.

  • Переход к сообщению больше не «едет» плавной прокруткой через всю тему — страница сразу открывается на нужном сообщении.

  • Номер сообщения в углу снова кликабельный и открывает одно сообщение на отдельной странице — как showpost.php на старом форуме. Старые ссылки showpost.php?p=… ведут туда же.

  • Alt+← / Alt+→ снова работают мгновенно. Страницы вернулись в кэш браузера: возврат в тему больше не перезагружает её целиком.

  • Прокрутка перестала прыгать: картинке резервируется место до того, как она загрузится.

Внешний вид и производительность
  • ⚠️ Ноутбук грелся, кулер шумел, прокрутка дёргалась — настоящая причина у части из вас была только в Firefox. На всю страницу висел эффект, включённый правилом «только для Firefox», поэтому ни один замер в Chrome его не видел. Измерено в Firefox 154: загрузка процессора 56% → 24%, подтормаживания прокрутки — 16 длинных кадров за проход → ноль. При этом эффект не рисовал ничего: попиксельное сравнение снимков не нашло ни одного отличия.

  • Отдельно устранена утечка памяти в Firefox: каждый переход на другую страницу оставлял за собой «призрак» закрытой.

  • Раньше был удалён фоновый анимированный холст — он продолжал рисовать даже у тех, кто его выключил — и снят эффект размытия с 57 элементов главной.

  • Страница темы стала заметно легче. Данные всех обучающих подсказок сайта отдавались на каждую страницу — 221 КБ, 38% её веса, включая гостей (теперь 18,7 КБ; страница целиком 567 КБ → 365 КБ). И 1,1 МБ кода редактора грузилось всем читателям, включая тех, кому отвечать нельзя.

  • Главная открывалась 1,2–4,5 секунды — белый экран, потом всё сразу. Виноват был фильтр по игре: технически верное условие заставляло базу запускать собственный компилятор запросов при каждом обращении.

  • Добавлен переключатель «Без фона» — плоский фон, не меняя тему целиком.

  • Добавлен переключатель широкой вёрстки: до 1560 / 1720 px во всех темах вместо 1320.

  • Масштаб интерфейса стал вашей настройкой: 100–125%. Раньше Classic молча делала весь интерфейс на 15,6% крупнее остальных.

  • Меню аккаунта больше не уезжает за нижний край экрана. На 1920×1080 при 125% масштабе ОС пункт «Выход» был просто недоступен.

  • Samsung Internet в режиме энергосбережения: при тапе по теме слово мигало белым — это срабатывали наши же hover-эффекты. Убраны на всех списках.

  • Карточки в «Играх и категориях» перестали дёргаться под курсором, раскрытую игру снова можно закрыть, а закрытый раздел не открывается заново после F5.

  • Панель статистики убрана из каждой темы и профиля — теперь она только на главных страницах.

Тема Classic
  • Блок автора перестроена под старый форум + предложения по улучшению аватар 155 px, счётчики и «боевой дух» на месте, дата и номер сообщения — там же, где были.

  • Кнопки «Изменить» и «Удалить» своего сообщения снова видны. В Classic триггером меню служит имя автора, поэтому найти их было негде.

  • Меню сообщения вернулось на место, «Пожаловаться» вынесено отдельным красным пунктом вниз.

  • В тёмной Classic уведомления были не видны вообще — чёрный текст на чёрной карточке, контраст 1,09 к 1 при норме 4,5. Ровно одно сочетание из шести.

  • Подписи под сообщениями и комментарии к оценкам восстановлены. Данные лежали на месте с самого переезда — 4 636 подписей и 75 686 комментариев, — не хватало только отображения.

  • Индикаторы «в сети / не в сети» вернулись рядом с именем автора — те самые мониторы со старого форума.

  • Плотность, ширина колонки и масштаб приведены к старому форуму; на мобильном контент не наезжает на баннер.

Профиль и подпись
  • ⚠️ Сохранение профиля незаметно стирало оформление подписи. Из 4 636 подписей 596 оформлены старым тегом <font>, и очистка разметки выбрасывала его при каждом сохранении формы «Обо мне»: слова оставались, цвет, размер и шрифт исчезали. Достаточно было поменять город, чтобы разом перекрасить свою подпись под всеми своими сообщениями.

  • Счётчик сообщений больше не заморожен. Показывалось число, записанное один раз при переезде: у самого активного участника 41 518 против реальных 64 544.

  • «Последняя активность» — снова конкретная дата и время, а не «был(а) в сети энное количество времени назад». И пока участник в сети, видно, в какой он теме — например, отвечает ли ведущий в игровой теме.

  • «Последний визит» действительно обновляется — раньше значение записывалось один раз при переезде.

  • Подпись теперь редактируется как обычное сообщение — с жирным, цветом и размером, а не написанием HTML вручную. И её стало видно, где менять.

  • Вкладка «Темы» в профиле больше не выдаёт 404 на вики-статьи: у аккаунтов, держащих перенесённую вики, битыми были 83 ссылки из 103.

  • Поиск участников ищет и по отображаемому имени, а не только по логину.

  • Значок присутствия стал читаемым и указывается один раз, а не дважды разными словами.

Вход и восстановление доступа
  • При переезде логин собирался только из символов, которые логин допускает, — и тем, у кого имя кириллицей, с пробелами или знаками, достался служебный user13267. Добавлено восстановление логина по отображаемому имени и почте.

  • ⚠️ Похожие буквы больше не выдают чужой аккаунт. Латинская a и кириллическая а внешне неразличимы: участник вводил своё имя и получал чужой логин. Теперь имена-двойники распознаются, а различающиеся буквы подсвечиваются.

  • Вход возвращает вас туда, откуда вы его начали. Форма всегда умела возвращать назад, но ссылка «Войти» в шапке не передавала, откуда вы пришли.

  • Выход из аккаунта больше не выбрасывает на главную — вы остаётесь на той же странице, просто уже как гость.

Языки
  • Смена языка интерфейса ничего не меняла у незалогиненных. Кнопка срабатывала, язык сохранялся — а страница возвращалась на прежнем языке из общего кэша. На главной работало, в разделе форума и в вики — нет.

  • Язык сообщения определяется сам, а спрашивают только в спорном случае. Пороги подобраны по 188 529 настоящим сообщениям форума: русский текст с английскими названиями существ и городов — самая частая здесь форма речи, и она больше не считается «смешанной».

  • Можно вообще отключить этот вопрос — галочка «больше не спрашивать» в самом диалоге. Заодно диалог наконец называет языки словами, а не кодами en и ru.

  • Короткие русские реплики записывались как английские. Причина — порог «слишком мало букв, чтобы судить» был одинаковым для обоих алфавитов.

  • Добавлен переключатель «приоритет оригинала»: сайт показывает авторский текст или человеческий перевод, а машинный — только если больше ничего нет.

Уведомления и личные сообщения
  • ⚠️ «Вашу тему перенесли» приходило всем подряд. Модератор перенёс 6 тем — сайт написал 72 уведомления: каждому, кто когда-либо отвечал, и по одному на каждую тему из пачки. Причитались шесть — авторам.

  • Ссылки в уведомлениях вели на 404. Само сообщение было цело — ломалась именно ссылка: три разных места собирали её по-своему, два неправильно.

  • В форме личного сообщения появился предпросмотр.

  • Кнопки в форме сообщения переносятся на узких экранах — на 320 px ничего не вылезает за край.

Вложения и картинки
  • ⚠️ Вложения показывались в случайном порядке. В запросе не была задана сортировка. Старый форум сортировал по номеру вложения, и переезд эти номера сохранил — теперь порядок ровно тот же, что был на heroesworld.ru.

  • Принимается .webp — единственный формат, который сайт сам производил, но не принимал обратно: каждая загруженная картинка пересохраняется в webp (46 366 вложений против 10 950 во всех остальных форматах вместе), и попытка приложить её заново отвечала «Расширение файла не поддерживается».

  • Принимаются .rar и полный набор форматов карт и кампаний Heroesh3c, h4c, h4m, h4r. Раньше карту H3 приложить было можно, а кампанию рядом — нет.

  • Аватары восстановлены в исходных пропорциях. При переезде каждый обрезался в квадрат по центру: 2 677 из 4 610 были неквадратными, 1 248 потеряли четверть и больше — срезало головы и ноги.

  • Картинки в сообщениях выводятся в собственных пропорциях, а не насильно 16:9: портрет рядом с текстом превращался в иконку ~27 px. Заданная автором высота снова учитывается.

  • Ширина колонки таблицы теперь важнее ширины картинки: картинка 1152 px в колонке на 123 px больше не вылезает за её пределы.

  • Подписи на плитках вложений сливались с фоном — имя файла, размер и число скачиваний были нечитаемы. Заодно файлы идут перед картинками, и карта не застревает посреди сетки.

  • Картинка-вложение, открытая в отдельной вкладке, скачивалась вместо показа.

  • Восстановлены встроенные картинки-вложения, ломавшиеся из-за пробела в служебной метке времени в старых ссылках.

  • Вернулись рамки старых таблиц (border="1"), убран внутренний скролл, обрезавший высокие таблицы из старых сообщений.

  • «Вставить изображение» → вкладка «Вложения» была неактивной сразу после загрузки: сервер пересохраняет картинки в WebP и переименовывает их, а редактор искал старое имя.

Поиск
  • Быстрый поиск успевал сказать «ничего не найдено» раньше, чем начинал искать — то есть отвечал до того, как задан вопрос. Теперь в это время виден индикатор ожидания.

  • Файлы из категории «Прочее» не показывались в быстром поиске — даже при точном совпадении имени файла, хотя на полной странице поиска находились.

  • Быстрый поиск стал заметно отзывчивее: в группе видно пять строк, а с сервера забиралось по 500 — теперь по 50.

Форум: главная и разделы
  • Блок активности на /forum: показывал 9 тем вместо 10, строки и карточки сдвигались на 2 px при наведении, а названия игр под темами были простым текстом вместо ссылок — исправлены все три.

  • В разделе снова 60 тем на страницу, а не 15. Столько отдавал старый форум; при пятнадцати «Таверна» превращалась из 14 страниц в 55.

  • forum.heroesworld.ru снова открывает форум. Закладка на корень поддомена вела на главную сайта — отчего казалось, что форум убрали. Глубокие старые ссылки работают как работали.

  • Переключение игры в верхней панели возвращает наверх страницы. Раньше, если сменить игру внизу списка, раздел открывался выше видимой области — приходилось прокручивать вверх, а внутри темы менялась только фоновая картинка.

  • «Таверна» и «Ратуша» подняты выше блока активности — их не могли найти: они начинались примерно на 2,6 экрана вниз, на странице, которая выше выглядела законченной. «Ратуша» добавлена в список разделов и значится один раз, а не двумя строчками.

  • «Последние картинки» открывают страницу, откуда картинка взята, а не голый файл в новой вкладке. И туда больше не попадают скриншоты из «Ратуши»: это отчёты об ошибках, а не игровые картинки.

  • Карты: тип, размер и автор теперь видны на странице самой темы и их можно исправить. До этого запись была «на один раз»: опечатка в имени автора оставалась навсегда.

  • Автор темы может убрать её из библиотеки. Руководство по подмене файлов Heroes 5 висело на странице карт рядом с настоящими релизами — просто потому, что к нему приложена демонстрационная .h5m.

  • У темы в блоке активности появилась плашка раздела, а не только игры: прежняя вела на доску игры целиком — десятки разделов. А на странице «показать все» плашек не было вовсе.

Вики
  • Сетку карточек объектов теперь можно вставить в редакторе — раньше она могла появиться только из HTML.

  • Предпросмотр в редакторе вики. Редактор показывает набранный текст, но не то, что нарисует сервер: карточка объекта базы знаний стоит в нём коротким чипом, ссылка на характеристику — подписью, а битая ссылка узнаётся только после сохранения.

Модерация
  • Массовый перенос сообщений: несколько сообщений отмечаются галочками и переносятся за один раз. Раньше одиннадцать оффтопных ответов означали одиннадцать диалогов подряд.

  • Выделенные сообщения можно вынести в новую тему. Обходной путь — создать пустышку, перенести, переименовать — оставлял наверху чужое первое сообщение и приписывал тему модератору.

  • И массовое удаление — тем же выделением, обратимое.

  • Меню у сообщения разделены по смыслу: меню у имени — про участника, меню «⋮» — про само сообщение. Подписка на автора добавлена прямо в меню участника.

Данные, пострадавшие при переезде
  • ⚠️ Эмодзи в заголовках и сообщениях превратились в «?». Потеря произошла ещё до того, как данные к нам попали: старый сервер выгружался в кодировке, где на символ отводится максимум три байта, а эмодзи занимает четыре. Кириллица занимает два и уцелела, поэтому повреждение выглядело выборочным. Символы восстанавливаются по живой копии старой базы — посимвольно и с проверкой, что строку с тех пор никто не правил.

  • ⚠️ Ссылки на профили внутри старых сообщений выдавали 404 — 1 156 сообщений. В старом редакторе адреса записывались без ведущей косой черты; на старом форуме это работало, а здесь браузер достраивает их от адреса текущей страницы.

  • 110 тем отображались вообще без названия: при переезде срезался префикс в квадратных скобках, и если название состояло из одного этого префикса — не оставалось ничего.

  • Перевод заголовков считался «авторским», хотя был машинным. Все 10 451 заголовок был при переезде помечен как написанный человеком, из-за чего переключатель «приоритет оригинала» не делал ничего, а заголовки не перегенерировались при правке оригинала. 26 настоящих человеческих переводов сохранены.

  • Видео, уничтоженные очисткой разметки, восстанавливаются из того, что осталось в тексте сообщения.

  • В форме ответа собственная плашка автора показывала «боевой дух 0», без даты регистрации и числа сообщений.