本文整理汇总了Python中MoinMoin.Page.Page.decode方法的典型用法代码示例。如果您正苦于以下问题:Python Page.decode方法的具体用法?Python Page.decode怎么用?Python Page.decode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MoinMoin.Page.Page
的用法示例。
在下文中一共展示了Page.decode方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: run
# 需要导入模块: from MoinMoin.Page import Page [as 别名]
# 或者: from MoinMoin.Page.Page import decode [as 别名]
#.........这里部分代码省略.........
else:
if (sp.local_deleted and not sp.remote_rev) or (
sp.remote_deleted and not sp.local_rev):
return
self.log_status(ActionClass.INFO, _("Synchronising page %s with remote page %s ..."), (local_pagename, sp.remote_name))
if direction == DOWN:
remote_rev = None # always fetch the full page, ignore remote conflict check
patch_base_contents = ""
else:
patch_base_contents = old_contents
# retrieve remote contents diff
if remote_rev != sp.remote_rev:
if sp.remote_deleted: # ignore remote changes
current_remote_rev = sp.remote_rev
is_remote_conflict = False
diff = None
self.log_status(ActionClass.WARN, _("The page %s was deleted remotely but changed locally."), (sp.name, ))
else:
yield remote.get_diff_pre(sp.remote_name, remote_rev, None, normalised_name)
diff_result = remote.get_diff_post(yielder.fetch_result())
if diff_result is None:
self.log_status(ActionClass.ERROR, _("The page %s could not be synced. The remote page was renamed. This is not supported yet. You may want to delete one of the pages to get it synced."), (sp.remote_name, ))
return
is_remote_conflict = diff_result["conflict"]
assert diff_result["diffversion"] == 1
diff = diff_result["diff"]
current_remote_rev = diff_result["current"]
else:
current_remote_rev = remote_rev
if sp.local_mime_type == MIMETYPE_MOIN:
is_remote_conflict = wikiutil.containsConflictMarker(old_contents.decode("utf-8"))
else:
is_remote_conflict = NotImplemented
diff = None
# do not sync if the conflict is remote and local, or if it is local
# and the page has never been synchronised
if (sp.local_mime_type == MIMETYPE_MOIN and wikiutil.containsConflictMarker(current_page.get_raw_body()) # YYY direct access
and (remote_rev is None or is_remote_conflict)):
self.log_status(ActionClass.WARN, _("Skipped page %s because of a locally or remotely unresolved conflict."), (local_pagename, ))
return
if remote_rev is None and direction == BOTH:
self.log_status(ActionClass.INFO, _("This is the first synchronisation between the local and the remote wiki for the page %s."), (sp.name, ))
# calculate remote page contents from diff
if sp.remote_deleted:
remote_contents = ""
elif diff is None:
remote_contents = old_contents
else:
remote_contents = patch(patch_base_contents, decompress(diff))
if diff is None: # only a local change
if debug:
self.log_status(ActionClass.INFO, raw_suffix="Only local changes for %r" % sp.name)
merged_text_raw = current_page.get_raw_body_str()
if sp.local_mime_type == MIMETYPE_MOIN:
merged_text = merged_text_raw.decode("utf-8")
elif local_rev == sp.local_rev:
if debug:
self.log_status(ActionClass.INFO, raw_suffix="Only remote changes for %r" % sp.name)
merged_text_raw = remote_contents