Browse Source

Added time parse for backup files

master
Raphael Roberts 5 years ago
parent
commit
e33fc7779a
  1. 2
      requirements.txt
  2. 1
      test_data/property_files/example-new.json
  3. 1
      test_data/property_files/example-old.json
  4. 10
      tibi_hardlinks/backup_parser.py

2
requirements.txt

@ -0,0 +1,2 @@
pytz
python-dateutil

1
test_data/property_files/example-new.json

@ -9,6 +9,7 @@
"app_label": "Luis.Babyphone",
"app_version_code": "2000072",
"app_version_name": "2.0.72",
"backup_time": 1604049161.0,
"generation": "1",
"has_dbdata": "0",
"has_prefsdata": "0",

1
test_data/property_files/example-old.json

@ -9,6 +9,7 @@
"app_label": "QPython3",
"app_version_code": "103",
"app_version_name": "1.0.3",
"backup_time": 1509521922.0,
"generation": "1",
"has_dbdata": "0",
"has_prefsdata": "0",

10
tibi_hardlinks/backup_parser.py

@ -1,4 +1,8 @@
import re
from dateutil.parser import parse as datetime_parse, ParserError
import pytz
tzinfos = {name: pytz.timezone(name) for name in pytz.all_timezones}
def parse_property_text(text):
@ -6,6 +10,12 @@ def parse_property_text(text):
key_value_regex = re.compile(r"(?P<key>^[^=]+)=(?P<value>.*)")
lines = text.split("\n")
for line in lines:
if line.startswith("#"):
try:
time = datetime_parse(line.lstrip("#"), tzinfos=tzinfos)
properties["backup_time"] = time.astimezone(pytz.UTC).timestamp()
except ParserError:
pass
match = key_value_regex.match(line)
if match:
key = match.group("key")

Loading…
Cancel
Save