Skip to content

Commit 4053daf

Browse files
committed
fixed issues with tesseract loading
1 parent ccdf9b4 commit 4053daf

16 files changed

+198
-64
lines changed

data/translations/eng.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,9 @@
6464
"new-skill-correction-update": "New automatic skill corrections were submitted (You: {}, New: {}), do you download them?",
6565
"wiki-button": "Open MHR Set Searcher",
6666
"wiki-clipboard": "Copy URL",
67-
"wiki-attempt": "Attempting to open the website..."
67+
"wiki-attempt": "Attempting to open the website...",
68+
"tess-wait-5-retry": "Waiting 5 seconds before trying to download the language pack again...",
69+
"tess-url-error": "A URL error occured, this might be a DNS issue... retrying",
70+
"tess-cannot-download": "Unable to download Tesseract language pack.",
71+
"tess-not-found": "Tesseract was not found. Please install it, and if it is installed, pass it as a command line option at least once. If you have done both and it still isn't found, please open an issue on Github."
6872
}

data/translations/fra.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,9 @@
6464
"new-skill-correction-update": "Des nouvelles corrections automatiques ont été soumises, (Locale: {}, Nouvelle: {}), voulez-vous les télécharger?",
6565
"wiki-button": "Visiter le MHR Set Searcher",
6666
"wiki-clipboard": "Copier l'URL",
67-
"wiki-attempt": "Tentative d'ouverture du site web..."
67+
"wiki-attempt": "Tentative d'ouverture du site web...",
68+
"tess-wait-5-retry":"Pause de 5 secondes avant de ré-essayer le téléchargement du language pack...",
69+
"tess-url-error":"Une erreur d'URL s'est produite, potentiellement causé par une erreur DNS...",
70+
"tess-cannot-download":"Impossible de télécharger le language pack Tesseract.",
71+
"tess-not-found": "Tesseract n'a pas été trouv. Veuillez l'installer, s'il est installé, passez le à travers le command line au moins une fois. Si cette erreur continue d'apparaître, veuillez créer une issue sur Github.."
6872
}

data/versions.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"app": "1.6.0",
2+
"app": "1.6.1",
33
"skills": "3.1.1",
44
"languages": {
5-
"eng": "1.1",
5+
"eng": "1.2",
66
"jpn": 0,
7-
"fra": "1.1",
7+
"fra": "1.2",
88
"ita": 0,
99
"deu": 0,
1010
"spa": 0,

scripts/build_skill_files.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ def _printem(x):
9191
os.path.join(sp, "skill_mappings.en.json"), "w", encoding="utf-8"
9292
) as skill_map_fp:
9393
json.dump(skills_reverse, skill_map_fp, ensure_ascii=False)
94+
9495
with open(
9596
os.path.join(sp, "skill_mappings.alt.json"), "w", encoding="utf-8"
9697
) as skill_map_fp:

scripts/check_missing_skills.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22

33
all_skills = set()
4-
with open(os.path.join("data", "skill_list.txt")) as slf:
4+
with open(os.path.join("data", "skill_list.txt"), encoding="utf-8") as slf:
55
for line in slf.readlines():
66
skill_name = line.strip()
77
all_skills.add(skill_name)

scripts/compare_charms.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
import os
22
import sys
33
import json
4-
PACKAGE_PARENT = '..'
5-
SCRIPT_DIR = os.path.dirname(os.path.realpath(
6-
os.path.join(os.getcwd(), os.path.expanduser(__file__))))
4+
5+
PACKAGE_PARENT = ".."
6+
SCRIPT_DIR = os.path.dirname(
7+
os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__)))
8+
)
79
sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT)))
810
from src.Charm import Charm
911

1012
f1 = "charms tesseract.json"
1113
f2 = "charms.json"
1214

13-
with open(f1) as f:
15+
with open(f1, encoding="utf-8") as f:
1416
c1 = set(map(Charm.from_dict, json.load(f)))
1517

16-
with open(f2) as f:
18+
with open(f2, encoding="utf-8") as f:
1719
c2 = set(map(Charm.from_dict, json.load(f)))
1820

1921
c1 = set(c1)
@@ -23,13 +25,14 @@
2325

2426
dif = c1.symmetric_difference(c2)
2527

26-
print("Diffs", len(dif))
28+
print("Diffs", len(dif))
2729

2830
if len(dif) == 0:
2931
exit()
3032
a = b = 0
31-
with open("missing_charms.json", "w", encoding="utf-8") as missing,\
32-
open("made_up_charms.json", "w", encoding="utf-8") as made_up:
33+
with open("missing_charms.json", "w", encoding="utf-8") as missing, open(
34+
"made_up_charms.json", "w", encoding="utf-8"
35+
) as made_up:
3336
for i in dif:
3437
if i not in c1:
3538
a += 1

scripts/update_ver.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
print("Writing", new_version, "to file")
1616

17-
with open(os.path.join("data", "versions.json"), "r") as f:
17+
with open(os.path.join("data", "versions.json"), "r", encoding="utf-8") as f:
1818
versions = json.load(f)
1919
versions["app"] = new_version
20-
with open(os.path.join("data", "versions.json"), "w") as f:
20+
with open(os.path.join("data", "versions.json"), "w", encoding="utf-8") as f:
2121
json.dump(versions, f, indent=4)

src/__main__.py

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717
from .ui.MainWindow import MainWindow
1818
from .translator import Translator
1919
from .resources import (
20+
default_lang,
2021
get_language_code,
2122
get_resource_path,
2223
get_app_language,
2324
save_app_language,
2425
get_game_language,
2526
save_game_language,
27+
save_tesseract_location,
2628
)
2729
from .updater.updater_utils import (
2830
ask_main_update,
@@ -36,7 +38,7 @@
3638
import json
3739

3840
logging.basicConfig(
39-
filename="app.log", filemode="w", format="%(name)s - %(levelname)s - %(message)s"
41+
filename="app.log", filemode="w", format="%(name)s - %(levelname)s - %(message)s",level='INFO', force=True
4042
)
4143

4244
logger = logging.getLogger(__name__)
@@ -45,7 +47,15 @@
4547
def handle_exception(exception, value, traceback):
4648
logger.error(f"An error occured {exception}, {value}, {str(traceback)}")
4749
logger.exception(f"An error occured")
48-
print("An error occured", exception)
50+
print("An error occured", exception, str(traceback))
51+
52+
53+
def reset_config():
54+
config_path = get_resource_path("CONFIG")
55+
if os.path.exists(config_path):
56+
os.remove(config_path)
57+
58+
init_config(get_language_code(default_lang()), get_language_code(default_lang()))
4959

5060

5161
def init_config(app_language_code, skill_language_code):
@@ -69,21 +79,30 @@ def init_config(app_language_code, skill_language_code):
6979
)
7080

7181

82+
def read_default_args(args):
83+
if args.tess_dir is not None:
84+
save_tesseract_location(args.tess_dir)
85+
86+
if args.app_language is not None:
87+
app_language_code = get_language_code(args.app_language)
88+
save_app_language(app_language_code)
89+
90+
if args.language is not None:
91+
skill_language_code = get_language_code(args.language)
92+
save_game_language(skill_language_code)
93+
94+
7295
def main(args):
7396
if args.license:
7497
print_licenses()
7598
sys.exit(0)
7699

77-
app_language_code = get_language_code(args.app_language)
78-
skill_language_code = get_language_code(args.language)
79-
80-
init_config(app_language_code, skill_language_code)
81100
if args.reset_config:
82-
save_app_language(skill_language_code)
83-
save_game_language(skill_language_code)
101+
reset_config()
84102

85103
app_language_code = get_app_language()
86104
skill_language_code = get_game_language()
105+
init_config(app_language_code, skill_language_code)
87106

88107
if args.console:
89108
run_in_console(args)
@@ -92,7 +111,7 @@ def main(args):
92111
version_checker = VersionChecker()
93112

94113
language_versions = version_checker.get_language_versions()
95-
114+
96115
for language_version in language_versions:
97116
lang, code, local, remote = language_version
98117
if local < remote:
@@ -104,7 +123,10 @@ def main(args):
104123
pass
105124

106125
main_window, translator = create_main_window(
107-
args, skill_language_code, list(map(lambda x: x[0], language_versions))
126+
args,
127+
skill_language_code,
128+
app_language_code,
129+
list(map(lambda x: x[0], language_versions)),
108130
)
109131

110132
new_app_update = ask_main_update(version_checker, main_window, translator)
@@ -117,8 +139,7 @@ def main(args):
117139
main_window.mainloop()
118140

119141

120-
def create_main_window(args, skill_language_code, app_langs):
121-
app_language_code = get_language_code(args.app_language)
142+
def create_main_window(args, skill_language_code, app_language_code, app_langs):
122143
translator = Translator(app_language_code)
123144
new_window = MainWindow(translator, args, skill_language_code, app_langs)
124145
new_window.report_callback_exception = handle_exception

src/arg_builder.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ def build_args():
3535
help="Changes the Input directory for videos",
3636
default="inputs",
3737
)
38+
3839
parser.add_argument(
3940
"-f",
4041
"--frames",
@@ -44,6 +45,15 @@ def build_args():
4445
default="frames",
4546
)
4647

48+
parser.add_argument(
49+
"-t",
50+
"--tesseract",
51+
dest="tess_dir",
52+
required=False,
53+
help="When you want to pass a custom tesseract location. It is saved to the config",
54+
default=None,
55+
)
56+
4757
parser.add_argument(
4858
"-c",
4959
"--charm-json",
@@ -66,17 +76,17 @@ def build_args():
6676
"--language",
6777
dest="language",
6878
required=False,
69-
help="Sets the language of the switch recording. (only works for first launch)",
70-
default="English",
79+
help="Sets the language of the switch recording. It is saved to the config",
80+
default=None,
7181
)
7282

7383
parser.add_argument(
7484
"-a",
7585
"--app-language",
7686
dest="app_language",
7787
required=False,
78-
help="Sets the language of the app. (only works for first launch)",
79-
default="English",
88+
help="Sets the language of the app. It is saved to the config",
89+
default=None,
8090
)
8191

8292
parser.add_argument(

src/charm_extraction.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ def keep_existing_and_update(x):
254254
if charm.has_skills():
255255
charms.append(charm)
256256
else:
257-
logger.warn(_("logger-skill-less").format(frame_loc))
257+
logger.warning(_("logger-skill-less").format(frame_loc))
258258
except Exception as e:
259259
logger.error(_("logger-charm-error").format(frame_loc, e))
260260
logger.exception("Traceback")
@@ -286,7 +286,7 @@ def save_duplicates(charms, mode="w"):
286286
charm_dupes[charm] = []
287287
charm_dupes[charm].append(frame_loc)
288288

289-
with open(dupe_file_name, mode) as dupe_file:
289+
with open(dupe_file_name, mode, encoding="utf-8") as dupe_file:
290290
for charm in filter(lambda x: len(charm_dupes[x]) > 1, charm_dupes):
291291
locations = charm_dupes[charm]
292292
dupe_file.write(f"{charm.to_dict()}\n")

src/resources.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,11 @@ def get_english_skill_mapping_url(language="eng"):
147147
url = f"https://raw.githubusercontent.com/chpoit/utsushis-charm/master/data/skills/skill_mappings.en.json"
148148
return url
149149

150+
def get_wiki_url(skill_language_code):
151+
if skill_language_code == "jpn":
152+
return "https://mhrise.wiki-db.com/sim"
153+
return "https://mhrise.wiki-db.com/sim/?hl=en"
154+
150155

151156
def get_english_skill_mappping_location():
152157
return os.path.join(get_resource_path("LOCAL_SKILLS"), "skill_mappings.en.json")
@@ -214,12 +219,27 @@ def save_game_language(app_language_code):
214219
_write_config(config)
215220

216221

222+
def get_tesseract_location():
223+
config = _load_config()
224+
if "tesseract-directory" in config:
225+
return config["tesseract-directory"]
226+
return None
227+
228+
229+
def save_tesseract_location(location):
230+
config = _load_config()
231+
config["tesseract-directory"] = location
232+
_write_config(config)
233+
234+
217235
def reverse(dict_):
218236
reversed = {}
219237
for key in dict_:
220238
reversed[dict_[key]] = key
221239
return reversed
222240

241+
def default_lang():
242+
return "English"
223243

224244
_local_root = os.getenv("LOCALAPPDATA") or HOME if WINDOWS else HOME
225245
_local_dir_name = "utsushis-charm"

0 commit comments

Comments
 (0)