#!python
# Made By Nima Fanniasl, smartnima.com - July 16 2022 :)
import os
import argparse
import requests
import pwd

# message handling
# levels ( Error, Warning, Info, Text )
# note: levels and text with string types
def message(level, text):
    print(f"{level}:\n{text}")


try:
    import araste
except:
    message("Error", "Araste is not installed")
    exit(1)


def Main():
    parser = argparse.ArgumentParser(description="Get Fonts For Araste")
    parser.add_argument("Font_name", type=str, help="Font Name, Like: aipara")
    args = parser.parse_args()
    font_name = args.Font_name
    font_dir = get_font_dir()
    download_file_from_github(font_name, font_dir)


def get_font_dir():
    return araste.__file__.replace("__init__.py", "") + "fonts"


def download_file_from_github(font_name, font_dir):
    if f"{font_name}.flf" in os.listdir(font_dir):
        print(f"{font_name} already exists.")
        exit(0)
    else:
        print(f"Downloading Font: {font_name}")
        url = f"https://raw.githubusercontent.com/ekm507/araste-fonts/main/Fonts/{font_name}.flf"
        r = requests.get(url)
        if r.status_code != 404:
            with open(f"{font_dir}/{font_name}.flf", "wb") as f:
                f.write(r.content)
            print(f"{font_name} Font Downloaded :)")
        else:
            print(f"{font_name} Font Not Found :(")
            exit(1)


if __name__ == "__main__":
    print(get_font_dir())
    Main()
