From ec5d96784c4645c8b367ed8be290b312b281121d Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Thu, 4 Apr 2019 22:48:27 +0900 Subject: [PATCH] Add --baseurl option to switch eviden server --- eviden/__main__.py | 11 ++++++----- eviden/core.py | 34 ++++++++++++---------------------- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/eviden/__main__.py b/eviden/__main__.py index 3ef229e..966fa28 100644 --- a/eviden/__main__.py +++ b/eviden/__main__.py @@ -57,6 +57,7 @@ def main(): ) option_parser = argparse.ArgumentParser(parents=[command_parser]) + option_parser.add_argument("--baseurl", default="https://etrack.timedia.co.jp/EasyTracker/") option_parser.add_argument("option", nargs="*") args = option_parser.parse_args() @@ -67,19 +68,19 @@ def main(): if args.command in ["setup", "reset"]: core.setup() elif args.command == "list": - core.list_projects() + core.list_projects(args.baseurl) else: - core.list_issues() + core.list_issues(args.baseurl) elif args.command == "login": user_id = validator.login_validation() password = getpass("passwordを入力してください:") - core.login(user_id, password) + core.login(args.baseurl, user_id, password) elif args.command == "select": name = validator.select_project_validation() - core.select_project(name) + core.select_project(args.baseurl, name) elif args.command == "post": title, text = validator.post_issue_validation() - core.post_issue(title, text) + core.post_issue(args.baseurl, title, text) if __name__ == "__main__": diff --git a/eviden/core.py b/eviden/core.py index e0b2bbc..62fc66c 100644 --- a/eviden/core.py +++ b/eviden/core.py @@ -58,24 +58,20 @@ def setup(): write_json(data, STATUS_PATH) -def login(user_id, password): - URL = BASE_URL + "Login.aspx" - - html = get(URL) +def login(baseurl, user_id, password): + html = get(baseurl + "Login.aspx") data = generate_hidden_params(html, request="LOGIN") data["textBoxId"] = user_id data["textBoxPassword"] = password - authenticate(URL, data) + authenticate(baseurl, data) print(f"ログインしました ID: {user_id}") -def list_projects(): - URL = BASE_URL + "main/MyPage.aspx" - - html = get_with_session(URL) +def list_projects(baseurl): + html = get_with_session(baseurl + "main/MyPage.aspx") project_info = generate_project_info(html) @@ -83,10 +79,8 @@ def list_projects(): print(f"{name}@{group}") -def select_project(name): - url = BASE_URL + "main/MyPage.aspx" - - html = get_with_session(url) +def select_project(baseurl, name): + html = get_with_session(baseurl + "main/MyPage.aspx") board_id = find_board_id(html, name) status = read_json(STATUS_PATH) @@ -96,14 +90,12 @@ def select_project(name): list_issues(board_id=board_id) -def list_issues(board_id=None): +def list_issues(baseurl, board_id=None): if board_id is None: status = read_json(STATUS_PATH) board_id = status["paramators"]["board_id"] - URL = BASE_URL + f"board/IssueList.aspx?board_id={board_id}" - - html = get_with_session(URL) + html = get_with_session(baseurl + f"board/IssueList.aspx?board_id={board_id}") __board_id_validation(html) issues = generate_issues(html) @@ -112,7 +104,7 @@ def list_issues(board_id=None): print(f"No. {no}: {name}\nステータス: {status_}, 重要度: {priority}, タイプ: {type_}, アサイン: {asign}") -def post_issue(title, text, status="未着手", priority=1, category="デフォルト", +def post_issue(baseurl, title, text, status="未着手", priority=1, category="デフォルト", type_="タスク", readonly="", secret="on", assign_id="", date="", remainder_mail=""): """ argments: @@ -133,8 +125,7 @@ def post_issue(title, text, status="未着手", priority=1, category="デフォ status_ = read_json(STATUS_PATH) board_id = status_["paramators"]["board_id"] - PRE_URL = BASE_URL + f"Board/AddIssuePre.aspx?board_id={board_id}" - + PRE_URL = baseurl + f"Board/AddIssuePre.aspx?board_id={board_id}" pre_html = get_with_session(PRE_URL) __board_id_validation(pre_html) data = generate_hidden_params(pre_html) @@ -145,8 +136,6 @@ def post_issue(title, text, status="未着手", priority=1, category="デフォ html = post_with_session(PRE_URL, data=data) - POST_URL = BASE_URL + f"Board/AddIssue.aspx?board_id={board_id}" - data.update(generate_hidden_params(html)) post_data = [board_id, title, assign_id, text, date, remainder_mail] @@ -157,5 +146,6 @@ def post_issue(title, text, status="未着手", priority=1, category="デフォ for param in POST_FILE_PARAMS: files[param] = ("", "", "application/octet-stream") + POST_URL = baseurl + f"Board/AddIssue.aspx?board_id={board_id}" post_with_session(POST_URL, data=data, files=files) list_issues(board_id=board_id)