Мой Backlog — Google Таблица с трекером времени из Steam и HowLongToBeat

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

1.5K
Автор

Еще раз хочу отметить, что реализация парсинга времени с HowLongToBeat позаимствована из подобной таблицы за авторством @splinefx (https://dtf.ru/games/296385-a-vy-vedete-tetrad-proydennyh-igr?comment=8375763), так что в первую очередь все благодарности за этот функционал шлите ему. Я лишь его немного доработал, добавив через костыль что-то типо кэширования.

В его варианте меня не устраивало, что полученное в HowLongToBeat время не кэшируется и запрашивается по новой для ВСЕЙ библиотеки каждый раз при добавлении новой игры в список, а также каждые N-часов. Это постоянно приводило к тому, что меня банально банили на HLTB за большое количество запросов. Я добавил скрипт, который отслеживает изменения столбцов с названием игры и типом прохождения, и копирует данные этих столбов, и столбца времени, в другие три скрытых столбца, расположенных по соседству (M, N, O). Формула в ячейке времени сравнивает эти данные и запускает функцию getTimeToBeat только при условии, если данные расходятся. Таким образом, теперь при создании новой строки, а также и при открытии таблицы спустя N-времени, данные по новой запрашиваться не будут.

128
Ответить

Комментарий недоступен

130
Ответить

Чел, рекомендую подумать насчёт того, чтобы эту всю инфу написать в прогу а не табличку и продавать за символические 10 рублей в стиме, прикинь как удобно было бы

56
Ответить

Хороший пост) Я собирался опубликовать что-то подобное, но не находил время. А ты тут даже исправил мои потуги в код)

По сути, у меня там есть кэширование, но со стороны самого гуглоскрипта, чтобы не превысить лимит запросов. Так что да, при перемещении строк (например, во время добавления новой записи куда-нибудь в середину) происходит повторный запрос для того, что переместилось (но данные берутся из кэша, а не запрашиваются заново с HLTB, если только не превышен лимит по времени — тогда данные заново запрашиваются и парсятся, это для того, чтобы они были актуальными).

8
Ответить
Автор

Фикс парсинга HLTB

Так как HowLongToBeat забанили запросы с гугловским юзерагентом, а поменять юзерагент в гугл таблицах нельзя (спасибо splinefx за наводку), то теперь таблица парсит данные через "прокси" shouldiplaythis.com

Если вы использовали таблицу до 10 мая 2022, то чтобы починить парсинг с HLTB в своей таблице, вам необходимо открыть таблицу из поста и пройти по следующему пути: Расширения -> Apps Script -> importHLTB.gs

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

Из минусов — не различает игры с одинаковым названием, но разным годом, например, Resident Evil 2 (2019) и Resident Evil 2 (1998).

Автор фикса — Пеша
Отдельная благодарность Евгению Лисицыну

6
Ответить

Просто скачай гог лол. Там даже с пиратки время считает

Ответить