Расширения для браузера: dota2 steam id profile finder
Цитата: seedmon от 28.08.2024, 14:45Всем привет!
Не жду что кто-то всё таки возьмется, скорее для тех кто хочет попрактиковаться:
- Это может быть как расширение для браузера, так и скрипт для Tampermonkey (Violent/Grease).
- Расширение должно выводить в профиле steam человека под "значками":
2.1 32-bit ID пользователя steam
2.2. 64-bit ID пользователя steam
P.S. Это реализовано например здесь
2.3. Иконку-ссылку Dotabuff, которая ведет на страницу статистики этого пользователя (найденного по steamid).
2.4. Иконку-ссылку Stratz, которая ведет на страницу статистики этого пользователя (найденного по steamid)
2.5. Иконку-ссылку Opendota, которая ведет на страницу статистики этого пользователя (найденного по steamid)
2.6. Необязательно, но если хочется посложнее: вывести картинкой ранк (картинку брать с любого ресура, т.к. она везде м.б. разная, например, Stratz).
2.7. Необязательно, но если хочется посложнее: вывести общее количество матчей, винрейт, дата первого матча.- Результат примерно такой:
[spoiler title=""][/spoiler]
Всем привет!
Не жду что кто-то всё таки возьмется, скорее для тех кто хочет попрактиковаться:
- Это может быть как расширение для браузера, так и скрипт для Tampermonkey (Violent/Grease).
- Расширение должно выводить в профиле steam человека под "значками":
2.1 32-bit ID пользователя steam
2.2. 64-bit ID пользователя steam
P.S. Это реализовано например здесь
2.3. Иконку-ссылку Dotabuff, которая ведет на страницу статистики этого пользователя (найденного по steamid).
2.4. Иконку-ссылку Stratz, которая ведет на страницу статистики этого пользователя (найденного по steamid)
2.5. Иконку-ссылку Opendota, которая ведет на страницу статистики этого пользователя (найденного по steamid)
2.6. Необязательно, но если хочется посложнее: вывести картинкой ранк (картинку брать с любого ресура, т.к. она везде м.б. разная, например, Stratz).
2.7. Необязательно, но если хочется посложнее: вывести общее количество матчей, винрейт, дата первого матча. - Результат примерно такой:
Спойлер
Цитата: Vitalii Nikolaevich от 29.08.2024, 02:52Приветствую! для создания Tampermonkey скрипта:
Установите Tampermonkey: Убедитесь, что у вас установлен Tampermonkey (или другое подобное расширение, например, Greasemonkey) в вашем браузере.
Создайте новый скрипт в Tampermonkey: Откройте панель Tampermonkey и создайте новый скрипт.
Скопируйте и вставьте следующий код:
// ==UserScript== // @name Steam Profile Enhancer // @namespace http://tampermonkey.net/ // @version 1.0 // @description Add SteamID info and links to Dota statistics websites in Steam profiles // @author Your Name // @match https://steamcommunity.com/id/* // @match https://steamcommunity.com/profiles/* // @grant none // ==/UserScript== (function() { 'use strict'; // Function to convert SteamID64 to SteamID32 function steamID64To32(steamID64) { return (BigInt(steamID64) - BigInt('76561197960265728')).toString(); } // Function to get profile ID from URL function getProfileId() { const url = window.location.href; if (url.includes('/id/')) { return document.querySelector('.profile_small_header_name a').href.split('/').pop(); } else if (url.includes('/profiles/')) { return url.split('/').pop(); } return null; } // Main function function addSteamInfo() { const profileId = getProfileId(); if (!profileId) return; // Determine if profileId is custom URL or numeric SteamID64 let steamID64 = profileId.match(/^\d+$/) ? profileId : null; if (!steamID64) { fetch(`https://api.steampowered.com/ISteamUser/ResolveVanityURL/v1/?key=YOUR_STEAM_API_KEY&vanityurl=${profileId}`) .then(response => response.json()) .then(data => { steamID64 = data.response.steamid; addInfoToProfile(steamID64); }); } else { addInfoToProfile(steamID64); } } function addInfoToProfile(steamID64) { const steamID32 = steamID64To32(steamID64); const profileElement = document.querySelector('.profile_header_badgeinfo'); // Create container for new info const container = document.createElement('div'); container.style.marginTop = '10px'; container.innerHTML = ` <div> <strong>SteamID32:</strong> ${steamID32} <br> <strong>SteamID64:</strong> ${steamID64} </div> <div style="margin-top: 5px;"> <a href="https://www.dotabuff.com/players/${steamID32}" target="_blank"> <img src="https://www.dotabuff.com/favicon.ico" alt="Dotabuff" style="width: 16px; height: 16px; margin-right: 5px;"> </a> <a href="https://stratz.com/en-us/player/${steamID32}" target="_blank"> <img src="https://stratz.com/favicon.ico" alt="Stratz" style="width: 16px; height: 16px; margin-right: 5px;"> </a> <a href="https://www.opendota.com/players/${steamID32}" target="_blank"> <img src="https://www.opendota.com/favicon.ico" alt="OpenDota" style="width: 16px; height: 16px;"> </a> </div> `; // Append new info to the profile profileElement.appendChild(container); } // Run script when page is loaded window.onload = addSteamInfo; })();
Объяснение кода:
Конвертация SteamID64 в SteamID32:
- Используется функция
steamID64To32для преобразования 64-битного SteamID в 32-битный.Определение SteamID из URL профиля:
- Функция
getProfileIdопределяет ID пользователя из текущего URL страницы (если это числовой ID или кастомный URL).API-запрос к Steam:
- Если используется кастомный URL, скрипт делает запрос к API Steam для получения 64-битного SteamID.
Добавление информации в профиль:
- Создается новый контейнер в профиле Steam для вывода SteamID32 и SteamID64, а также иконок-ссылок на Dotabuff, Stratz и OpenDota.
Заметки:
API ключ Steam: Для работы с API Steam вам потребуется собственный API ключ. Получить его можно на Steam API ключ. Замените
YOUR_STEAM_API_KEYв коде на ваш ключ.Рейтинг и дополнительные данные: Добавление информации о рейтинге и дополнительных статистиках требует дополнительных запросов к API сервисов (например, OpenDota API). Это можно добавить как отдельную функцию, используя соответствующие API.
Установка скрипта:
- Нажмите на значок Tampermonkey в браузере и выберите "Create a new script".
- Вставьте предоставленный код и сохраните скрипт.
- Перейдите на страницу профиля Steam, и скрипт автоматически добавит нужную информацию.
Приветствую! для создания Tampermonkey скрипта:
-
Установите Tampermonkey: Убедитесь, что у вас установлен Tampermonkey (или другое подобное расширение, например, Greasemonkey) в вашем браузере.
-
Создайте новый скрипт в Tampermonkey: Откройте панель Tampermonkey и создайте новый скрипт.
-
Скопируйте и вставьте следующий код:
// ==UserScript==
// @name Steam Profile Enhancer
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Add SteamID info and links to Dota statistics websites in Steam profiles
// @author Your Name
// @match https://steamcommunity.com/id/*
// @match https://steamcommunity.com/profiles/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Function to convert SteamID64 to SteamID32
function steamID64To32(steamID64) {
return (BigInt(steamID64) - BigInt('76561197960265728')).toString();
}
// Function to get profile ID from URL
function getProfileId() {
const url = window.location.href;
if (url.includes('/id/')) {
return document.querySelector('.profile_small_header_name a').href.split('/').pop();
} else if (url.includes('/profiles/')) {
return url.split('/').pop();
}
return null;
}
// Main function
function addSteamInfo() {
const profileId = getProfileId();
if (!profileId) return;
// Determine if profileId is custom URL or numeric SteamID64
let steamID64 = profileId.match(/^\d+$/) ? profileId : null;
if (!steamID64) {
fetch(`https://api.steampowered.com/ISteamUser/ResolveVanityURL/v1/?key=YOUR_STEAM_API_KEY&vanityurl=${profileId}`)
.then(response => response.json())
.then(data => {
steamID64 = data.response.steamid;
addInfoToProfile(steamID64);
});
} else {
addInfoToProfile(steamID64);
}
}
function addInfoToProfile(steamID64) {
const steamID32 = steamID64To32(steamID64);
const profileElement = document.querySelector('.profile_header_badgeinfo');
// Create container for new info
const container = document.createElement('div');
container.style.marginTop = '10px';
container.innerHTML = `
<div>
<strong>SteamID32:</strong> ${steamID32} <br>
<strong>SteamID64:</strong> ${steamID64}
</div>
<div style="margin-top: 5px;">
<a href="https://www.dotabuff.com/players/${steamID32}" target="_blank">
<img src="https://www.dotabuff.com/favicon.ico" alt="Dotabuff" style="width: 16px; height: 16px; margin-right: 5px;">
</a>
<a href="https://stratz.com/en-us/player/${steamID32}" target="_blank">
<img src="https://stratz.com/favicon.ico" alt="Stratz" style="width: 16px; height: 16px; margin-right: 5px;">
</a>
<a href="https://www.opendota.com/players/${steamID32}" target="_blank">
<img src="https://www.opendota.com/favicon.ico" alt="OpenDota" style="width: 16px; height: 16px;">
</a>
</div>
`;
// Append new info to the profile
profileElement.appendChild(container);
}
// Run script when page is loaded
window.onload = addSteamInfo;
})();
Объяснение кода:
-
Конвертация SteamID64 в SteamID32:
- Используется функция
СкопированоsteamID64To32для преобразования 64-битного SteamID в 32-битный.
- Используется функция
-
Определение SteamID из URL профиля:
- Функция
СкопированоgetProfileIdопределяет ID пользователя из текущего URL страницы (если это числовой ID или кастомный URL).
- Функция
-
API-запрос к Steam:
- Если используется кастомный URL, скрипт делает запрос к API Steam для получения 64-битного SteamID.
-
Добавление информации в профиль:
- Создается новый контейнер в профиле Steam для вывода SteamID32 и SteamID64, а также иконок-ссылок на Dotabuff, Stratz и OpenDota.
Заметки:
-
API ключ Steam: Для работы с API Steam вам потребуется собственный API ключ. Получить его можно на Steam API ключ. Замените
СкопированоYOUR_STEAM_API_KEYв коде на ваш ключ. -
Рейтинг и дополнительные данные: Добавление информации о рейтинге и дополнительных статистиках требует дополнительных запросов к API сервисов (например, OpenDota API). Это можно добавить как отдельную функцию, используя соответствующие API.
Установка скрипта:
- Нажмите на значок Tampermonkey в браузере и выберите "Create a new script".
- Вставьте предоставленный код и сохраните скрипт.
- Перейдите на страницу профиля Steam, и скрипт автоматически добавит нужную информацию.
Цитата: Vitalii Nikolaevich от 29.08.2024, 03:08во второй строчке подправьте строчку сотрите и пропишите: // @name Steam Profile Enhancer
во второй строчке подправьте строчку сотрите и пропишите: // @name Steam Profile Enhancer
Цитата: Vitalii Nikolaevich от 29.08.2024, 03:17Это базовый скрипт, который выводит 32-bit и 64-bit ID пользователя Steam, а также добавляет ссылки на статистику Dotabuff, Stratz и OpenDota.
Это базовый скрипт, который выводит 32-bit и 64-bit ID пользователя Steam, а также добавляет ссылки на статистику Dotabuff, Stratz и OpenDota.
[/spoiler]