본문 바로가기

개발 기록/자동 포스팅 프로그램

정보 입력 UI 형성

저번 시간까지 완성한 자동 포스팅 프로그램은 한 가지 문제점이 있었다.

 

바로 깃 허브의 유저명 토큰 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