Українська
Відкрити в Telegram

Пост До речі про Steam 💨

24 жовтня 2025
С
Сіпласпластик
До речі про Steam 💨 Днями вирішив зробити собі невеличку базу ігор, яку заповнювати, звісно, руками не будеш. Так виявилося, що у стіма є відкрита API-шка! Можна отримати основну інформацію про гру, знаючи її ідентифікатор. Останній можна подивитися, наприклад, в урлі сторінки в магазині. І потім хоп-хоп — і вся інформація легко дістається: let gameId = '1328670' let info = http get https://store.steampowered.com/api/appdetails?appids=($gameId) | get $gameId | get data І далі вже можна дивитися, шо там: > $info.name Mass Effect™ Legendary Edition > $info.genres ╭───┬────┬─────────────╮ │ # │ id │ description │ ├───┼────┼─────────────┤ │ 0 │ 1 │ Action │ │ 1 │ 3 │ RPG │ ╰───┴────┴─────────────╯ > $info.ratings.pegi ╭──────────────┬──────────────╮ │ rating │ 18 │ │ descriptors │ Violence │ │ │ Bad Language │ │ │ Gambling │ │ use_age_gate │ true │ │ required_age │ 18+ │ ╰──────────────┴──────────────╯ Або навіть отак: > $info.supported_languages | split words | 'Ukrainian' in $in false # 😭 (Підіть, може, хоча б ШБТ 💙 попросіть у дискорді, щоб вони переклали… Ех.) Я собі так навіть знятки екрана всі стягнув. Важать вони, до речі, доволі дофіга: на ≈150 ігор вийшло близько 900 МБ 🤯 Треба, мабуть, у WebP конвертнути. Апішка має ліміти на кількість запитів за певний проміжок часу. Скільки точно, я не знаю. Якщо робити десь два запита на секунду, то наче не рубає зʼєднання, але якщо флудити частіше, то сервер починає кидати якусь з 500-х помилок, здається. За який час його попускає, я теж хз — просто VPN перемкнув собі, і далі запрацювало норм. Уважний читач (так, ти 🫵) міг побачити, що URL-параметр в запиті називається appids, а не appid. Однак ні — одразу декілька передавати не можна, бо тоді їхній сервер повертає HTTP 400. Єдиний виняток — це комбінація з фільтром price_overview, яка працює: > http get https://store.steampowered.com/api/appdetails?appids=1328670,1091500&filters=price_overview | transpose -d | rename id val | select id val.data.price_overview ╭───┬─────────┬────────────────────────────────╮ │ # │ id │ val.data.price_overview │ ├───┼─────────┼────────────────────────────────┤ │ 0 │ 1328670 │ ╭───────────────────┬────────╮ │ │ │ │ │ currency │ EUR │ │ │ │ │ │ initial │ 5999 │ │ │ │ │ │ final │ 479 │ │ │ │ │ │ discount_percent │ 92 │ │ │ │ │ │ initial_formatted │ 59,99€ │ │ │ │ │ │ final_formatted │ 4,79€ │ │ │ │ │ ╰───────────────────┴────────╯ │ │ 1 │ 1091500 │ ╭───────────────────┬────────╮ │ │ │ │ │ currency │ EUR │ │ │ │ │ │ initial │ 5999 │ │ │ │ │ │ final │ 5999 │ │ │ │ │ │ discount_percent │ 0 │ │ │ │ │ │ initial_formatted │ │ │ │ │ │ │ final_formatted │ 59,99€ │ │ │ │ │ ╰───────────────────┴────────╯ │ ╰───┴─────────┴────────────────────────────────╯ Тепер можна нагенерувати собі сторінок в обсідіані або кудись ще покласти 😎
4 · 1.1K ·

Поруч у стрічці

ССіпласпластикНа торішньому Advent of Code я з певним успіхом намагався розвʼязувати задачі щодня різними мовами, зокрема на Haskell 💻, 💻, Nushell 🆕, Swift 🕊, Python 💻, Red 🔺ССіпласпластикТам 🌌🌌🌌🌌 у стімі з 9️⃣2️⃣ знижкою (усього 119₴). Хто ще не пограв — це ваш шанс )
це повідомлення
ССіпласпластик#TIL на ґітгабі 🐈 в налаштуваннях можна ввімкнути режим високої контрастності. Значно ліпше виглядає!ССіпласпластикРозкажу вам уберлайфхак для 💻 VS Code (як мінімум): Виявляється, що та висота рядків, яку редактор якось обчислює «автоматично», — це повна хєрня. Не памʼятаю в
ССіпласпластикСіпласпластик@cpplastic · канал · Технології
817підписників767середнє охоплення поста
Стрічка майданчика Відкрити в Telegram

Відкрита публічна стрічка з пошукового індексу ChatCrawler — «Google по публічному Telegram»; оновлюється в міру обходу майданчика. Час — UTC.

Лише публічний контент, офіційний API Telegram. Про проєкт · Питання · Межі індексу · Прибрати сторінку з видачі · Каталог · Пошук · Як ми рахуємо