저번 시간까지 완성한 자동 포스팅 프로그램은 한 가지 문제점이 있었다.
바로 깃 허브의 유저명 토큰 repo와 티스토리의 유저명 토큰 등이 코드에 내장되어 있다는 것이다.
물론 이 프로그램은 개인적으로 활용하기 위해 만든 것이므로 타 사용자의 정보를 저장할 필요는 없다.
하지만, 세상일 혹시 모르는데다 나의 아이디가 바뀌거나 할 수도 있기 때문에 외부 파일에 정보를 저장해놓고 이를 불러오는 시스템을 만들고자 하였다.
이를 위해 추가한 내용은 다음과 같다.
# 레이블과 입력 필드 생성
tk.Label(root, text="GitHub 사용자 이름:").pack()
self.owner_entry = tk.Entry(root)
self.owner_entry.pack()
tk.Label(root, text="GitHub 저장소 이름:").pack()
self.repo_entry = tk.Entry(root)
self.repo_entry.pack()
tk.Label(root, text="GitHub 토큰:").pack()
self.token_entry = tk.Entry(root)
self.token_entry.pack()
tk.Label(root, text="티스토리 액세스 토큰:").pack()
self.access_token_entry = tk.Entry(root)
self.access_token_entry.pack()
tk.Label(root, text="티스토리 블로그 이름:").pack()
self.blog_name_entry = tk.Entry(root)
self.blog_name_entry.pack()
tk.Label(root, text="카테고리 ID (선택사항):").pack()
self.category_id_entry = tk.Entry(root)
self.category_id_entry.pack()
이렇게 해서 입력받는 창을 만들어 주었다.
# 저장 버튼 생성
save_button = tk.Button(root, text="저장", command=self.save_info)
save_button.pack()
def save_info(self):
# 입력된 정보 가져오기
owner = self.owner_entry.get()
repo = self.repo_entry.get()
token = self.token_entry.get()
access_token = self.access_token_entry.get()
blog_name = self.blog_name_entry.get()
category_id = self.category_id_entry.get()
# 정보를 딕셔너리로 저장
info = {
"owner": owner,
"repo": repo,
"token": token,
"access_token": access_token,
"blog_name": blog_name,
"category_id": category_id,
}
# JSON 파일로 저장
with open("personal_info.json", "w") as f:
json.dump(info, f)
print("개인 정보가 저장되었습니다.")
저장 버튼 객체 또한 추가해주었고 이를 통해 실현되는 함수는 정보들을 외부에 딕셔너리 형태의 json파일로 저장한다.
def load_and_apply_json(self):
if os.path.exists("personal_info.json"):
with open("personal_info.json", "r") as f:
info = json.load(f)
self.owner = info.get("owner", "")
self.repo = info.get("repo", "")
self.token = info.get("token", "")
self.access_token = info.get("access_token", "")
self.blog_name = info.get("blog_name", "")
self.category_id = info.get("category_id", "")
그리고 위의 호출 함수를 통해 프로그램이 시작할 때 그리고 실행 될 때마다 저장된 정보를 가져와 사용하도록 하였다.
그것이 이 결과물이다.
다음에는 이를 .exe 확장자 파일로 변환하여 배포 가능하도록 해볼 것이다.
'개발 기록 > 자동 포스팅 프로그램' 카테고리의 다른 글
프로그램 개선 사항 (0) | 2024.02.18 |
---|---|
코드 블록 개선 (0) | 2024.02.17 |
GUI 설정 성공 (0) | 2024.01.18 |
자연스러운 취소 기능 추가 (0) | 2024.01.11 |
인터페이스 설정 (0) | 2023.12.26 |