mirror of
https://github.com/frozenpandaman/s3s.git
synced 2026-09-11 03:55:22 -05:00
make language user-selectable (#52)
This commit is contained in:
46
s3s.py
46
s3s.py
@@ -8,7 +8,7 @@ import argparse, datetime, json, os, shutil, re, requests, sys, time, uuid
|
||||
import msgpack
|
||||
import iksm, utils
|
||||
|
||||
A_VERSION = "0.1.10"
|
||||
A_VERSION = "0.1.11"
|
||||
|
||||
DEBUG = False
|
||||
|
||||
@@ -40,10 +40,10 @@ except (IOError, ValueError):
|
||||
|
||||
# SET GLOBALS
|
||||
API_KEY = CONFIG_DATA["api_key"] # for stat.ink
|
||||
USER_LANG = CONFIG_DATA["acc_loc"][:5] # nintendo account info
|
||||
USER_LANG = CONFIG_DATA["acc_loc"][:5] # user input
|
||||
USER_COUNTRY = CONFIG_DATA["acc_loc"][-2:] # nintendo account info
|
||||
GTOKEN = CONFIG_DATA["gtoken"] # for accessing splatnet - base64
|
||||
BULLETTOKEN = CONFIG_DATA["bullettoken"] # for accessing splatnet - base64 json web token
|
||||
GTOKEN = CONFIG_DATA["gtoken"] # for accessing splatnet - base64 json web token
|
||||
BULLETTOKEN = CONFIG_DATA["bullettoken"] # for accessing splatnet - base64
|
||||
SESSION_TOKEN = CONFIG_DATA["session_token"] # for nintendo login
|
||||
F_GEN_URL = CONFIG_DATA["f_gen"] # endpoint for generating f (imink API by default)
|
||||
|
||||
@@ -152,20 +152,25 @@ def gen_new_tokens(reason, force=False):
|
||||
if manual_entry: # no session_token ever gets stored
|
||||
print("\nYou have opted against automatic token generation and must manually input your tokens.\n")
|
||||
new_gtoken, new_bullettoken = iksm.enter_tokens()
|
||||
acc_lang = "en-US"
|
||||
acc_lang = "en-US" # overwritten by user setting
|
||||
acc_country = "US"
|
||||
print("Using `en-US` for language and `US` for country by default. These can be changed in config.txt.")
|
||||
print("Using `US` for country by default. This can be changed in config.txt.")
|
||||
else:
|
||||
print("Attempting to generate new gtoken and bulletToken...")
|
||||
new_gtoken, acc_name, acc_lang, acc_country = iksm.get_gtoken(F_GEN_URL, SESSION_TOKEN, A_VERSION)
|
||||
new_bullettoken = iksm.get_bullet(new_gtoken, APP_USER_AGENT, acc_lang, acc_country)
|
||||
CONFIG_DATA["gtoken"] = new_gtoken # valid for 2 hours
|
||||
CONFIG_DATA["bullettoken"] = new_bullettoken # valid for 2 hours
|
||||
CONFIG_DATA["acc_loc"] = acc_lang + "|" + acc_country
|
||||
|
||||
global USER_LANG
|
||||
if acc_lang != USER_LANG:
|
||||
acc_lang = USER_LANG
|
||||
CONFIG_DATA["acc_loc"] = f"{acc_lang}|{acc_country}"
|
||||
|
||||
write_config(CONFIG_DATA)
|
||||
|
||||
if manual_entry:
|
||||
print("Wrote tokens to config.txt.\n")
|
||||
print("Wrote tokens to config.txt.\n") # and updates acc_country if necessary...
|
||||
else:
|
||||
print(f"Wrote tokens for {acc_name} to config.txt.\n")
|
||||
|
||||
@@ -808,6 +813,30 @@ def check_statink_key():
|
||||
return
|
||||
|
||||
|
||||
def set_language():
|
||||
'''Prompts the user to set their game language.'''
|
||||
|
||||
if USER_LANG == "":
|
||||
print("Default locale is en-US. Press Enter to accept, or enter your own (see readme for list).")
|
||||
language_code = input("")
|
||||
|
||||
if language_code == "":
|
||||
CONFIG_DATA["acc_loc"] = "en-US|US" # default
|
||||
write_config(CONFIG_DATA)
|
||||
return
|
||||
else:
|
||||
language_list = [
|
||||
"de-DE", "en-GB", "en-US", "es-ES", "es-MX", "fr-CA", "fr-FR",
|
||||
"it-IT", "ja-JP", "ko-KR", "nl-NL", "ru-RU", "zh-CN", "zh-TW"
|
||||
]
|
||||
while language_code not in language_list:
|
||||
print("Invalid language code. Please try entering it again:")
|
||||
language_code = input("")
|
||||
CONFIG_DATA["acc_loc"] = f"{language_code}|US" # default to US until set by ninty
|
||||
write_config(CONFIG_DATA)
|
||||
return
|
||||
|
||||
|
||||
def get_num_results(which):
|
||||
'''I/O for getting number of battles/jobs to upload.'''
|
||||
|
||||
@@ -1094,6 +1123,7 @@ def main():
|
||||
#######
|
||||
check_for_updates()
|
||||
check_statink_key()
|
||||
set_language()
|
||||
|
||||
# argparse setup
|
||||
################
|
||||
|
||||
Reference in New Issue
Block a user