88 lines
1.8 KiB
Python
Executable File
88 lines
1.8 KiB
Python
Executable File
#! /usr/bin/env python3
|
|
import argparse
|
|
import requests
|
|
from typing import List
|
|
|
|
BASE_URL = "http://127.0.0.1:8000/projects"
|
|
|
|
|
|
def make_slug_url(args: argparse.Namespace) -> str:
|
|
if BASE_URL:
|
|
url_components = [BASE_URL]
|
|
else:
|
|
url_components = [args.base_url]
|
|
|
|
for arg in [args.project, args.version]:
|
|
if arg != "":
|
|
url_components.append(arg)
|
|
|
|
return str.join("/", url_components)
|
|
|
|
|
|
def make_url_options(args: argparse.Namespace) -> str:
|
|
options: List[str] = []
|
|
|
|
ret = str.join("&", options)
|
|
if ret != "":
|
|
return "?" + ret
|
|
else:
|
|
return ""
|
|
|
|
|
|
def make_url(args: argparse.Namespace) -> str:
|
|
url = make_slug_url(args)
|
|
url += make_url_options(args)
|
|
return url
|
|
|
|
|
|
categories = [
|
|
# "default",
|
|
# "boot",
|
|
# "code",
|
|
# "overlays",
|
|
"assets",
|
|
"archives",
|
|
"audio",
|
|
"interface",
|
|
"misc",
|
|
"objects",
|
|
"scenes",
|
|
"text",
|
|
]
|
|
|
|
|
|
def main() -> None:
|
|
description = "Make categories."
|
|
epilog = ""
|
|
|
|
parser = argparse.ArgumentParser(
|
|
description=description,
|
|
epilog=epilog,
|
|
formatter_class=argparse.RawTextHelpFormatter,
|
|
)
|
|
# parser.add_argument("base_url", help="")
|
|
parser.add_argument("-p", "--project", help="", default="")
|
|
parser.add_argument("-v", "--version", help="", default="")
|
|
|
|
args = parser.parse_args()
|
|
url = make_url(args)
|
|
url += "/"
|
|
url += "?format=json"
|
|
print(url)
|
|
|
|
request_data = {}
|
|
for cat in categories:
|
|
request_data[cat] = cat.capitalize()
|
|
|
|
request_json = {"api_key": "2", "categories": request_data}
|
|
|
|
print(request_json)
|
|
|
|
with requests.post(url, json=request_json) as r:
|
|
print(r.status_code)
|
|
print(r.text)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|