TobeSteady

[ETC] 이전 기록물이 담긴 Notion을 Tistory로 옮기는 과정 #2 본문

ETC/ETC

[ETC] 이전 기록물이 담긴 Notion을 Tistory로 옮기는 과정 #2

NKUT 2023. 3. 22. 00:54

#1에 이어서 문제를 해결하기 위한 시도

 

해결시도2

날아가버린 해결시도2에 대한 내용.

 

[ETC] 이전 기록물이 담긴 Notion을 Tistory로 옮기는 과정 #1

게시물 제목 처럼 Notion안에 담기 기록물들을 Tistory로 손쉽게 옮기기 위한 노력. 성공할 수 있을 것인가?! 멀티캠퍼스 수업을 듣기 시작했을 때부터 "수업내용이나 프로젝트 회의록, 공부 내용"들

tobesteadyde.tistory.com

수정1 : C:\Users\yujeong\AppData\Local\Programs\Python\Python311\Lib\site.py

python2를 기반으로 한 참고자료와 달리 (python3의 기반한 파일)setencoding()함수가 없어 "encode"라는 키워들를 통해 유사 기능을 할 것으로 보이는 addpackage()함수의 코드를 수정함.

 

수정2 : C:\Users\yujeong\AppData\Local\Programs\Python\Python311\Lib\ntpath.py

 

레퍼런스에는 두가지 방법만 기재되어있었고, 코드 수정후 "notion-py를 install"해보았지만 "동일한 encoding 에러 발생"함.

알고보니 레퍼런스에 python3는 알아서 utf-8을 사용하기 때문에 패키지를 install할때 "pip" 명령으로 모듈을 설치하면 "UnicodeDecodeError"가 발생하지 않는다고 기재되어 있었다.

 

이제부터 헷갈리기 시작했지만, 

마지막으로 아래의 파일까지 수정해보았다. 

 

수정3 : C:\Users\yujeong\AppData\Local\Programs\Python\Python311\Lib\site-packages\pip\_internal\utils\encoding.py

 

역시나 실패...

 

해결 시도3

 

분명 처음 참고자료(링크)에서는  "윈도우의 python에서는 텍스트 파일의 디폴트 인코딩을 cp949로 디코딩하는 데, 원본 파일은 utf8이기에 인코딩이 맞지 않아 발생하는 오류"라고 기재되어 있었다.

반면, 두번째 시도의 참고자료(링크)에서는 " python3에서는 pip명령으로 모듈을 설치할때 utf-8을 사용하기 때문에 "UnicodeDecodeError"가 발생하지 않는다"라고 말했다. 

 

위의 내용들이 사실이라는 전제하에(구글링과 ChatGPT를 통해 확인해봄)

그럼 텍스트 파일을 통하지 않고, "pip install git+https://github.com/wsykala/notion-py.git"명령어를 통해 설치하면 되지 않을까? 막연히 시도했는데 실패했다.

 

 

해결 시도4

 

문제가 되었던, notion-py를 설치하기 위해  "github.com/wsykala/notion-py.git"을 들어가서 해당 패키지를 만든 사람의 포스팅을 확인하였다.

Quick start를 위해서는 그냥 "pip install notion"으로 되어있어 우선 설치하고, 기존 레파지토리의 main.py을 실행시켰다.

(config.py 파일은 수정한 상황)

C:\workspaces\N2T>python main.py

[2023_0322_003702]
[진행중] Notion 로그인 완료
Traceback (most recent call last):
  File "C:\workspaces\N2T\main.py", line 168, in <module>
    client = Notion2Tistory(cfg, sleep_time=5, selenium_debug=False)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\workspaces\N2T\main.py", line 34, in __init__
    self.pages = self.n_client.get_pages_readyToPost(table_url=cfg.NOTION.TABLE_PAGE_URL,
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\workspaces\N2T\clients\NotionClient.py", line 37, in get_pages_readyToPost
    cv = self.client.get_collection_view(table_url)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yujeong\AppData\Local\Programs\Python\Python311\Lib\site-packages\notion\client.py", line 216, in get_collection_view
    collection = self.get_block(
                 ^^^^^^^^^^^^^^^
  File "C:\Users\yujeong\AppData\Local\Programs\Python\Python311\Lib\site-packages\notion\client.py", line 169, in get_block
    block = self.get_record_data("block", block_id, force_refresh=force_refresh)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yujeong\AppData\Local\Programs\Python\Python311\Lib\site-packages\notion\client.py", line 162, in get_record_data
    return self._store.get(table, id, force_refresh=force_refresh)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yujeong\AppData\Local\Programs\Python\Python311\Lib\site-packages\notion\store.py", line 184, in get
    self.call_load_page_chunk(id)
  File "C:\Users\yujeong\AppData\Local\Programs\Python\Python311\Lib\site-packages\notion\store.py", line 286, in call_load_page_chunk
    recordmap = self._client.post("loadPageChunk", data).json()["recordMap"]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yujeong\AppData\Local\Programs\Python\Python311\Lib\site-packages\notion\client.py", line 260, in post
    raise HTTPError(
requests.exceptions.HTTPError: Invalid input.

[완료] 프로그램 종료.

역시나,

notion 패키지 파일에서 에러 발생...