MCPcopy
hub / github.com/HelloZeroNet/ZeroNet / getDiffs

Method getDiffs

src/Content/ContentManager.py:558–582  ·  view source on GitHub ↗
(self, inner_path, limit=30 * 1024, update_files=True)

Source from the content-addressed store, hash-verified

556
557 # Get diffs for changed files
558 def getDiffs(self, inner_path, limit=30 * 1024, update_files=True):
559 if inner_path not in self.contents:
560 return {}
561 diffs = {}
562 content_inner_path_dir = helper.getDirname(inner_path)
563 for file_relative_path in self.contents[inner_path].get("files", {}):
564 file_inner_path = content_inner_path_dir + file_relative_path
565 if self.site.storage.isFile(file_inner_path + "-new"): # New version present
566 diffs[file_relative_path] = Diff.diff(
567 list(self.site.storage.open(file_inner_path)),
568 list(self.site.storage.open(file_inner_path + "-new")),
569 limit=limit
570 )
571 if update_files:
572 self.site.storage.delete(file_inner_path)
573 self.site.storage.rename(file_inner_path + "-new", file_inner_path)
574 if self.site.storage.isFile(file_inner_path + "-old"): # Old version present
575 diffs[file_relative_path] = Diff.diff(
576 list(self.site.storage.open(file_inner_path + "-old")),
577 list(self.site.storage.open(file_inner_path)),
578 limit=limit
579 )
580 if update_files:
581 self.site.storage.delete(file_inner_path + "-old")
582 return diffs
583
584 def hashFile(self, dir_inner_path, file_relative_path, optional=False):
585 back = {}

Callers 3

doSitePublishMethod · 0.80
testUpdateMethod · 0.80
testBigUpdateMethod · 0.80

Calls 5

openMethod · 0.80
renameMethod · 0.80
getMethod · 0.45
isFileMethod · 0.45
deleteMethod · 0.45

Tested by 2

testUpdateMethod · 0.64
testBigUpdateMethod · 0.64