Rudokhvist / ASF-STM

ASF bot list trade matcher
Apache License 2.0
25 stars 2 forks source link

Гениальная идея #4

Closed Wolterhon closed 1 year ago

Wolterhon commented 3 years ago

Товарищ Рыже, у меня появилась гениальная идея, как ускорить скрипт в миллион раз. Т. к. мы не steamtradematcher, нам не нужно грузить весь инвентарь в кэш, чтобы потом сравнивать его для всех пользователей. Когда скрипт только запускается, проверяются конкретно значки, по которым мне могут понадобиться дубликаты. Так вот, их можно так же парсить через страницу значков у других пользователей. Пример: у меня есть две игры, из которых мне нужно будет найти карточки: Cold Blooded Cube (933070) и, допустим, World of Warships (552990). Вместо того, чтобы полностью парсить инвентари ботов сотнями запросов (которые у меня спустя некоторое время, кстати, возвращают 500-ю или 403-ю ошибку), мы отправляем в профиль каждого бота два запроса: gamecards/933070/ и gamecards/552990/. Несмотря на то, что незаконченные значки не отображаются в списке у ботов на странице /badges, на самой странице значка в скобках всегда указывается количество карточек. В случае, если значков очень много, можно добавить логику, которая будет выбирать способ парса в зависимости от того, каким способом запросов будет меньше, через gamecards или парс всего инвентаря (если вещей мало). У вас уже была такая идея и что-то пошло не так или я правда очень умный? 👯‍♂️

Rudokhvist commented 3 years ago

Ну, "в миллион раз" это очень смелое заявление, но раза в 2-3 наверное может. Для случая, когда нам надо найти недостающие карточки из небольшого количества значков - действительно, это сработает. И да, нужен комплексный подход - сколько у нас значков на обмен нам известно, сколько предметов в инвентаре у бота - известно, если колисчество значков > количество предметов/5000 - надо запрашивать инвентарь, иначе - значки. Я уже, признаться, не помню всю логику досконально, но наверное должно получиться.

Wolterhon commented 3 years ago

Я потихоньку допиливаю форк, маленькие улучшения и исправление недоработок, а также попытаюсь сделать изложенное в посте выше. Мне сейчас прямо pull request сделать и коммитить туда или сделать, когда уже закончу всё?

Rudokhvist commented 3 years ago

Да как угодно.

Rudokhvist commented 1 year ago

Thank you for the idea, implemented with 97f3147 Feel free to check!

Wolterhon commented 1 year ago

Thank you for the idea, implemented with 97f3147 Feel free to check!

А форк я так и не допилил 🤡