forked from JOJ/Joint-Teapot
		
	feat: create result issue
This commit is contained in:
		
							parent
							
								
									a686b5df5a
								
							
						
					
					
						commit
						6303d31b1b
					
				|  | @ -124,3 +124,7 @@ upload assignment grades to canvas from grade file (GRADE.txt by default), read | ||||||
| ## License | ## License | ||||||
| 
 | 
 | ||||||
| MIT | MIT | ||||||
|  | 
 | ||||||
|  | ## Compile | ||||||
|  | 
 | ||||||
|  | - case 0: 0 | ||||||
|  |  | ||||||
|  | @ -295,6 +295,25 @@ def joj3_failed_table( | ||||||
|     ) |     ) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @app.command( | ||||||
|  |     "joj3-create-result-issue", | ||||||
|  |     help="create result issue on gitea", | ||||||
|  | ) | ||||||
|  | def joj3_create_result_issue( | ||||||
|  |     env_path: str = Argument("", help="path to .env file"), | ||||||
|  |     scorefile_path: str = Argument( | ||||||
|  |         "", help="path to score json file generated by JOJ3" | ||||||
|  |     ), | ||||||
|  |     submitter_repo_name: str = Argument( | ||||||
|  |         "", | ||||||
|  |         help="repository's name of the submitter", | ||||||
|  |     ), | ||||||
|  | ) -> None: | ||||||
|  |     set_settings(Settings(_env_file=env_path)) | ||||||
|  |     title, comment = joj3.generate_title_and_comment(scorefile_path) | ||||||
|  |     tea.pot.gitea.create_issue(submitter_repo_name, title, comment, False) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| if __name__ == "__main__": | if __name__ == "__main__": | ||||||
|     try: |     try: | ||||||
|         app() |         app() | ||||||
|  |  | ||||||
|  | @ -1,9 +1,10 @@ | ||||||
| import bisect | import bisect | ||||||
| import csv | import csv | ||||||
|  | import enum | ||||||
| import json | import json | ||||||
| import os | import os | ||||||
| from datetime import datetime | from datetime import datetime | ||||||
| from typing import Any, Dict, List | from typing import Any, Dict, List, Tuple | ||||||
| 
 | 
 | ||||||
| from joint_teapot.utils.logger import logger | from joint_teapot.utils.logger import logger | ||||||
| 
 | 
 | ||||||
|  | @ -112,10 +113,10 @@ def update_failed_table_from_score_file( | ||||||
| ) -> None: | ) -> None: | ||||||
|     # get info from score file |     # get info from score file | ||||||
|     with open(score_file_path) as json_file: |     with open(score_file_path) as json_file: | ||||||
|         scorefile: List[Dict[str, Any]] = json.load(json_file) |         stages: List[Dict[str, Any]] = json.load(json_file) | ||||||
| 
 | 
 | ||||||
|     failed_name = "" |     failed_name = "" | ||||||
|     for stage in scorefile: |     for stage in stages: | ||||||
|         if stage["force_quit"] == True: |         if stage["force_quit"] == True: | ||||||
|             failed_name = stage["name"] |             failed_name = stage["name"] | ||||||
|             break |             break | ||||||
|  | @ -163,6 +164,20 @@ def generate_failed_table( | ||||||
|     write_failed_table_into_file(data, table_file_path) |     write_failed_table_into_file(data, table_file_path) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def generate_comment(score_file_path: str) -> str: | def generate_title_and_comment(score_file_path: str) -> Tuple[str, str]: | ||||||
|     # TODO |     with open(score_file_path) as json_file: | ||||||
|     return "" |         stages: List[Dict[str, Any]] = json.load(json_file) | ||||||
|  | 
 | ||||||
|  |     total_score = 0 | ||||||
|  |     comment = "" | ||||||
|  |     for stage in stages: | ||||||
|  |         comment += f"## {stage['name']}\n" | ||||||
|  |         for i, result in enumerate(stage["results"]): | ||||||
|  |             comment += f"### case {i}\n" | ||||||
|  |             comment += f"score: {result['score']}\n" | ||||||
|  |             comment += f"comment: {result['comment']}\n" | ||||||
|  |             total_score += result["score"] | ||||||
|  |         comment += "\n" | ||||||
|  |     now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") | ||||||
|  |     title = f"JOJ3 Result {now} - Total Score: {total_score}" | ||||||
|  |     return title, comment | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user