Skip to content

Commit

Permalink
Update CLI
Browse files Browse the repository at this point in the history
  • Loading branch information
sydp committed May 17, 2024
1 parent 3237d32 commit 4c36502
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 8 deletions.
8 changes: 5 additions & 3 deletions dfindexeddb/indexeddb/chromium/record.py
Original file line number Diff line number Diff line change
Expand Up @@ -1420,20 +1420,22 @@ def __init__(self, foldername: pathlib.Path):

def GetRecords(
self,
use_manifest: bool = False
use_manifest: bool = False,
use_sequence_number: bool = False
) -> Generator[IndexedDBRecord, None, None]:
"""Yield LevelDBRecords.
Args:
use_manifest: True to use the current manifest in the folder as a means to
find the active file set.
use_sequence_number: True to use the sequence number to determine the
Yields:
IndexedDBRecord.
"""
leveldb_folder_reader = record.FolderReader(self.foldername)
for leveldb_record in leveldb_folder_reader.GetRecords(
use_manifest=use_manifest):
use_manifest=use_manifest,
use_sequence_number=use_sequence_number):
try:
yield IndexedDBRecord.FromLevelDBRecord(
leveldb_record)
Expand Down
19 changes: 14 additions & 5 deletions dfindexeddb/indexeddb/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,9 @@ def DbCommand(args):
"""The CLI for processing a directory as IndexedDB."""
if args.format in ('chrome', 'chromium'):
for db_record in chromium_record.FolderReader(
args.source).GetRecords(use_manifest=args.use_manifest):
args.source).GetRecords(
use_manifest=args.use_manifest,
use_sequence_number=args.use_sequence_number):
_Output(db_record, output=args.output)
elif args.format == 'safari':
for db_record in safari_record.FileReader(args.source).Records():
Expand Down Expand Up @@ -139,15 +141,22 @@ def App():
help=(
'The source IndexedDB folder (for chrome/chromium) '
'or file (for safari).'))
recover_group = parser_db.add_mutually_exclusive_group()
recover_group.add_argument(
'--use_manifest',
action='store_true',
help='Use manifest file to determine active/deleted records.')
recover_group.add_argument(
'--use_sequence_number',
action='store_true',
help=(
'Use sequence number and file offset to determine active/deleted '
'records.'))
parser_db.add_argument(
'--format',
required=True,
choices=['chromium', 'chrome', 'safari'],
help='The type of IndexedDB to parse.')
parser_db.add_argument(
'--use_manifest',
action='store_true',
help='Use manifest file to determine active/deleted records.')
parser_db.add_argument(
'-o',
'--output',
Expand Down

0 comments on commit 4c36502

Please sign in to comment.