app/liteyuki_flow/__main__.py

61 lines
2.2 KiB
Python

"""
Module docs
"""
import os
from github import Github
from argparse import ArgumentParser
from liteyuki_flow.const import PLUGIN_PREFIX, RESOURCE_PREFIX
from liteyuki_flow.typ import err, nil # type: ignore
if __name__ == "__main__":
parser = ArgumentParser()
parser.add_argument("--handle", action="store_true") # 处理issue
parser.add_argument("-p", "--parse", action="store_true") # 解析markdown文件
parser.add_argument("-i", "--input", type=str, help="Path to the markdown file.")
args = parser.parse_args()
if args.handle:
print("Starting the issue handler module...")
ISSUE_NUMBER = os.getenv("ISSUE_NUMBER")
REPOSITORY = os.getenv("REPOSITORY")
ACT_TYPE = os.getenv("ACT_TYPE") # opened, edited, closed, reopened
if ISSUE_NUMBER is None or REPOSITORY is None or ACT_TYPE is None:
raise ValueError("Issue number, repository and action type are required.")
g = Github(os.getenv("GITHUB_TOKEN"))
repo = g.get_repo(REPOSITORY)
issue = g.get_repo(REPOSITORY).get_issue(int(ISSUE_NUMBER))
# 审资源
if issue.title.strip().startswith(RESOURCE_PREFIX):
from resource_handler import handle_resource # type: ignore
handle_resource(github=g, issue=issue, repo=repo, act_type=ACT_TYPE)
# 审插件
elif issue.title.strip().startswith(PLUGIN_PREFIX):
from plugin_handler import handle_plugin # type: ignore
pass
else:
print("No handler found for the issue.")
elif args.parse:
print("Starting the markdown parser module...")
from .markdown_parser import MarkdownParser # type: ignore
if args.input is None:
raise ValueError("Input file is required.")
with open(args.input, "r", encoding="utf-8") as f:
content = f.read()
md_parser = MarkdownParser(content) # type: ignore
err = md_parser.parse_front_matters() # type: ignore
if err != nil:
print(f"Err: {err}")
for k, v in md_parser.front_matters.content.items():
print(f"{k}: {v}")
else:
print("No module specified.")