') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - ShellRox/SteamAuthPy: Simple module to authenticate on Steam website with Python 2.x · GitHub
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SteamAuthPy

Simple module to authenticate on Steam website with Python 2

This module only supports Python 2.7-2.6 versions, If you use Python 3, Please use steampy (We are not associated in any way with steampy).

Installation

You can install ths module with pip:

pip install SteamAuthPy

Methods

Example

importSteamAuthPyimporttimeprint(SteamAuthPy.confkey(time.time(), "caOdv/kdRloP9nbh3gMkxKaXALI=", "conf"))

guide()

Returns a string of information about all functions in controller and arguments that they take.

oauth(*path)

*path - Path to the Steam Chat's HTML file

Uses regex to find Oauth (Access) token from Steam's chat. If path argument is not entered, authentication/steamchat.html is checked.

You are required to copy HTML like this in order for module to work:

  1. Access http://steamcommunity.com/chat
  2. Inspect elements (If you are on Google Chrome, right click and inspect)
  3. Copy OuterHTML of body: Copying OuterHTML on Chrome
  4. Paste OuterHTML in steamchat.html
  5. Call the function

deviceid(steamId)

steamId - SteamID64 (String)

Returns generated working Android's UDID by your SteamID64.

setup(steamId, Oauth, UDID, logging=True)

steamId - SteamID64 (String);

Oauth - Access Token (String);

UDID - Unique Device Identifier (device id) (String);

logging - Boolean value (True/False);

Add Steam's mobile authenticator on your account.

If logging argument is False, Json response which contains important data (e.g shared_secret & identity_secret) will not be logged in shared_secrets.json file. Please change this argument only if you are 100% sure that you will save this data manually.

secrets()

Returns decoded Json of file containing authenticator response information if it was logged

authcode(time, shared_secret)

time - Unix time (Should be current time in most of the cases);

shared_secret - Shared secret key;

Returns generated Two-factor authentication code from time and shared_secret.

confkey(time, identity_secret, tag)

time - Unix time (Should be current time in most of the cases);

identity-secret - Identity secret key;

tag - Tag that should be added to bytearray;

Returns generated trade offer confirmation key from time, identity secret and tag name.

login(username, password, shared_secret)

username - Username of your Steam account;

password - Password of your Steam account;

shared_secret - Shared secret key;

Returns a requests session containing all cookies obtained from Authentication (In short, It returns login session if correct arguments are passed).

About

Simple module to authenticate on Steam website with Python 2.x

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages