Я не люблю признавать, что был не прав, но в данном случае признаю, что был.
После прочтения поста @riking я вернулся и перечитал код (что, как я полностью признаю, следовало сделать раньше). Оказалось, что мой способ тестирования всё равно приводил к срабатыванию лимитера. Это также объясняет, почему некоторые пользователи на форумах NaNo не получили значок «Out of Love», хотя думали, что должны были его получить.
Я думаю, что путаницу вызывает именно ограничение частоты запросов. Когда пользователи его достигают, они ошибочно полагают, что у них закончились лайки, хотя на самом деле это не так, судя по тому, чему меня научила эта ветка.
Можно ли улучшить сообщения об ошибках, чтобы объяснить причину этого?
Я поищу, что смогу найти. Сам я этого никогда не видел, но проведу расследование (если только @ClawdiaWolf не знает точный текст, так как они сталкивались с этим чаще, чем я).
Это один из тех случаев, когда «нужно было проверить это раньше», потому что строка — это текстовая строка rate_limiter.by_type.create_like. Если бы я когда-нибудь искал в разделе настройки, то увидел бы её, просто никогда об этом не думал.
Вот самый свежий скриншот, сделанный во время тестирования:
Говоря как участник NaNo в ноябре прошлого года, я видел именно это. Посты в NaNo обычно вызывают симпатию
Однако на практике, если было написано «пожалуйста, подождите 1 час», то после истечения часа я мог ставить лайк, возможно, ещё один-два раза, после чего появлялось сообщение с новым временем, например, 4 часа. Неужели это срабатывает ограничитель спама, а не лимит на лайки?
Я наблюдал схожую модель поведения и на других сайтах на платформе Discourse…
Я постоянно упираюсь в лимиты (в погоне за значком «Высшая любовь») на одном из форумов, где я активен, и предупреждения о достижении ежедневного лимита лайков неотличимы от предупреждений о превышении лимита спам-лайков. Вот сообщения, которые я получил 20 апреля (время указано по UTC+8).
Я предполагаю, что первое сообщение было о превышении лимита частоты, а третье — о достижении ежедневного лимита. Если бы я не получил промежуточное сообщение, я думаю, я бы не смог отличить их. Также возникает путаница: если лайки сбрасываются в 00:00 UTC (08:00 по UTC+8), то третье сообщение не имеет смысла (или у лимитаторов спам-лайков есть тайм-ауты такой длительности?). К слову, на тот момент у меня был уровень доверия 1, если это имеет значение.
Я считаю, что суть проблемы заключается в том, что наши сообщения об ошибках становятся крайне запутанными, когда дело доходит до лимита, и никто до конца не понимает, что происходит.
Я категорически не согласен с тем, что это «чрезвычайно запутанно».
Вы достигли максимального количества лайков. Пожалуйста, подождите 14 часов перед повторной попыткой.
Какие другие английские слова можно было бы здесь использовать, чтобы сделать это понятнее? Мне кажется, что происходящее предельно ясно.
Спасибо за проявленную любовь! У вас осталось всего несколько лайков на сегодня.
Сообщение выше — это дополнительная подсказка, своего рода предупреждение, которое указывает на то, что вы почти исчерпали лимит лайков на сегодня, поэтому, возможно, стоит сосредоточиться на тех, что остались, вместо того чтобы тратить их все подряд, как конфеты?
Всё, что я могу представить:
вы использовали лимит в 50 лайков (или сколько бы он ни был, он зависит от уровня доверия);
вы ждали 1 час до UTC 00:00, когда ежедневно сбрасываются лимиты лайков;
очевидно, это зависит от вашего местоположения и времени, когда вы исчерпали все лайки. Вы могли потратить их все за 23 часа до UTC 00:00 или за 1 час до него;
затем вы снова использовали 50 лайков в течение одного часа, после чего вам нужно ждать следующего UTC 00:00, чтобы лимиты снова сбросились.
Я просто наблюдатель, который никогда не упирался в «лимит лайков», но здесь более серьёзная проблема: сама концепция лимита кажется запутанной. Пользователю вполне естественно получить противоречивые сигналы: лайки — это хороший и полезный механизм, которым стоит пользоваться, но… только не слишком много?!
Судя по тому, что я видел, некоторые пользователи вообще не используют лайки, а другие с удовольствием лайкают всё подряд. Поскольку вряд ли когда-нибудь все пользователи будут использовать «лайки» одинаково, какие именно негативные последствия возникают от того, чтобы позволить пользователям лайкать сколько душе угодно? Если дело в ограничениях сервера или в том, что это реальный индикатор спама, возможно, есть простой способ в сообщениях объяснить, почему существует лимит, чтобы он воспринимался менее произвольно.
В самом начале статьи скрыто то, как они изменили уровни доверия. Я ожидал, что самые активные лайкеры достигнут уровня TL3, который дает огромное ежедневное увеличение лайков в 2× раза. Подробнее см. Understanding Discourse Trust Levels.
Таким образом, это, в некотором смысле, рана, нанесенная самим себе.
Я читал этот пост много раз, но мне никогда не приходило в голову, что ежедневные лимиты модификаторов представлены сбалансированно, и не стоит их трогать.
Учитывая, что их всё-таки тронули, и это вызвало сообщение об ошибке, которое выглядит так же, как другое сообщение об ошибке (я предполагаю, что никто из нас не может ожидать, что эти сообщения будут прочитаны, учитывая активность, которая их вызывает), кажется, что решение состоит в том, чтобы для этого случая изменить эти сообщения об ошибках, чтобы они объясняли больше для их сообщества, которое потрясающе велико и имеет свою собственную культуру взаимодействия.