refactor: improve code readability and formatting
Unified string quotes and used consistent indentation to enhance the readability of the script. Refactored the creation of issue cover image for better clarity and maintainability. These changes optimize future code reviews and reduce the potential for errors.
This commit is contained in:
parent
f3207b7a7d
commit
e231c4d8c5
1 changed files with 43 additions and 30 deletions
49
new_issue.py
49
new_issue.py
|
@ -7,36 +7,48 @@ import datetime
|
||||||
import tempfile
|
import tempfile
|
||||||
import tomllib
|
import tomllib
|
||||||
|
|
||||||
|
|
||||||
def create_issue(issue_number):
|
def create_issue(issue_number):
|
||||||
subprocess.run(['hugo', 'new', f'weekly/issue-{issue_number}/_index.md'])
|
subprocess.run(["hugo", "new", f"weekly/issue-{issue_number}/_index.md"])
|
||||||
|
|
||||||
|
|
||||||
def create_issue_image(site_title, issue_number, period_start, period_end):
|
def create_issue_image(site_title, issue_number, period_start, period_end):
|
||||||
with open('assets/img/cover-template.svg') as f:
|
with open("assets/img/cover-template.svg") as f:
|
||||||
cover_template = f.read()
|
cover_template = f.read()
|
||||||
|
|
||||||
cover_template = cover_template.replace('__SITE__', site_title)
|
cover_template = cover_template.replace("__SITE__", site_title)
|
||||||
cover_template = cover_template.replace('__ISSUE__', issue_number)
|
cover_template = cover_template.replace("__ISSUE__", issue_number)
|
||||||
cover_template = cover_template.replace('__DATE__', f'{period_start} - {period_end}')
|
cover_template = cover_template.replace(
|
||||||
|
"__DATE__", f"{period_start} - {period_end}"
|
||||||
|
)
|
||||||
|
|
||||||
with tempfile.TemporaryDirectory() as tempdir:
|
with tempfile.TemporaryDirectory() as tempdir:
|
||||||
cover_path = pathlib.Path(tempdir) / 'cover.svg'
|
cover_path = pathlib.Path(tempdir) / "cover.svg"
|
||||||
with open(cover_path, 'w') as f:
|
with open(cover_path, "w") as f:
|
||||||
f.write(cover_template)
|
f.write(cover_template)
|
||||||
|
|
||||||
subprocess.run(['inkscape', str(cover_path), '-e', f'content/weekly/issue-{issue_number}/cover.png'])
|
subprocess.run(
|
||||||
|
[
|
||||||
|
"inkscape",
|
||||||
|
str(cover_path),
|
||||||
|
"-e",
|
||||||
|
f"content/weekly/issue-{issue_number}/cover.png",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_latest_issue():
|
def get_latest_issue():
|
||||||
issues = list(pathlib.Path('content/weekly').iterdir())
|
issues = list(pathlib.Path("content/weekly").iterdir())
|
||||||
latest_issue = max(issues, key=lambda x: int(x.name.split('-')[1]))
|
latest_issue = max(issues, key=lambda x: int(x.name.split("-")[1]))
|
||||||
return latest_issue.name.split('-')[1]
|
return latest_issue.name.split("-")[1]
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
with open('hugo.toml', "rb") as f:
|
if __name__ == "__main__":
|
||||||
|
with open("hugo.toml", "rb") as f:
|
||||||
hugo_config = tomllib.load(f)
|
hugo_config = tomllib.load(f)
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Create a new issue')
|
parser = argparse.ArgumentParser(description="Create a new issue")
|
||||||
parser.add_argument('--issue', type=int, help='Issue number')
|
parser.add_argument("--issue", type=int, help="Issue number")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.issue:
|
if args.issue:
|
||||||
|
@ -45,8 +57,9 @@ if __name__ == '__main__':
|
||||||
latest_issue = get_latest_issue()
|
latest_issue = get_latest_issue()
|
||||||
new_issue = int(latest_issue) + 1
|
new_issue = int(latest_issue) + 1
|
||||||
|
|
||||||
period_start = datetime.datetime.now().strftime('%Y-%m-%d')
|
period_start = datetime.datetime.now().strftime("%Y-%m-%d")
|
||||||
period_end = (datetime.datetime.now() + datetime.timedelta(days=7)).strftime('%Y-%m-%d')
|
period_end = (datetime.datetime.now() + datetime.timedelta(days=7)).strftime(
|
||||||
|
"%Y-%m-%d"
|
||||||
|
)
|
||||||
|
|
||||||
create_issue(new_issue)
|
create_issue(new_issue)
|
||||||
|
|
Loading…
Reference in a new issue