Compare commits

...

2 commits

View file

@ -111,7 +111,7 @@ def get_orig_avatar(
return result.content
def get_avatar(url: str, secrets: dict[str, str]) -> str | None:
def get_avatar(url: str, secrets: dict[str, str]) -> Path | None:
basename = hashlib.sha256(url.encode("utf-8")).hexdigest()
file_path = cache_dir() / f"{basename}.svg"
if not file_path.exists():
@ -129,7 +129,7 @@ def get_avatar(url: str, secrets: dict[str, str]) -> str | None:
with open(file_path, "w") as svgfile:
svgfile.write(svg_text)
return str(file_path.relative_to(root_dir()))
return file_path.relative_to(root_dir())
def get_country_name(
@ -237,12 +237,29 @@ cldr_root = ET.parse(
if args.address_file.suffix == ".csv":
csv_filename = args.address_file
elif args.address_file.suffix == ".ods":
# https://help.libreoffice.org/latest/en-US/text/shared/guide/csv_params.html
export_options = "csv:Text - txt - csv (StarCalc):" + ",".join( # Magic CSV export string
[
str(ord(",")), # Field Separator
str(ord('"')), # Text Delimiter
"76", # Character Set - UTF-8 => 76
"", # starting line; ignored in export
"", # cell format codes; ignored in export
"1033", # Language Identifier - en-US => 1033
"", # Quoted field as text; default False
"", # Detect special numbers; default True
"", # Save cell contents as shown; default True
"", # Export cell formulas; default false
"", # Remove spaces; ignored in export
"-1", # Export sheets - all sheets => -1
]
)
result = subprocess.run(
[
"libreoffice",
"--headless",
"--convert-to",
"csv:Text - txt - csv (StarCalc):44,34,76,1,,0,false,true,true,false,false,-1",
export_options,
"--outdir",
str(cache_dir()),
args.address_file,
@ -265,7 +282,7 @@ mid = secrets.get("mailer_id")
class Card(TypedDict):
address: str
avatar: str | None
avatar: Path | None
row: dict[str, str]
imb: str