Преобразование Steam ID в Python

Код, который может конвертировать

  • STEAM ID в STEAM ID 32 или STEAM ID 64
  • STEAM ID 64 в STEAM ID или STEAM ID 32
  • STEAM ID 32 в STEAM ID или STEAM ID 64

Ответы (1 шт):

Автор решения: homus32
steamid64ident = 0x0110000100000000


def steamid64_to_steamid(steamid64):
    steamid64 = bin(int(steamid64))[2:]
    steamid64 = "0" * (64 - len(steamid64)) + steamid64
    x = int(steamid64[:8], base=2)
    y = int(steamid64[-1], base=2)
    z = int(steamid64[-32: -1], base=2)

    return "STEAM_{}:{}:{}".format(x, y, z)


def steamid_to_steamid64(steamid: str):
    steamid = steamid.split(":")
    return int(steamid[2]) * 2 + steamid64ident + int(steamid[1])


def steamid_to_steamid32(steamid: str, type_="U"):
    steamid = steamid.split(":")
    return "[{}:1:{}]".format(type_, int(steamid[2]) * 2 + int(steamid[1]))


def steamid32_to_steamid(steamid32: str):
    return steamid64_to_steamid(int(steamid32.strip("]").split(":")[2]) + steamid64ident)


def steamid32_to_steamid64(steamid32: str):
    return int(steamid32.strip("]").split(":")[2]) + steamid64ident


def steamid64_to_steamid32(steamid):
    return steamid_to_steamid32(steamid64_to_steamid(steamid))


if __name__ == '__main__':
    steamid_64 = 76561197960287930

    to_steamid = steamid64_to_steamid(steamid_64)
    print(to_steamid)

    to_steamid32 = steamid64_to_steamid32(steamid_64)
    print(to_steamid32)

    steam_id = "STEAM_1:0:11101"

    to_steamid64 = steamid_to_steamid64(steam_id)
    print(to_steamid64)

    to_steamid32 = steamid_to_steamid32(steam_id)
    print(to_steamid32)

    steamid_32 = "[U:1:22202]"

    to_steamid64 = steamid32_to_steamid64(steamid_32)
    print(to_steamid64)

    to_steamid = steamid32_to_steamid(steamid_32)
    print(to_steamid)

https://developer.valvesoftware.com/wiki/SteamID

→ Ссылка