Skip to content
This repository was archived by the owner on Oct 3, 2022. It is now read-only.

Commit f22963f

Browse files
committed
autodetect region
1 parent d4df4ff commit f22963f

10 files changed

+57
-40
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
data/config.json
22
data/skin_data.json
33
valorant-skin-cli.bat
4+
skin_loader_nocheck.py
5+
build_nocheck.bat
46

57
# Byte-compiled / optimized / DLL files
68
__pycache__/

src/cli/completer_generator.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from ..flair_loader.skin_loader import Loader
1+
from ..flair_loader.skin_loader_withcheck import Loader
22

33

44
class Completer:

src/flair_loader/skin_loader.py src/flair_loader/skin_loader_withcheck.py

+2-6
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
from ..utility.filepath import Filepath
99
debug = Logger.debug
1010

11-
1211
class Loader:
1312

1413
@staticmethod
@@ -166,9 +165,7 @@ def generate_skin_data(client):
166165
if level is not None:
167166
debug(
168167
f"{skin['displayName']}/LEVEL: beginning processing of {level['displayName']} ({level['uuid']}) - {level}")
169-
170-
level_already_exists = skin_previously_owned and level[
171-
"uuid"] in existing_skin_data[weapon_uuid]["skins"][skin_uuid]["levels"]
168+
level_already_exists = skin_previously_owned and level["uuid"] in existing_skin_data[weapon_uuid]["skins"][skin_uuid]["levels"]
172169

173170
def process_skin_level():
174171
debug(
@@ -200,8 +197,7 @@ def process_skin_level():
200197
skin, chroma["displayName"], weapon["displayName"])
201198
debug(
202199
f"{skin['displayName']}/CHROMA: beginning processing of {sanitized_chroma_name} ({chroma['uuid']}) - {chroma}")
203-
chroma_already_exists = skin_previously_owned and chroma[
204-
"uuid"] in existing_skin_data[weapon_uuid]["skins"][skin_uuid]["chromas"]
200+
chroma_already_exists = skin_previously_owned and chroma["uuid"] in existing_skin_data[weapon_uuid]["skins"][skin_uuid]["chromas"]
205201

206202
def process_chroma():
207203
debug(

src/flair_management/skin_manager/randomizer.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from InquirerPy.utils import color_print
2-
from ...flair_loader.skin_loader import Loader
2+
from ...flair_loader.skin_loader_withcheck import Loader
33
import random
44

55
class Randomize:

src/flair_management/skin_manager/randomizer_editor.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from InquirerPy import prompt, inquirer
22
from InquirerPy.separator import Separator
33

4-
from ...flair_loader.skin_loader import Loader
4+
from ...flair_loader.skin_loader_withcheck import Loader
55

66

77
class Editor:

src/flair_management/skin_manager/skin_manager.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
from ...content.skin_content import Skin_Content
55
from ...utility.filepath import Filepath
6-
#from .skin_loader import Loader
6+
#from .skin_loader_withcheck import Loader
77
from .randomizer import Randomize
88

99
class Skin_Manager:

src/startup.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
import os, threading, ctypes
1+
import os, threading, ctypes, time
22
from valclient.client import Client
33
from InquirerPy.utils import color_print
44

55
from .utility.config_manager import Config
66
from .utility.onboarding import Onboarder
7-
from .flair_loader.skin_loader import Loader
7+
from .flair_loader.skin_loader_withcheck import Loader
88
from .asynchronous.async_manager import Async_Manager
99
from .cli.command_prompt import Prompt
10+
from .cli.commands.reload import Reload
1011
from .utility.logging import Logger
1112
from .utility.filepath import Filepath
1213
from .utility.version_checker import Checker
@@ -23,6 +24,12 @@ def run():
2324
Logger.create_logger()
2425
Config.check_config()
2526
config = Config.fetch_config()
27+
28+
if not config["meta"]["onboarding_completed"]:
29+
Onboarder()
30+
# reset the client if region changed during onboarding
31+
Reload()
32+
2633
Checker.check_version(config)
2734

2835
ctypes.windll.kernel32.SetConsoleTitleW(f"valorant-skin-cli {config['version']}")
@@ -37,13 +44,6 @@ def run():
3744
input("press enter to exit...")
3845
os._exit(1)
3946

40-
if not config["meta"]["onboarding_completed"]:
41-
Onboarder(client)
42-
# reset the client if region changed during onboarding
43-
config = Config.fetch_config()
44-
client = Client(region=region)
45-
client.activate()
46-
4747
# load skin data
4848
Loader.generate_skin_data(client)
4949

src/utility/config_manager.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
from valclient import Client
55

66
default_config = {
7-
"version": "v1.0.6",
8-
"region": ["na",Client.fetch_regions()],
7+
"version": "v1.0.7",
8+
"region": ["",Client.fetch_regions()],
99
"async_refresh_interval": 5,
1010
"skin_manager": {
1111
"randomize_after_each_game": True
1212
},
1313
"meta": {
14-
"onboarding_completed": False
14+
"onboarding_completed": False,
15+
"surpress_update_notifications": False,
1516
}
1617
}
1718

src/utility/onboarding.py

+30-13
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
from InquirerPy.utils import color_print
2+
from valclient.client import Client
3+
import time
24

35
from .config_manager import Config as app_config
46

5-
from ..cli.commands.config import Config_Editor
6-
from ..flair_loader.skin_loader import Loader
7+
from ..cli.commands.reload import Reload
8+
from ..flair_loader.skin_loader_withcheck import Loader
79
from ..flair_management.skin_manager.randomizer_editor import Editor
810

911

1012
class Onboarder:
1113

12-
def __init__(self, client):
13-
self.client = client
14+
def __init__(self):
1415
self.config = app_config.fetch_config()
16+
self.client = Client(region="na" if self.config['region'][0] == "" else self.config['region'][0])
17+
self.client.activate()
1518

1619
self.procedure = [
1720
{
18-
"text": "set region:",
19-
"method": Config_Editor.config_set,
20-
"args": ("region",self.config["region"]),
21-
"callback": self.update_region
21+
"text": "autodetecting region",
22+
"method": self.autodetect_region,
23+
"args": None,
2224
},
2325
{
2426
"text": "generating fresh skin data file...",
@@ -28,12 +30,12 @@ def __init__(self, client):
2830
{
2931
"text": "loading your skins...",
3032
"method": Loader.generate_skin_data,
31-
"args": (self.client, ),
33+
"args": (self.client,),
3234
},
3335
{
3436
"text": "set your skin preferences:",
3537
"method": Editor.select_weapon_type,
36-
"args": (None),
38+
"args": None,
3739
}
3840
]
3941
self.run()
@@ -56,6 +58,21 @@ def run(self):
5658
app_config.modify_config(self.config)
5759
color_print([("Lime bold", "onboarding completed!")])
5860

59-
def update_region(self, region):
60-
self.config["region"] = region
61-
app_config.modify_config(self.config)
61+
62+
def autodetect_region(self):
63+
if self.config["region"][0] == "":
64+
client = Client(region="na")
65+
client.activate()
66+
sessions = client.riotclient_session_fetch_sessions()
67+
for _,session in sessions.items():
68+
if session["productId"] == "valorant":
69+
launch_args = session["launchConfiguration"]["arguments"]
70+
for arg in launch_args:
71+
if "-ares-deployment" in arg:
72+
region = arg.replace("-ares-deployment=","")
73+
self.config["region"][0] = region
74+
app_config.modify_config(self.config)
75+
color_print([("LimeGreen",f"autodetected region: {self.config['region'][0]}")])
76+
Reload()
77+
else:
78+
color_print([("LimeGreen",f"autodetected region: {self.config['region'][0]}")])

src/utility/version_checker.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
class Checker:
55
@staticmethod
66
def check_version(config):
7-
current_version = config["version"]
8-
data = requests.get("https://api.github.com/repos/colinhartigan/valorant-skin-cli/releases/latest")
9-
latest = data.json()["tag_name"]
10-
if latest != current_version:
11-
color_print([("Yellow bold",f"an update is available ({current_version} -> {latest})! download it at "),("Cyan underline",f"https://github.com/colinhartigan/valorant-skin-cli/releases/tag/{latest}")])
7+
if not config["meta"]["surpress_update_notifications"]:
8+
current_version = config["version"]
9+
data = requests.get("https://api.github.com/repos/colinhartigan/valorant-skin-cli/releases/latest")
10+
latest = data.json()["tag_name"]
11+
if latest != current_version:
12+
color_print([("Yellow bold",f"an update is available ({current_version} -> {latest})! download it at "),("Cyan underline",f"https://github.com/colinhartigan/valorant-skin-cli/releases/tag/{latest}")])

0 commit comments

Comments
 (0)