Skip to content

Commit 45b786e

Browse files
authored
Merge pull request #40 from ryokat3/id-38
#38 Fixed convert global to local
2 parents 44bef91 + 89ad163 commit 45b786e

File tree

2 files changed

+18
-13
lines changed

2 files changed

+18
-13
lines changed

qiita_sync/qiita_sync.py

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -409,12 +409,17 @@ def qiita_create_caller(auth_token: str):
409409

410410

411411
def qiita_get_item_page(caller: RESTAPI_CALLER_TYPE, page: int, per_page: int):
412-
return restapi_json_response(caller(f"{QIITA_API_ENDPOINT}/authenticated_user/items?page={page}&per_page={per_page}", "GET", None))
412+
return restapi_json_response(
413+
caller(f"{QIITA_API_ENDPOINT}/authenticated_user/items?page={page}&per_page={per_page}", "GET", None))
413414

414415

415416
def qiita_get_item_list(caller: RESTAPI_CALLER_TYPE, per_page: int = 10):
416-
return reduce(lambda a, b: a + b, filter(None, takewhile(lambda resp: resp is not None and len(resp) != 0,
417-
map(lambda page: qiita_get_item_page(caller, page, per_page), count(1)))), [])
417+
return reduce(
418+
lambda a, b: a + b,
419+
filter(
420+
None,
421+
takewhile(lambda resp: resp is not None and len(resp) != 0,
422+
map(lambda page: qiita_get_item_page(caller, page, per_page), count(1)))), [])
418423

419424

420425
def qiita_get_item(caller: RESTAPI_CALLER_TYPE, id: str):
@@ -782,7 +787,7 @@ def toLocalImageLink(self, link: str, article: QiitaArticle) -> str:
782787
return Maybe(article.filepath).map(lambda fp: fp.resolve()).flatMap(
783788
lambda filepath: Maybe(diff_url(link, self.github_url)).filter(lambda x: x != link).map(lambda diff: str(
784789
rel_path(Path(self.git_dir).joinpath(diff), filepath.parent)))).getOrElse(link)
785-
790+
786791
def toLocaMarkdownlLink(self, link: str, article: QiitaArticle) -> str:
787792
return Maybe(article.filepath).map(lambda fp: fp.resolve()).flatMap(
788793
lambda filepath: Maybe(diff_url(link, f"{QIITA_URL_PREFIX}{self.qiita_id}/items/")).filter(
@@ -791,7 +796,7 @@ def toLocaMarkdownlLink(self, link: str, article: QiitaArticle) -> str:
791796

792797
def toLocalFormat(self, article: QiitaArticle) -> QiitaArticle:
793798

794-
def convert_image_link(text: str, article: QiitaArticle) -> str:
799+
def convert_image_link(text: str, article: QiitaArticle) -> str:
795800
return markdown_replace_image(lambda link: self.toLocalImageLink(link, article), text)
796801

797802
def convert_link(text: str) -> str:
@@ -874,10 +879,11 @@ def qsync_check_status_local_article(
874879
if local_article.data.id is None:
875880
return (SyncStatus.LOCAL_ONLY, None)
876881
else:
877-
global_article = get_global_article(local_article.data.id)
882+
global_article = Maybe(get_global_article(local_article.data.id)).map(
883+
lambda article: article._replace(filepath=local_article.filepath)).map(qsync.toLocalFormat).get()
878884
if global_article is None:
879885
return (SyncStatus.GLOBAL_DELETED, None)
880-
elif qsync.toLocalFormat(local_article) == qsync.toLocalFormat(global_article):
886+
elif qsync.toLocalFormat(local_article) == global_article:
881887
return (SyncStatus.SYNC, global_article)
882888
elif local_article.timestamp > global_article.timestamp:
883889
return (SyncStatus.LOCAL_NEW, global_article)
@@ -911,11 +917,11 @@ def qsync_subcommand_delete(qsync: QiitaSync, target: Path):
911917
print(err)
912918

913919

914-
def qsync_str_diff(qsync: QiitaSync, local_article: QiitaArticle, global_article: QiitaArticle) -> List[str]:
920+
def qsync_str_diff(qsync: QiitaSync, local_article: QiitaArticle, global_article: QiitaArticle) -> List[str]:
915921
return list(
916922
difflib.unified_diff(
917923
qsync.toLocalFormat(local_article).body.splitlines(),
918-
qsync.toLocalFormat(global_article).body.splitlines()))
924+
qsync.toLocalFormat(global_article._replace(filepath=local_article.filepath)).body.splitlines()))
919925

920926

921927
def qsync_str_timestamp(article: QiitaArticle) -> str:
@@ -989,7 +995,7 @@ def qsync_do_sync(qsync: QiitaSync, status: SyncStatus, local_article: QiitaArti
989995

990996

991997
def qsync_do_purge(qsync: QiitaSync, status: SyncStatus, local_article: QiitaArticle,
992-
global_article: Optional[QiitaArticle]):
998+
global_article: Optional[QiitaArticle]):
993999
if local_article.data.private:
9941000
qsync.delete(local_article)
9951001
if local_article.filepath is not None:
@@ -1020,7 +1026,6 @@ def qsync_foreach(qsync: QiitaSync, target: Path,
10201026
for article in [QiitaArticle.fromApi(elem) for elem in (qiita_get_item_list(qsync.caller) or [])]
10211027
if article.data.id is not None
10221028
])
1023-
10241029
for local_article in qsync.atcl_path_map.values():
10251030
resp = qsync_check_status_local_article(qsync, local_article, lambda id: global_article_dict.get(id))
10261031
handler(qsync, resp[0], local_article, resp[1])
@@ -1070,7 +1075,7 @@ def common_arg(parser: ArgumentParser) -> ArgumentParser:
10701075
common_arg(subparsers.add_parser("download", help="download help")).set_defaults(func=qsync_subcommand_download)
10711076
common_arg(subparsers.add_parser("upload", help="upload help")).set_defaults(func=qsync_subcommand_upload)
10721077
common_arg(subparsers.add_parser("check", help="check help")).set_defaults(func=qsync_subcommand_check)
1073-
common_arg(subparsers.add_parser("delete", help="delete help")).set_defaults(func=qsync_subcommand_delete)
1078+
common_arg(subparsers.add_parser("delete", help="delete help")).set_defaults(func=qsync_subcommand_delete)
10741079
common_arg(subparsers.add_parser("sync", help="sync help")).set_defaults(func=qsync_subcommand_sync)
10751080
common_arg(subparsers.add_parser("purge", help="purge help")).set_defaults(func=qsync_subcommand_purge)
10761081

tests/test_qiita_sync.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ def test_subcommand_sync(topdir_fx: Path, mocker: MockerFixture, capsys: Capture
272272
qsync_main()
273273
captured = capsys.readouterr()
274274

275-
assert captured.out == ""
275+
assert "" == captured.out
276276

277277

278278
def test_subcommand_purge(topdir_fx: Path, mocker: MockerFixture, capsys: CaptureFixture):

0 commit comments

Comments
 (0)