fabbi / autoshift Goto Github PK
View Code? Open in Web Editor NEWautomatic SHiFT code redemption script™
License: GNU General Public License v3.0
automatic SHiFT code redemption script™
License: GNU General Public License v3.0
The website is updated much more frequently for Borderlands 3 and has a RSS feed instead of a table.
Implement a way to redeem codes for multiple platforms/games
# pipenv run ./auto.py --user xxxx --pass xxxx --games bl3 ttw bl2 blps --platforms epic steam -v
2022-05-03 10:59:40,444 [DEBUG] auto:215 - Debug mode on
Parsing BL3 keys...done. (no new Keys)
You have 0 golden BL3 keys to redeem for EPIC
Parsing BL3 keys...done. (no new Keys)
You have 0 golden BL3 keys to redeem for STEAM
Parsing TTW keys...done. (no new Keys)
You have 0 golden TTW keys to redeem for EPIC
Parsing TTW keys...done. (no new Keys)
You have 0 golden TTW keys to redeem for STEAM
Parsing BL2 keys...done. (no new Keys)
You have 0 golden BL2 keys to redeem for EPIC
Parsing BL2 keys...done. (no new Keys)
You have 0 golden BL2 keys to redeem for STEAM
Parsing BLPS keys...done. (no new Keys)
You have 0 golden BLPS keys to redeem for EPIC
Parsing BLPS keys...done. (no new Keys)
You have 0 golden BLPS keys to redeem for STEAM
2022-05-03 10:59:48,005 [INFO] Trying to redeem Maya Head (KTC3T-WTW5F-ZCHB3-BT3B3-XJ9WR)
2022-05-03 10:59:48,313 [DEBUG] shift:187 - GET https://shift.gearboxsoftware.com/code_redemptions/new 200
2022-05-03 10:59:48,420 [DEBUG] shift:225 - GET https://shift.gearboxsoftware.com/entitlement_offer_codes?code=KTC3T-WTW5F-ZCHB3-BT3B3-XJ9WR 200
2022-05-03 10:59:48,420 [ERROR] This SHiFT code has already been redeemed
2022-05-03 10:59:48,421 [DEBUG] auto:59 - Status: UNKNOWN
2022-05-03 10:59:48,421 [INFO] A unknown Error occured
2022-05-03 10:59:48,421 [INFO] Trying to redeem Axton Head (KJKJT-WHBKX-HC9BT-TJBJ3-XJFSJ)
2022-05-03 10:59:48,514 [DEBUG] shift:187 - GET https://shift.gearboxsoftware.com/code_redemptions/new 200
2022-05-03 10:59:48,623 [DEBUG] shift:225 - GET https://shift.gearboxsoftware.com/entitlement_offer_codes?code=KJKJT-WHBKX-HC9BT-TJBJ3-XJFSJ 200
2022-05-03 10:59:48,624 [ERROR] This SHiFT code has already been redeemed
2022-05-03 10:59:48,624 [DEBUG] auto:59 - Status: UNKNOWN
2022-05-03 10:59:48,624 [INFO] A unknown Error occured
2022-05-03 10:59:48,624 [INFO] Trying to redeem Maya Head (KTC3T-WTW5F-ZCHB3-BT3B3-XJ9WR)
2022-05-03 10:59:48,718 [DEBUG] shift:187 - GET https://shift.gearboxsoftware.com/code_redemptions/new 200
2022-05-03 10:59:48,828 [DEBUG] shift:225 - GET https://shift.gearboxsoftware.com/entitlement_offer_codes?code=KTC3T-WTW5F-ZCHB3-BT3B3-XJ9WR 200
2022-05-03 10:59:48,828 [ERROR] This SHiFT code has already been redeemed
2022-05-03 10:59:48,828 [DEBUG] auto:59 - Status: UNKNOWN
2022-05-03 10:59:48,828 [INFO] A unknown Error occured
2022-05-03 10:59:48,829 [INFO] Trying to redeem Axton Head (KJKJT-WHBKX-HC9BT-TJBJ3-XJFSJ)
2022-05-03 10:59:48,925 [DEBUG] shift:187 - GET https://shift.gearboxsoftware.com/code_redemptions/new 200
2022-05-03 10:59:49,040 [DEBUG] shift:225 - GET https://shift.gearboxsoftware.com/entitlement_offer_codes?code=KJKJT-WHBKX-HC9BT-TJBJ3-XJFSJ 200
2022-05-03 10:59:49,041 [ERROR] This SHiFT code has already been redeemed
2022-05-03 10:59:49,041 [DEBUG] auto:59 - Status: UNKNOWN
2022-05-03 10:59:49,041 [INFO] A unknown Error occured
This will loop every time you run it, as the status comes back unknown, despite showing a This SHiFT code has already been redeemed
. I've fixed this (pull request to follow)
Dunno how much relevance it has but I think someone should mention it.
I get the following trying to use this under WSL2.
Traceback (most recent call last):
File "auto.py", line 218, in
main(args)
File "auto.py", line 149, in main
client = ShiftClient(args.user, args.pw)
File "/home/legion495/autoshift/shift.py", line 110, in init
if not self.__load_cookie():
File "/home/legion495/autoshift/shift.py", line 165, in __load_cookie
self.client.cookies.update(pickle.load(f))
EOFError: Ran out of input
It would be cool if it would run on the backed in Linux environment. Running under Windows works just fine :)
On windows 10, have no idea why this happens.
I'd like to have this running in a docker, is there currently a way to pass the username and password with the ./auto.py?
If not, would you be able to implement that or if you have knowledge with docker, create a dockerfile?
Would it be possible to add Tiny Tina to this software? Much appreciated.
I double-checked that my username and password are correct, but when I run ./auto.py it returns the HTML for the login page. Tried using both my username and my email as the user parameter -- no change. I can log into the website just fine.
I had this script working in the past before -- did gearbox block it or something?
I can paste the HTML here if needed, but it's literally just the login page.
Don't cross compile from mac. Maybe the GUI will look better then..
When I enter a password for initial login, autoshift crashes with TypeError: can only concatenate str (not "bytes") to str
.
This occurs as soon as the first letter of the password is entered.
auto.py
C:\Users\stevo\Downloads\autoshift-master>auto.py
First time usage: You need to login...
Username: test
Password: Traceback (most recent call last):
File "C:\Users\stevo\Downloads\autoshift-master\auto.py", line 32, in <module>
client = ShiftClient()
File "C:\Users\stevo\Downloads\autoshift-master\shift.py", line 103, in __init__
pw = input_pw("Password: ")
File "C:\Users\stevo\Downloads\autoshift-master\shift.py", line 87, in input_pw
pw += c
TypeError: can only concatenate str (not "bytes") to str
Just created a brand new instance, looks like it doesn't have the latest code build, despite using the :latest tag
autoshift_epic | usage: auto.py [-h] [-u USER] [-p PASS] [--golden] [--non-golden] --games
autoshift_epic | {bl,bl2,blps,bl3} [{bl,bl2,blps,bl3} ...] --platforms
autoshift_epic | {steam,epic,ps,xbox} [{steam,epic,ps,xbox} ...] [--limit LIMIT]
autoshift_epic | [--schedule] [-v]
autoshift_epic | auto.py: error: argument --games: invalid choice: 'ttw' (choose from 'bl', 'bl2', 'blps', 'bl3')
autoshift_epic exited with code 2
The script seems to be throwing some kind of error while redeeming keys for BLPS I believe. Below is the output from start to script termination. Let me know if you need any further info. Thank you for your time and work on this project!
C:\autoshift-master>auto.py --game bl bl2 bl3 blps --platform steam
Parsing BL keys...done. (no new Keys)
You have 5 golden BL keys to redeem for STEAM
Parsing BL2 keys...done. (no new Keys)
You have 3 golden BL2 keys to redeem for STEAM
Parsing BL3 keys...done. (no new Keys)
You have 8 golden BL3 keys to redeem for STEAM
Parsing BLPS keys...done. (no new Keys)
You have 184 golden BLPS keys to redeem for STEAM
�[1;36m2020-10-16 01:15:52,716 [�[1;34mINFO�[0m�[1;36m] �[0m �[0mTrying to redeem 5 Golden Keys (SRCBJ-5KXFF-5T6K3-33BBB-WBF6H)
�[1;36m2020-10-16 01:15:53,671 [�[1;34mINFO�[0m�[1;36m] �[0m �[0mPlease wait
�[1;36m2020-10-16 01:15:54,308 [�[1;34mINFO�[0m�[1;36m] �[0m �[0mPlease wait
�[1;36m2020-10-16 01:15:54,401 [�[1;34mINFO�[0m�[1;36m] �[0m �[0mRedeemed 5 Golden Keys
�[1;36m2020-10-16 01:15:54,402 [�[1;34mINFO�[0m�[1;36m] �[0m �[0mRedeeming another 195 Keys
�[1;36m2020-10-16 01:15:54,402 [�[1;34mINFO�[0m�[1;36m] �[0m �[0mTrying to redeem 3 Golden Keys (ZFKJ3-TT3BB-JTBJT-T3JJT-JWX9H)
�[1;36m2020-10-16 01:15:55,179 [�[1;34mINFO�[0m�[1;36m] �[0m �[0mPlease wait
�[1;36m2020-10-16 01:15:55,753 [�[1;34mINFO�[0m�[1;36m] �[0m �[0mPlease wait
�[1;36m2020-10-16 01:15:56,339 [�[1;34mINFO�[0m�[1;36m] �[0m �[0mPlease wait
�[1;36m2020-10-16 01:15:56,960 [�[1;34mINFO�[0m�[1;36m] �[0m �[0mPlease wait
�[1;36m2020-10-16 01:15:57,538 [�[1;34mINFO�[0m�[1;36m] �[0m �[0mPlease wait
�[1;36m2020-10-16 01:15:58,109 [�[1;34mINFO�[0m�[1;36m] �[0m �[0mPlease wait
Traceback (most recent call last):
File "C:\autoshift-master\auto.py", line 218, in
main(args)
File "C:\autoshift-master\auto.py", line 188, in main
redeemed = redeem(key, platform)
File "C:\autoshift-master\auto.py", line 58, in redeem
status = client.redeem(key.key, platform)
File "C:\autoshift-master\shift.py", line 140, in redeem
status, result = self.__redeem_form(form_data)
File "C:\autoshift-master\shift.py", line 317, in __redeem_form
r2 = self.client.get(redirect)
File "C:\Users\Username\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\sessions.py", line 543, in get
return self.request('GET', url, **kwargs)
File "C:\Users\Username\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\sessions.py", line 516, in request
prep = self.prepare_request(req)
File "C:\Users\Username\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\sessions.py", line 459, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File "C:\Users\Username\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\models.py", line 314, in prepare
self.prepare_url(url, params)
File "C:\Users\Username\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\models.py", line 388, in prepare_url
raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL '/rewards': No schema supplied. Perhaps you meant http:///rewards?
After calling: python3 auto.py -u ******* -p ****** --games bl3 --platforms ps
for the first time there is a FileNotFoundError for data/.cookies.save
I would love to see some kind of verification when the keys are redeemed if that is possible. To look at shift doesn't seem to work as it does when you put them in manually, so I have no Idea if it actually works properly. "/
On Win10 I get the following:
Using: .\auto.py --game bl3 ttw --platform epic --schedule -v --user "x" --pass "x"
And in Docker on Unraid I get:
standard_init_linux.go:219: exec user process caused: exec format error
Using (in either Portainer or manual):
version: "3.0"
services:
autoshift:
image: fabianschweinfurth/autoshift:latest
container_name: autoshift_all
restart: always
volumes:
- /mnt/user/appdata/autoshift:/autoshift/data
environment:
- TZ=Australia/Brisbane
- SHIFT_PLATFORMS=epic
- SHIFT_USER=x
- SHIFT_PASS=x
- SHIFT_GAMES=bl3 ttw
- SHIFT_ARGS=--schedule -v
Create an autoshift.app
containing everything.
Also need an Icon then.
This only happens sometimes... It's not detecting the case where a key has already been redeemed:
Example:
[INFO] Trying to redeem 5 Golden Keys (K3CJT-6BR3C-WJFJ9-JJTT3-JHSKZ)
[INFO] Already redeemed 5 Golden Keys
..........
[INFO] Trying to redeem 1 Golden Key (W5WBB-9HRWF-F5RJR-WXJJB-BH9XZ)
[ERROR] This SHiFT code has already been redeemed
[INFO] A unknown Error occured
I'm not very familiar with QT programs and I've been having trouble figuring out how to get this to build.
I'm trying to build for Windows but think I may be missing things, at minimum "extern_libs/QtWaitingSpinner" is missing.
Knowing what prerequisites are required here would be helpful.
Thanks for your work, this utility is quite handy!
When I call auto.py --help
, I am immediately asked to login with a username and password.
C:\Users\stevo\Downloads\autoshift-master>auto.py --help
First time usage: You need to login...
Username:
I'm not told what service I'm logging into, or why a login is necessary to view usage help.
Tested on Windows 10, Python 3.7.3 (32-bit)
It looks like your README is out of date:
./auto.py --game bl2 --platform pc
Should be:
./auto.py --game bl2 --platform steam
On latest docker version, I get an unknown error with html dump of the page, this repeats for all keys. The last successful key redemption was on 29.01.2022, creation of a new keys.db did not help...
2022-04-09 18:01:25,155 [INFO] Trying to redeem 5 Golden Keys (W3KBT-XFKWH-JBRJH-JJBTB-T99HC)
2022-04-09 18:01:25,396 [DEBUG] shift:187 - GET https://shift.gearboxsoftware.com/home?redirect_to=https%3A%2F%2Fshift.gearboxsoftware.com%2Fcode_redemptions%2Fnew 200
2022-04-09 18:01:25,628 [DEBUG] shift:225 - GET https://shift.gearboxsoftware.com/home?redirect_to=https%3A%2F%2Fshift.gearboxsoftware.com%2Fentitlement_offer_codes 200
2022-04-09 18:01:25,635 [ERROR] <!DOCTYPE html>
<html>
<head>
<title>SHiFT</title>
<link rel="stylesheet" media="screen" href="/assets/application-a33663a4a5f22277cc58019ba2015cff35c994956141b2d0c9703fb3ada686e7.css" />
<script src="/assets/application-6858d1da7c93decca973ff2f4a373ceb0868cc3b75d558d5f6f77440ccba37ef.js"></script>
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="gDf1+In+lOkuS7Hs7Bggg6C01s8IfCrfnC0bF+CGlH66/reFxRdvNcri4Kcc9w/ABKCe9Og7k0HIfP3CmFyDGw==" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="shortcut icon" type="image/x-icon" href="/assets/favicon-fe0b5e38406966e496383cdfbaf5314861496ad4b9248d67df2c3ca1e2c13d5d.ico" />
<link rel="apple-touch-icon" type="image/png" href="/assets/shift_square-45f0f9eed06a1c5018cfb4ed94cb87ec3e4acb7271940a81c2d507b9cbf0347f.png" />
</head>
<body class="shift-bg-color">
<div class="container sh_login_container min_height-container-login">
<div class="sh_login_logo_container">
<a class="sh_logo_white" href="/">Home</a>
</div>
<div class="sh_login_row sh_home">
<div class="sh_fixed_image sh_fixed_image_03"></div>
<div class="sh_login_row_container">
<div class="sh_login_row_column">
<h1>Sign in</h1>
<div id="signin-container" class="login-container">
<div id="signin">
<form action="/sessions" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="gQ8jzYbBA/GioHrtBgOT77QBUiCcq3hD7YBYyfbwA/67xmGwyij4LUYJK6b27LysEBUaG3zswd250b4cjioUmw==" />
<div class="form-group sh_signin_username">
<input class="form-control" placeholder="email" type="email" name="user[email]" id="user_email" />
</div>
<div class="form-group sh_signin_password">
<input class="form-control" placeholder="password" type="password" name="user[password]" id="user_password" />
</div>
<div class="row sh_signin_options">
<div class="col-xs-12 col-md-6">
</div>
<div class="col-xs-12 col-md-6 text-right"><a href="/password/new">Forgot your password?</a></div>
</div>
<div></div>
<div></div>
<div><input type="hidden" name="redirect_to" id="redirect_to" value="https://shift.gearboxsoftware.com/entitlement_offer_codes" /></div>
<div><input type="submit" name="commit" value="SIGN IN" class="sh_button_primary" data-disable-with="SIGN IN" /></div>
<div class="sh_loading_animation_container">
<div class="sh_loading_animation_image"><img src="/assets/LoginLoadingSpinner-435ffa844b1d702a63a3aed60a37e31c4c32330626fd72d11f28bf88bcf97078.svg"></div>
<div class="sh_loading_animation_status">Signing In...</div>
</div>
</form> </div>
<div class="sh_additional_login_options hide_on_submit">
<h2>or</h2>
<div class="login_options"><a href="/associations/steam/oauth2link"><img class="login_image" src="/assets/logos/logo_steam_login-8a1d08ed12c5c6b5e89b7d2d0ed46f8125816651d2f2d31d62d03c35678daf7a.png" /></a> <a href="/associations/xboxlive/oauth2link"><img class="login_image" src="/assets/logos/logo_xboxlive_login-4ceb0257387203dddf1eb4c13de7bee4fefad49391b3f3b9214537027caec777.png" /></a> <a href="/associations/psn/oauth2link"><img class="login_image" src="/assets/logos/logo_psn_login-4cea505ce2f6e7166ccd4885bdabf9f3fdc42e1ada77929384368c64452a8001.png" /></a> <a href="/associations/epic/oauth2link"><img class="login_image" src="/assets/logos/logo_epic_login-5ff31fe91911c386a9ebf0e92e97a4fd970882de6c03ae2289850ee056d284f9.png" /></a> <a href="/associations/twitch/oauth2link"><img class="login_image" src="/assets/logos/logo_twitch_login-cb5ebef54c3ce77b89b65d6912cd82a9ecc74e95ab05ab7be9a5fa257ada32f7.png" /></a> <a href="/associations/my2k/oauth2link"><img class="login_image" src="/assets/logos/logo_my2k_login-0fd5125b9a5df51fc466b52aa0af24f53d6e36b1c4c0e9663d530ab8d9ad0fad.png" /></a> <a href="/associations/googleplay/oauth2link"><img class="login_image" src="/assets/logos/logo_googleplay_login-e8cdbd76b6d47e45ca41fb4967c16b5434727900d1d6e618adfe4fbf9040b20b.png" /></a> <a href="/auth/facebook"><img class="login_image" src="/assets/logos/logo_facebook_login-31c71e150024f795d92dd47009bab9665965deab03b4287e9ebf16bc58d6aedf.png" /></a> <a href="/auth/twitter"><img class="login_image" src="/assets/logos/logo_twitter_login-0c5dbef55e6787d48d898f9a6e83cb103017a3409c25e9368c80b4013593a4a6.png" /></a> </div>
</div>
</div>
</div>
<div class="sh_login_row_column sh_dark_panel sh_login_promo">
<div class="hide_on_submit">
<h2>SHiFT Fuels Your Favorite Games</h2>
<div class="sh_dark_panel_list_item">
<div>
<img src="/assets/svg_icons/community-0e050d6c63174da06595094815253ab139a7606e82e9f77d3db30a45c3a59ae3.svg">
</div>
<div>
<h3>Join the Community</h3>
<p>Share your stories, offer feedback, and connect with others on the Forums.</p>
</div>
</div>
<div class="sh_dark_panel_list_item">
<div>
<img src="/assets/svg_icons/loot_reward-d1996331aee8a20fd00bb525167fcffe6c991343f643ff698a8cd24b3eb1189d.svg">
</div>
<div>
<h3>Bonus Loot</h3>
<p>Enable unique in-game items and perks. Redeem your SHiFT Codes.</p>
</div>
</div>
<div class="sh_dark_panel_list_item">
<div>
<img src="/assets/svg_icons/key-75806d1a20dab0d0b914b63c44d7d36905d31101d1448f0a92c676b6aa14bf6b.svg">
</div>
<div>
<h3>First in line</h3>
<p>Be the first to know and the first to join exclusive betas..</p>
</div>
</div>
<div>
<a class="sh_create_new_account_button" rel="nofollow" data-method="post" href="/registration/pre?redirect_to=https%3A%2F%2Fshift.gearboxsoftware.com%2Fentitlement_offer_codes">Create new account</a>
</div>
</div>
</div>
</div>
</div>
</div>
<footer>
<img class="sh_gearbox_brand" src="/assets/svg_icons/gearbox-54d00340e7f5f6439a7c62979e3d3774d14b56d5b79aad4b7ccfb87e74be809c.svg" />
<ul class="sh_footer_menu">
<li><a href="http://support.gearboxsoftware.com/hc/categories/200330390-shift">Support</a></li>
<li><a href="https://shift.gearboxsoftware.com/privacy">Privacy</a></li>
<li><a href="/tos">Terms</a></li>
<li><a href="/cookie-policy">Cookies</a></li>
<li><a href="/credits">Credits</a></li>
</ul>
<p>
<small>© 2022 Gearbox. SHiFT is a registered trademark of Gearbox Enterprises, LLC. The Playstation Network logo is a registered trademark of Sony Computer Entertainment Inc.
<br/>The Xbox LIVE logo is a registered trademark of Microsoft Corporation. The Steam logo is a registered trademark of Valve Corporation. All rights reserved. Nintendo Switch is a trademark of Nintendo.
</small>
</p>
</footer>
<div id="cookie-banner" class="notice">
<div class="banner-message" style="flex-basis: 70%;">
Our websites use cookies to distinguish you from other users of our Sites. This helps us to provide you with a good experience when you browse our Sites and to improve our Sites. This Cookie Policy provides you with information about the types of cookies we use and the purposes for using those cookies, and applies to our Sites that link to or display this Cookie Policy.
</div>
<div class="banner-buttons">
<form class="button_to" method="get" action="/cookie-policy"><input class="cancel-button" style="margin: 5px;" type="submit" value="Cookie Policy" /></form>
<button name="button" type="button" onclick="closeBanner();" class="submit_button" style="margin: 5px;">Accept</button>
</div>
</div>
<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-7740244-10', 'auto');
ga('require', 'displayfeatures');
ga('send', 'pageview');
</script>
</body>
</html>
2022-04-09 18:01:25,709 [DEBUG] auto:59 - Status: UNKNOWN
2022-04-09 18:01:25,710 [INFO] A unknown Error occured
I'm running four instances of AutoSHiFt as separate Docker containers, for myself and some friends. I've included SHIFT_ARGS=--schedule -v
in my env file to run it once an hour, but I think I'm still hitting orcicorn's too frequently. Unfortunately, I've accidentally cleared the logs while troubleshooting #45, but I initially noticed some errors about accessing the site too much.
Would it be possible to have --schedule
add a random start to each time the script checks for new keys? Or provide the option to run the script at specific times, so I can stagger them myself? I'd be fine with once a day, really.
If I remove --schedule
from my env file, the script runs repeatedly. If the container did a check and stopped completely, I might be able to schedule this with cron on my Linux host.
Thanks again for this! I really appreciate your sharing AutoSHiFt. 😄
BL3 code redemption on PC currently seems to default to steam, and does not provide an option to redeem for Epic. This results in keys redeemed for PC as unusable as BL3 has not been released for Steam yet.
First pre-condition, I'm running this on WSL2
Second: I created my account using an email. Except for the display name, I cannot find any other identifier. You cannot log into Shift website without an email though.
I tried everything, and i always have an empty data/.cookies.save
file. If I knew what format was expected I could at least yank these values out my browser.
Using GUI on Windows 7
When trying to login, Stdout hangs on '>> trying to log in' and login button does not change to signed in
I think something is wrong with Orcicorn's website - Gearbox released a new box set of most of the Borderlands games, and has been posting a crazy amount of SHiFT codes, but none of them have appeared on the website.
It looks like it used the Twitter API, which is now basically dead. I'm not sure how to proceed here. I hope this project isn't dead as a result.
If so, this was really great while it lasted, and I really appreciate all of the work you've put into it!
After trying to redeem codes for BL1, BL2 and BL-TPS I was seeing a lot of redemptions not go through. Upon looking at the codes and the list on ORCZ, I have found that the codes that show when steam is selected as platform are the codes from the PlayStation column on ORCZ. Likewise, when the platform PS is selected, codes from the XBOX column on ORCZ are shown (tested this for BL2). When the platform XBOX is selected the program crashes, probably because it is shifting columns when gathering the codes. As mentioned before, I think orcicorn might be a good addition or alternative as a source of codes.
It appears to be redeeming for Steam but not for Epic. Is there a way to either make sure it will do both (all even) or specify one?
Hello! Thanks for this app, and the Docker image. :)
Would it be possible to add another platform, universal
? It looks like the new Tiny Tina's Wonderlands keys have been marked as Universal. AutoSHiFt hasn't redeemed any keys for me in the past month, and I think that might be why.
In the database, universal
shows in seen_platforms
, but when trying to specify SHIFT_PLATFORMS=steam
in my Docker env file, I receive usage instructions in the logs:
auto.py: error: argument --platforms: invalid choice: 'universal' (choose from 'steam', 'epic', 'psn', 'xboxlive', 'stadia')
usage: auto.py [-h] [-u USER] [-p PASS] [--golden] [--non-golden] --games
{bl1,bl2,bl3,blps,ttw,gdfll} [{bl1,bl2,bl3,blps,ttw,gdfll} ...]
--platforms {steam,epic,psn,xboxlive,stadia}
[{steam,epic,psn,xboxlive,stadia} ...] [--limit LIMIT]
[--schedule] [-v]
Thanks again!
Just testing the latest CPP release.
Initial run gives error of missing "vcruntime140_1.dll", copied "vcruntime140.dll" from system to local folder and renamed to add _1.
Next run gives error: "The procedure entry point __CxxFrameHandler4 could not be located in the dynamic link library."
If you run the script for Tiny Tina's Wonderlands for any non-PC platform, then it will fail to find any codes. For example, here's the output for a fresh run where code "3TX3T-5T6CH-KKB5W-T3BTB-JCR53" should be valid with both ps and pc:
./python3 auto.py -u username -p password --games ttw --platforms ps
Parsing TTW keys...done. (no new Keys)
You have 0 golden TTW keys to redeem for PS
./python3 auto.py -u username -p password --games ttw --platforms steam
Parsing TTW keys...done. (no new Keys)
You have 0 golden TTW keys to redeem for STEAM
2022-05-07 22:22:43,888 [INFO] Trying to redeem Skeleton Key (3TX3T-5T6CH-KKB5W-T3BTB-JCR53)
2022-05-07 22:22:44,585 [INFO] The code `3TX3T-5T6CH-KKB5W-T3BTB-JCR53` is invalid
The reason that the code isn't being detected for PS is because the scraping code in query.py assumes that the Orcz page is in the same form as the other Borderlands pages, namely that each ShiFT code is split by platform. Instead, all codes are universal and are only listed once. Therefore, TTW codes must be parsed differently.
I'm unsure why Steam codes aren't being redeemed after being detected. That appears to be a separate issue.
Hi, I have an error in the latest docker version (see below), autoshift gets stuck on this until I restart it manually.
sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 140258964301632 and this is thread id 140258919384832.
Job "main (trigger: interval[1:05:00], next run at: 2022-06-29 09:16:40 CEST)" raised an exception
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/apscheduler/executors/base.py", line 125, in run_job
retval = job.func(*job.args, **job.kwargs)
File "//./autoshift/auto.py", line 175, in main
all_keys = query_keys(args.games, args.platforms)
File "//./autoshift/auto.py", line 77, in query_keys
keys = list(query.db.get_keys(None, None))
File "/autoshift/query.py", line 285, in get_keys
ex = self.execute(cmd, params)
File "/autoshift/query.py", line 199, in execute
return self.__c.execute(sql, parameters)
To me it is unclear why the thread ID changed, might be the intended code, might also be the original thread crashing due to low resources (I limit container CPU and memory).
After downloading the windows exe of the latest release, it could not load the Qt modules in the folder. After replacing these dll's with the ones I got from my Qt5 installation, the program did open. I then tried logging in, however, I got the error "login failed". I also built my own version from source which gave the same error. I could not find any logs to try and debug what is causing this. I did try making a firewall exception but this did not solve the problem.
I am now going to try on MacOS to see if it does work there.
P.S. The latest build does not provide a prebuilt version for MacOS.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.