Skip to content

Commit

Permalink
Merge pull request #3 from matanki-saito/fix-dynasties
Browse files Browse the repository at this point in the history
マップ上に「朝」をつけるための修正
  • Loading branch information
matanki-saito authored Jun 8, 2019
2 parents 2548488 + 96181fb commit 161ac4a
Show file tree
Hide file tree
Showing 2 changed files with 474 additions and 13 deletions.
63 changes: 50 additions & 13 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@
import tempfile
import urllib.request
import zipfile
import re
from os.path import join
from pathlib import Path

from boto3.session import Session

from special_escape import generate_encoder, generate_printer

_ = join


Expand All @@ -38,14 +42,34 @@ def download_trans_zip_from_paratranz(project_id,
return out_file_path


# TODO: フォント側を調整する必要がある。
def filter_f(item):
if item.startswith("aoyagireisyo60-aoyagi") or \
item.startswith("aoyagireisyo60-appb") or \
item.startswith("tuikafont1"):
return False
else:
return True
def build_dynasties_csv_from_raw(in_dir_path,
out_dir_path):
"""
raw jsonからymlを組み立てる
:param in_dir_path: 入力パス
:param out_dir_path: 出力パス
:return:
"""

encoder = generate_encoder("ck2", "txt")
printer = generate_printer("ck2", "txt")

def subf(m):
t = m.group(1)
if re.search(r"[あ-んア-ン一-鿐]", t) is not None:
return "name = \"" + t + "✐" + "\""
else:
return "name = \"" + t + "\""

for f in Path(in_dir_path).glob("00_dynasties.txt"):
# TXTを読み込んでcsvに変換
with open(str(f), "rt", encoding='utf-8') as fr:
text = fr.read()
result = re.sub(r'name\s*=\s*"([^"]+)"', subf, text)

# ファイルに保存
encode = encoder(src_array=map(ord, result))
printer(src_array=encode, out_file_path=_(out_dir_path, f.name))


def assembly_app_mod_zip_file(resource_image_file_path,
Expand All @@ -66,28 +90,41 @@ def assembly_app_mod_zip_file(resource_image_file_path,
# common
salvage_files_from_paratranz_trans_zip(out_dir_path=_(temp_dir_path, "history"),
folder_list=["history"],
paratranz_zip_path=resource_paratranz_trans_zip_file_path)
paratranz_zip_path=resource_paratranz_trans_zip_file_path,
base_folder_name="special")

# history
salvage_files_from_paratranz_trans_zip(out_dir_path=_(temp_dir_path, "common"),
folder_list=["common"],
paratranz_zip_path=resource_paratranz_trans_zip_file_path)
paratranz_zip_path=resource_paratranz_trans_zip_file_path,
base_folder_name="special")

with tempfile.TemporaryDirectory() as temp_dir_path2:
# common/
salvage_files_from_paratranz_trans_zip(out_dir_path=_(temp_dir_path2, "common"),
folder_list=["common"],
paratranz_zip_path=resource_paratranz_trans_zip_file_path,
base_folder_name="utf8")

build_dynasties_csv_from_raw(in_dir_path=_(temp_dir_path2, "common", "dynasties"),
out_dir_path=_(temp_dir_path, "common", "dynasties"))

# zip化する
return shutil.make_archive(out_file_path, 'zip', root_dir=temp_dir_path)


def salvage_files_from_paratranz_trans_zip(out_dir_path,
paratranz_zip_path,
folder_list=[]):
folder_list,
base_folder_name):
with zipfile.ZipFile(paratranz_zip_path) as paratranz_zip:
special_files = filter(lambda name: name.startswith("special/"), paratranz_zip.namelist())
special_files = filter(lambda name: name.startswith(base_folder_name + "/"), paratranz_zip.namelist())

with tempfile.TemporaryDirectory() as temp_dir_path:
paratranz_zip.extractall(path=temp_dir_path, members=special_files)

for folder in folder_list:
shutil.copytree(_(temp_dir_path, "special", folder), out_dir_path)
shutil.copytree(_(temp_dir_path, base_folder_name, folder), out_dir_path)


def generate_dot_mod_file(mod_title_name,
Expand Down
Loading

0 comments on commit 161ac4a

Please sign in to comment.