defmodule Dragon.Tools.Image.Walk do
@moduledoc """
walk a tree and convert images it finds
"""
# # origsuffix = files[file]['suffix']
# # ofile = f"{file}.{info['suffix']}"
# #src = os.path.join(info['dir'], ofile)
# #dst = os.path.join(info['dir'], file)
# #(maxw, maxh) = getsize(src)
#
# if maxw not in args.no_resolution:
# for suffix in types:
# new = f"{dst}.{suffix}"
# if not os.path.exists(new) or (suffix != origsuffix and args.force):
# print(f"{file}.{origsuffix} -> {suffix}")
# refit(src, new)
# link = f"{dst}-x{maxw}.{suffix}"
# if not os.path.exists(link):
# olink = f"{file}.{suffix}"
# print(f"{link} @-> {olink}")
# os.symlink(olink, link)
#
# sizes = dict()
# for res in resolutions:
# if res > maxw:
# print(f"{file} not upscaling to {res}")
# else:
# new = f"{dst}-x{res}"
#
# for suffix in types:
# nnew = f"{new}.{suffix}"
# if not os.path.exists(nnew) or args.force:
# print(f"{file} [{maxw}] -> -x{res}.{suffix}")
# refit(src, nnew, "-resize", res)
#
# (w, h) = getsize(f"{new}.{types[0]}")
# sizes[w] = h
#
# if maxw not in args.no_resolution:
# sizes[maxw] = maxh
#
# sizes = [{k: sizes[k]} for k in list(sorted(sizes.keys()))]
#
# update_img_spec(cfg, id=file, base=f"/{info['dir']}", sizes=sizes, types=types)
end
# #!/usr/bin/env python3
#
# TYPES = ["jpg", "webp", "png"]
# RESOLUTIONS = [200, 480, 1440, 1920]
# # TODO: don't link to anything bigger than this
# #MAXWIDTH = 2000
# SIZEREX = re.compile("-x[0-9]+(?=\.|-|$)")
# ARTCFG = "_data/common/media.yml"
#
# ################################################################################
# def main():
# if not os.path.exists(os.path.basename(sys.argv[0])):
# sys.exit("Must be run from root of project")
#
# cmd = argparse.ArgumentParser()
# cmd.add_argument('--force', '-f', action='store_true')
# cmd.add_argument('--config', '-c', action='store_true')
# cmd.add_argument('--types', '-t', action='store', default=TYPES)
# cmd.add_argument('--resolutions', '-r', action='store', default=RESOLUTIONS)
# cmd.add_argument('--no-resolution', '-xr', action='store', default=[])
# cmd.add_argument('--no-type', '-xt', action='store', default=[])
# cmd.add_argument('files', nargs='+')
# args = cmd.parse_args()
#
# resolutions = list(args.resolutions)
# if args.no_resolution:
# args.no_resolution = [int(res) for res in args.no_resolution.split(",")]
# for res in args.no_resolution:
# if res in resolutions:
# resolutions.remove(int(res))
#
# types = list(args.types)
# if args.no_type:
# args.no_type = args.no_type.split(",")
# for type in args.no_type:
# if type in types:
# types.remove(type)
#
# cfg = {}
# if args.config:
# # sanity check
# with open(ARTCFG) as infile:
# cfg = yaml.safe_load(infile)
# if not cfg:
# sys.exit("Cannot find config?")
#
# files = {}
# for f in args.files:
# dir = os.path.dirname(f)
# base = os.path.basename(f)
# split = base.split(".")
# if len(split) != 2:
# continue
# [file, suffix] = split
# if suffix not in types:
# continue
# file = SIZEREX.sub("", file)
# # preference for png
# current = files.get(file)
# if not current or current['suffix'] != "png":
# files[file] = {"suffix": suffix, "dir": dir}
#
# # base image first
# for file, info in files.items():
# origsuffix = files[file]['suffix']
# ofile = f"{file}.{info['suffix']}"
# src = os.path.join(info['dir'], ofile)
# dst = os.path.join(info['dir'], file)
# (maxw, maxh) = getsize(src)
# if maxw not in args.no_resolution:
# sys.stdout.flush()
# for suffix in types:
# new = f"{dst}.{suffix}"
# if not os.path.exists(new) or (suffix != origsuffix and args.force):
# print(f"{file}.{origsuffix} -> {suffix}")
# refit(src, new)
# link = f"{dst}-x{maxw}.{suffix}"
# if not os.path.exists(link):
# olink = f"{file}.{suffix}"
# print(f"{link} @-> {olink}")
# os.symlink(olink, link)
#
# sizes = dict()
# for res in resolutions:
# if res > maxw:
# print(f"{file} not upscaling to {res}")
# else:
# new = f"{dst}-x{res}"
#
# for suffix in types:
# nnew = f"{new}.{suffix}"
# if not os.path.exists(nnew) or args.force:
# print(f"{file} [{maxw}] -> -x{res}.{suffix}")
# refit(src, nnew, "-resize", res)
#
# (w, h) = getsize(f"{new}.{types[0]}")
# sizes[w] = h
#
# if maxw not in args.no_resolution:
# sizes[maxw] = maxh
#
# sizes = [{k: sizes[k]} for k in list(sorted(sizes.keys()))]
#
# update_img_spec(cfg, id=file, base=f"/{info['dir']}", sizes=sizes, types=types)
#
# if args.config:
# # shutil.copyfile(ARTCFG, f"{ARTCFG}.bak")
# with open(f"{ARTCFG}2.yml", "w") as outfile:
# outfile.write(yaml.dump(cfg, Dumper=NoAliasDumper))