GithubHelp home page GithubHelp logo

Comments (17)

Fenex avatar Fenex commented on August 18, 2024

from kgscripts.

voidmain02 avatar voidmain02 commented on August 18, 2024

Я, к сожалению, в ближайшее время не смогу заняться адаптацией скриптов под новые клавогонки. Слишком мало свободного времени :(

from kgscripts.

P-h-e-m-m-e-r avatar P-h-e-m-m-e-r commented on August 18, 2024

Fenex, а не подскажешь, какой теперь самый простой способ получить игроков заезда и их результаты?

from kgscripts.

Fenex avatar Fenex commented on August 18, 2024

@P-h-e-m-m-e-r , через обращение к DOM: document.querySelectorAll('#players .player')

from kgscripts.

ocrest avatar ocrest commented on August 18, 2024

Исправил KG_YandexTranslator и KG_ComplexityPanel. На остальные пока нет свободного времени :(

from kgscripts.

P-h-e-m-m-e-r avatar P-h-e-m-m-e-r commented on August 18, 2024

KG_ChatHotkey тоже легко исправляется. "Game." поменять на другой объект. Знающие, исправьте на что-нибудь приемлемое, а то не уверен на что можно.

from kgscripts.

ocrest avatar ocrest commented on August 18, 2024

@P-h-e-m-m-e-r, там будет лучше использовать просто локальную переменную, чем делать «monkey patch» существующих глобальных объектов. Не знаю, о чем я вообще думал два года назад :(

from kgscripts.

P-h-e-m-m-e-r avatar P-h-e-m-m-e-r commented on August 18, 2024

KG_ComplexityPanel - в одиночном режиме пока все так же не работает, в дружеских, открытых - работает

from kgscripts.

ocrest avatar ocrest commented on August 18, 2024

Мда, действительно. Спасибо, исправлю как только появится время (KG_YandexTranslator это тоже касается, к слову).

from kgscripts.

ocrest avatar ocrest commented on August 18, 2024

Пока хватило времени лишь на анализ масштаба проблемы. Ситуация хуже, чем я думал.

Скрипт Использование объектов game и Game Возможное решение
control_error_mode Параметры заезда и статистика ошибок во время набора Работа с DOM
DailyScores Параметры заезда и количество полученных очков при его завершении Работа с DOM
DelGameButton Параметры заезда, статус его завершения, метод game.delresult Параметры и статус — из DOM, POST-запрос на /g/{game_id}.delresult
KG_AccurateSpeedo Текст заезда, время его начала и окончания Переписать полностью. POST-запрос на /g/{game_id}.info с параметром need_text: 1
KG_CancelRaceShortcut Метод game.delresult, статус завершения заезда Мониторинг DOM, POST-запрос на /g/{game_id}.delresult
KG_ChatHotkey monkey-patch объекта Game Убрать monkey-patch
KG_ComplexityPanel Текст заезда (до старта) POST-запрос на /g/{game_id}.info с параметром need_text: 1
KG_ErrorWork Методы Game.prototype.finish и Game.prototype.doErrorWork, поле game.isReadyForErrorWork Переписать полностью или удалить
KG_ExactSpeed Длина текста заезда, время начала и окончания заезда, статус окончания заезда Переписать полностью. POST-запрос на /g/{game_id}.info с параметром need_text: 1
KG_GameLog Все данные объекта game Переписать полностью или удалить
KG_SaveGameResult Все данные объекта game Переписать полностью или удалить
KG_SeparateGameLink monkey-patch объекта game, параметры заезда Параметры заезда — из DOM, убрать monkey-patch
KG_TimeoutAlert monkey-patch объекта game, параметры заезда Параметры заезда — из DOM, убрать monkey-patch
KG_YandexTranslator Текст заезда (до старта) POST-запрос на /g/{game_id}.info с параметром need_text: 1
NoErrorCounter Параметры заезда, статистика ошибок во время набора Работа с DOM
RecentGames Параметры заезда Работа с DOM
hide_cars Проверка на существование game Убрать или заменить проверку
save_race_in_blog Параметры заезда, статистика его завершения Работа с DOM, monkey-patch XMLHttpRequest, POST-запрос на /api/profile/add-journal-post с объектом {userId: %USER_ID%, text: %TEXT%, hidden: false}

from kgscripts.

Fenex avatar Fenex commented on August 18, 2024

Метод game.delresult я скоро сделаю доступным, поэтому DelGameButton и KG_CancelRaceShortcut переделывать не нужно.

Уточнение: вызов game.delresult можно не переделывать, но помимо этого в скриптах используется обращение к другим частям game: это уже придётся переделать :(.

from kgscripts.

Disassem avatar Disassem commented on August 18, 2024

@Fenex, а зачем вообще нужно было делать их недоступными?

from kgscripts.

ocrest avatar ocrest commented on August 18, 2024

Метод game.delresult я скоро сделаю доступным, поэтому DelGameButton и KG_CancelRaceShortcut переделывать не нужно.

Метод game.delresult как раз было повторить проще всего. А вот публичные данные заезда (тип, допускаемые ранги, таймаут и т.д.), которые нужны многим скриптам, сейчас получить в разы сложнее.

@Fenex, правильно ли я понимаю, что старый код был вынесен в отдельный scope с целью создания некой защиты от читеров школьников, использовавших game.text ?

from kgscripts.

Fenex avatar Fenex commented on August 18, 2024

Да, одна из основных целей скрытия переменной - это чтобы нельзя было так легко просматривать текст перед заездом. Мне понравилось как подытожил унч эти изменения:

Это отвадит пионеров, которые научились, как макаки, тыкать в game.text

Убрать в замыкание переменную совсем не сложно и к тому же это не усложняет код, зато большинству теперь подглядеть текст будет негде.

От читов эти изменения естественно не спасут. Весь код работает на клиенте, поэтому чит написать можно в любом случае и при этом довольно легко. По умолчанию нельзя доверять результатам без капчи (квалификация) или TS.

from kgscripts.

ocrest avatar ocrest commented on August 18, 2024

Убрать в замыкание переменную совсем не сложно и к тому же это не усложняет код, зато большинству теперь подглядеть текст будет негде.

Здесь я согласен — даже такую элементарную защиту обойти будет многим не под силу.

Меня только несколько пугает объем изменений, которые необходимо будет внести в существующие скрипты (которые, в общем-то, game.text и не использовали, за редкими исключениями).

И как бы потом все эти новые костыли в виде MutationObserver-ов и monkey патчинга XMLHttpRequest не вышли боком (как в плане производительности, так и в плане «читаемости» кода).

from kgscripts.

Disassem avatar Disassem commented on August 18, 2024

Может тогда стоит выставить в открытый доступ копию переменной game без поля text?

from kgscripts.

dotru avatar dotru commented on August 18, 2024

Ну что ж вполне "рациональный" подход, навтыкать палок в колеса, чтобы передвигаться потом пешком.) От читеров это все равно не спасет, зато наживаете себе и другим кучу геммороя) Я так понимаю, вариант открыть тексты перед заездом не рассматривался вообще? Или поиск какой-то разумной альтернативы.

P.s. По хорошему, вам стоило бы давно взять под крыло все эти скрипты и реализовать в основном интерфейсе. Или самим пораскинуть мозгами над юзабильностью сайта. Люди вам медвежью услугу оказали оптимизировав сайт и сделав его более удобным, а вы так наплевательски отнеслись.

from kgscripts.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.