vnest
|
Сообщение #98
8 сентября 2023 в 11:08
|
Организатор событий
42 |
Игрок3 писал(а): Что касается этой флудоветки, могу удалить? Стоит удалить? Или оставить Я могу помочь!
|
Nowhereman42nd
|
Сообщение #99
10 сентября 2023 в 07:42
|
Организатор событий
41 |
Рад, что прогресс не стоит на месте.
|
Лазер
|
Сообщение #123
19 июля 2024 в 21:08
|
Супермен
13 |
Надо заходить в Настройки и нажимать "Сотворить чудо" каждый раз после очистки кэша браузера (где и хранится список игнорастов, куда их и заносит эта кнопка). Это не очень удобно. У меня вопрос к разработчику этого скрипта. Почему нельзя (было) сделать так, чтоб список игнорастов подгружался с сервера автоматически, а не по нажатию кнопки? Кнопка ведь делает тот же запрос. Если из-за ...жмякать кнопку «Сотворить чудо!». Такое извращение сделано по разным причинам, в том числе и по тем, чтобы лишний раз не грузить сервер клавогонок тупыми запросами... этого, то: • серверу плохо не станет, он итак обрабатывает миллионы запросов (например, каждое наведение мыши на ник в Рейтинге - это такой же запрос)..., но если (бы) даже дело (было) в этом, то: • можно запрашивать один раз, после очистки кэша (список в localStorage будет пуст), сразу после авторизации игрока (на Главной), а вот когда в ЧС добавляется новый игнораст (явление не такое уж частое), тогда и нужна кнопка "Сотворить чудо", чтоб добавить в кэш свежеиспеченного ...чтобы лишний раз не грузить сервер клавогонок тупыми запросами... игрок грузится лишними телодвижениями (Настройки → Сотворить чудо) после очистки кэша (можно включить очистку кэша при каждом закрытии браузера)
|
un4given
|
Сообщение #124
20 июля 2024 в 15:02
|
Клавокодер
121 |
Лазер писал(а): Почему нельзя (было) сделать так, чтоб список игнорастов подгружался с сервера автоматически, а не по нажатию кнопки? Кнопка ведь делает тот же запрос. По причине банальной лени, как это водится. Делалось всё максимально быстро и просто, насколько это возможно. По-хорошему надо было бы делать именно так, да: 1) список загружать автоматом при первичной инициализации скрипта (но анализировать не пустоту в локалсторадже, а отсутствие какого-нибудь флажка, потому что пустота в локалсторадже может быть по причине того, что у пользователя список игнорастов пустой) 2) при добавлении в список (которое, между прочим, происходит не на странице настроек пользователя, а в профиле игнорируемого пользователя) и при удалении из списка (которое происходит на странице настроек пользователя) автоматически это дело и добавлятьубирать в локалсторадже. Но на тот момент пункт 2 было сложно реализовать, потому что хз как отслеживать толком из юзерскрипта это дело (особенно учитывая чехарду с тем, что юзерскрипт не всегда корректно отрабатывает на страницах вида /u/#/), поэтому и была добавлена кнопка. Ну а раз кнопка есть, то и с остальным можно не париться. А если уж так происходит, что человек постоянно чистит локалсторадж, то пусть страдает ![](https://klavogonki.ru/img/smilies/laugh.gif) Из-за двух с половиной человек, которые очищают локалсторадж при выходе браузера, я не собираюсь это дело внедрять. Помимо всего прочего, если человек каждый раз очищает локалсторадж, то у него заодно будут слетать и остальные настройки скрипта (точнее, будут устанавливаться по умолчанию), так что не вижу повода заморачиваться. А ещё желательно прочитать постпостскриптум из первого поста: un4given писал(а): P.P.S. Если кому-то что-то не нравится/хочется добавки − гитхаб вам в руки и форк впридачу! Последний раз отредактировано 20 июля 2024 в 15:05 пользователем un4given
|
Лазер
|
Сообщение #125
20 июля 2024 в 16:12
|
Супермен
13 |
un4given писал(а): По причине банальной лени, как это водится. Делалось всё максимально быстро и просто, насколько это возможно. Спасибо за подробный ответ! un4given писал(а): По-хорошему надо было бы делать именно так, да: 1) список загружать автоматом при первичной инициализации скрипта (но анализировать не пустоту в локалсторадже, а отсутствие какого-нибудь флажка, потому что пустота в локалсторадже может быть по причине того, что у пользователя список игнорастов пустой) Ах да, все верно, флажок. Это уже детали. Игрок не будет устанавливать/включать этот скрипт, если список игнорастов у него пустой (?). И сервер вернет: "ok":1,"list":[],"users":{} un4given писал(а): 2) при добавлении в список (которое, между прочим, происходит не на странице настроек пользователя, а в профиле игнорируемого пользователя) и при удалении из списка (которое происходит на странице настроек пользователя) автоматически это дело и добавлятьубирать в локалсторадже. Но на тот момент пункт 2 было сложно реализовать... И не нужно, раз сложно. Можно поручить это волшебной кнопке. А вот пункт 1 (подгружать автоматически один раз, чтоб игрок не нажимал волшебную кнопку) - реализовать (было) несложно. un4given писал(а): ...А если уж так происходит, что человек постоянно чистит локалсторадж, то пусть страдает ![](https://klavogonki.ru/img/smilies/laugh.gif) ... Помимо всего прочего, если человек каждый раз очищает локалсторадж, то у него заодно будут слетать и остальные настройки скрипта (точнее, будут устанавливаться по умолчанию), так что не вижу повода заморачиваться... Настроек там всего 4 (чекбоксы), по-умолчанию не выставлен только один (☐Я не хочу видеть игнорируемых пользователей в чате, ??? если игнорировать, то игнорировать везде ???), если речь об этих настройках, а не о "консольных". Очищают кэш не просто так от безделья. Это: • в настройках приватности браузера • чистка от "мусора" (утилиты Ccleaner и т.д.), освобождение места на диске • смена/поломка компьютера • переустановка ОС Последний раз отредактировано 20 июля 2024 в 16:15 пользователем Лазер
|
un4given
|
Сообщение #126
20 июля 2024 в 16:30
|
Клавокодер
121 |
Лазер писал(а): Очищают кэш не просто так от безделья. Это: это всё более-менее единичные случаи, на которые можно забить. не того уровня скрипт, чтобы заморачиваться. плюс, как я уже говорил, если кого-то что-то не устраивает − всегда можно взять и допилить самому! ![](https://klavogonki.ru/img/smilies/smile.gif) Лазер писал(а): А вот пункт 1 (подгружать автоматически один раз, чтоб игрок не нажимал волшебную кнопку) - реализовать (было) несложно. Конечно! Но зачем, если всё равно в инструкции написано «жмите княпку» ![](https://klavogonki.ru/img/smilies/laugh.gif) А ещё на моей памяти был интересный случай, когда пользователи хитрили: они добавляли часть людей в игнор-лист, потом жали кнопку «сотворить чудо», а потом добавляли ещё другую группу людей в игнор, но уже кнопку «сотворить чудо» не жали, чтобы заигноренные не смогли им написать, но при этом чтобы они не скрывались игнор-листом. Понимаю, что это так себе отмазка и это уж совсем единичные случаи, но тем не менее, было-было.
|
Лазер
|
Сообщение #127
21 июля 2024 в 19:47
|
Супермен
13 |
un4given писал(а): 1) список загружать автоматом при первичной инициализации скрипта (но анализировать не пустоту в локалсторадже, а отсутствие какого-нибудь флажка, потому что пустота в локалсторадже может быть по причине того, что у пользователя список игнорастов пустой) 1) пока не нажата кнопка "Сотворить чудо", в ЛокалСторадже будет null (localStorage.getItem("KG_PowerIgnore") вернет null) Одно из возможных решений (проверено, работает в Firefox и Chrome): скрытый текст… // ==UserScript== // @name KG_PowerIgnoreAddonNoButton // @namespace klavogonki // @version 0.1 // @description Можно не нажимать кнопку "Сотворить чудо!" // @author 563183 // @match http*://klavogonki.ru/* // @license MIT // @grant none // ==/UserScript==
function getIgnoredUsers(){ const request = new XMLHttpRequest(); request.open("GET", "https://klavogonki.ru/api/profile/get-ignore-list", false); request.send(null); if (request.status === 200){ let response = JSON.parse(request.responseText); if (!("err" in response)){ let toLocalStorage = []; for (let user of Object.keys(response.users)){ toLocalStorage.push({"id": String(response.users[user].id), "login": response.users[user].login}); } if (toLocalStorage.length){ localStorage.setItem("KG_PowerIgnore", JSON.stringify(toLocalStorage)); } else { localStorage.removeItem("KG_PowerIgnore"); } } return; } alert("Не удалось подключиться. Обновите страницу!"); }
if (localStorage.getItem("KG_PowerIgnore") == null){ getIgnoredUsers(); //alert("Обновите страницу"); } un4given писал(а): 2) при добавлении в список (которое, между прочим, происходит не на странице настроек пользователя, а в профиле игнорируемого пользователя) и при удалении из списка (которое происходит на странице настроек пользователя) автоматически это дело и добавлятьубирать в локалсторадже. Но на тот момент пункт 2 было сложно реализовать, потому что хз как отслеживать толком из юзерскрипта это дело... 2) на странице профиля после добавления в ЧС всплывает окошко "Пользователь добавлен в черный список", в это время и нужно делать запрос и обновлять ЛокалСторадж, а на странице Настроек рядом есть волшебная кнопка Одно из возможных решений (добавить к предыдущему коду, проверено, работает в Firefox и Chrome): скрытый текст… function waitForElement(selector){ return new Promise(resolve => { if (document.querySelector(selector)){ return resolve(document.querySelector(selector)); } const observer = new MutationObserver(mutations => { if (document.querySelector(selector)){ observer.disconnect(); resolve(document.querySelector(selector)); } }); observer.observe(document.body, { childList: true, subtree: true }); }); }
if (/\/\/klavogonki.ru\/u\//.test(window.location.href)){ waitForElement('.modal2-content .modal-body.alert.ng-scope .ng-scope.ng-binding').then((element) => { if (element.innerHTML.includes("добавлен в черный список")) getIgnoredUsers(); }); } Потестил сам скрипт. И вот что заметил. На доли секунды, когда страница еще полностью не прогрузилась, можно увидеть игнораста (аватар и т.д.), а потом он быстро замыливается скриптом. Я думал, что при правильно работающем юзерскрипте страница будет изначально с замыленными местами, как будто она такой пришла с сервера. Похоже, это невозможно сделать юзерскриптом. Я то думал, что мои скрипты местами (замена "Что это? Это..") работают как-то не так, неправильно инъектятся, а оказалось, что и тут так же. Сам я этим скриптом не пользуюсь. Это из спортивного интереса. Черными списками (на любых сайтах) - тоже. Если закрыть глаза на "что-то", то это не будет означать, что этого "чего-то" не существует более. Это не решение проблемы. Закрыть глаза на проблему - не значит ее решить. А проблема в самом игроке... Последний раз отредактировано 22 июля 2024 в 13:03 пользователем Лазер
|
un4given
|
Сообщение #128
22 июля 2024 в 09:51
|
Клавокодер
121 |
Лазер писал(а): Закрыть глаза на проблему - не значит ее решить. А проблема в самом игроке... Я об этом твержу с самого начала, однако новому владельцу сайта было виднее, ибо он авторитетно нам заявил: « я вам сделаю игнор-лист, это единственно верное решение в данной ситуации». Мы прождали три года, никто ничего не сделал и поэтому мною было принято решение сделать это самому, по-быстрому, на коленке, чтобы можно было вживую убедиться в том, что игнор-лист не является решением проблемы наличия всяких неадекватов на сайте
|