@@ -409,12 +409,17 @@ def qiita_create_caller(auth_token: str):
409
409
410
410
411
411
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 ))
413
414
414
415
415
416
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 )))), [])
418
423
419
424
420
425
def qiita_get_item (caller : RESTAPI_CALLER_TYPE , id : str ):
@@ -782,7 +787,7 @@ def toLocalImageLink(self, link: str, article: QiitaArticle) -> str:
782
787
return Maybe (article .filepath ).map (lambda fp : fp .resolve ()).flatMap (
783
788
lambda filepath : Maybe (diff_url (link , self .github_url )).filter (lambda x : x != link ).map (lambda diff : str (
784
789
rel_path (Path (self .git_dir ).joinpath (diff ), filepath .parent )))).getOrElse (link )
785
-
790
+
786
791
def toLocaMarkdownlLink (self , link : str , article : QiitaArticle ) -> str :
787
792
return Maybe (article .filepath ).map (lambda fp : fp .resolve ()).flatMap (
788
793
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:
791
796
792
797
def toLocalFormat (self , article : QiitaArticle ) -> QiitaArticle :
793
798
794
- def convert_image_link (text : str , article : QiitaArticle ) -> str :
799
+ def convert_image_link (text : str , article : QiitaArticle ) -> str :
795
800
return markdown_replace_image (lambda link : self .toLocalImageLink (link , article ), text )
796
801
797
802
def convert_link (text : str ) -> str :
@@ -874,10 +879,11 @@ def qsync_check_status_local_article(
874
879
if local_article .data .id is None :
875
880
return (SyncStatus .LOCAL_ONLY , None )
876
881
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 ()
878
884
if global_article is None :
879
885
return (SyncStatus .GLOBAL_DELETED , None )
880
- elif qsync .toLocalFormat (local_article ) == qsync . toLocalFormat ( global_article ) :
886
+ elif qsync .toLocalFormat (local_article ) == global_article :
881
887
return (SyncStatus .SYNC , global_article )
882
888
elif local_article .timestamp > global_article .timestamp :
883
889
return (SyncStatus .LOCAL_NEW , global_article )
@@ -911,11 +917,11 @@ def qsync_subcommand_delete(qsync: QiitaSync, target: Path):
911
917
print (err )
912
918
913
919
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 ]:
915
921
return list (
916
922
difflib .unified_diff (
917
923
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 ()))
919
925
920
926
921
927
def qsync_str_timestamp (article : QiitaArticle ) -> str :
@@ -989,7 +995,7 @@ def qsync_do_sync(qsync: QiitaSync, status: SyncStatus, local_article: QiitaArti
989
995
990
996
991
997
def qsync_do_purge (qsync : QiitaSync , status : SyncStatus , local_article : QiitaArticle ,
992
- global_article : Optional [QiitaArticle ]):
998
+ global_article : Optional [QiitaArticle ]):
993
999
if local_article .data .private :
994
1000
qsync .delete (local_article )
995
1001
if local_article .filepath is not None :
@@ -1020,7 +1026,6 @@ def qsync_foreach(qsync: QiitaSync, target: Path,
1020
1026
for article in [QiitaArticle .fromApi (elem ) for elem in (qiita_get_item_list (qsync .caller ) or [])]
1021
1027
if article .data .id is not None
1022
1028
])
1023
-
1024
1029
for local_article in qsync .atcl_path_map .values ():
1025
1030
resp = qsync_check_status_local_article (qsync , local_article , lambda id : global_article_dict .get (id ))
1026
1031
handler (qsync , resp [0 ], local_article , resp [1 ])
@@ -1070,7 +1075,7 @@ def common_arg(parser: ArgumentParser) -> ArgumentParser:
1070
1075
common_arg (subparsers .add_parser ("download" , help = "download help" )).set_defaults (func = qsync_subcommand_download )
1071
1076
common_arg (subparsers .add_parser ("upload" , help = "upload help" )).set_defaults (func = qsync_subcommand_upload )
1072
1077
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 )
1074
1079
common_arg (subparsers .add_parser ("sync" , help = "sync help" )).set_defaults (func = qsync_subcommand_sync )
1075
1080
common_arg (subparsers .add_parser ("purge" , help = "purge help" )).set_defaults (func = qsync_subcommand_purge )
1076
1081
0 commit comments