better UTF8 handling, older account files have no profile_fields

This commit is contained in:
Tobias Diekershoff 2020-09-26 15:37:58 +02:00
parent 67b997ade4
commit 9fb97a70be

View file

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """
@ -52,7 +52,7 @@ class ArchiveFile:
Constructor of the class, initialize some internal variables Constructor of the class, initialize some internal variables
and read in the data from the JSON file. and read in the data from the JSON file.
""" """
with open(filename) as jsonData: with open(filename,'r') as jsonData:
data = json.load(jsonData) data = json.load(jsonData)
self.filename = filename self.filename = filename
self.version = data['version'] self.version = data['version']
@ -60,7 +60,10 @@ class ArchiveFile:
self.user = data['user'] self.user = data['user']
self.profile = data['profile'] self.profile = data['profile']
self.group = data['group'] self.group = data['group']
self.profile_fields = data['profile_fields'] try:
self.profile_fields = data['profile_fields']
except:
self.profile_fields = None
self.photo = data['photo'] self.photo = data['photo']
self.pconfig = data['pconfig'] self.pconfig = data['pconfig']
self.baseurl = data['baseurl'] self.baseurl = data['baseurl']
@ -72,43 +75,44 @@ class ArchiveFile:
parses the JSON data and writes the content to various text files parses the JSON data and writes the content to various text files
""" """
baseFileName = self.user["nickname"]+"-" baseFileName = self.user["nickname"]+"-"
with open(baseFileName+"info.txt", "w") as outFile: with open(baseFileName+"info.txt", "w", encoding='utf8') as outFile:
outFile.write("Exported from Friendica Version: {}\n".format(self.version)) outFile.write("Exported from Friendica Version: {}\n".format(self.version))
outFile.write("Database schema version: {}\n".format(self.schema)) outFile.write("Database schema version: {}\n".format(self.schema))
outFile.write("Base URL: {}\n".format(self.baseurl)) outFile.write("Base URL: {}\n".format(self.baseurl))
with open(baseFileName+"userdata.txt", "w") as outFile: with open(baseFileName+"userdata.txt", "w", encoding='utf8') as outFile:
for k in self.user: for k in self.user:
outFile.write("{}: {}\n".format(k, self.user[k])) outFile.write("{}: {}\n".format(k, self.user[k]))
with open(baseFileName+"profile.txt", "w") as outFile: with open(baseFileName+"profile.txt", "w", encoding='utf8') as outFile:
for k in self.profile[0]: for k in self.profile[0]:
outFile.write("{}: {}\n".format(k, self.profile[0].get(k))) outFile.write("{}: {}\n".format(k, self.profile[0].get(k)))
with open(baseFileName+'groups.txt', "w") as outFile: with open(baseFileName+'groups.txt', "w", encoding='utf8') as outFile:
for i in range(len(self.group)): for i in range(len(self.group)):
outFile.write("Group {}\n".format(i)) outFile.write("Group {}\n".format(i))
for ii in self.group[i]: for ii in self.group[i]:
outFile.write("{}: {}\n".format(ii, self.group[i].get(ii))) outFile.write("{}: {}\n".format(ii, self.group[i].get(ii)))
outFile.write("\n") outFile.write("\n")
with open(baseFileName+'profile_fields.txt', 'w') as outFile: if self.profile_fields:
for i in range(len(self.profile_fields)): with open(baseFileName+'profile_fields.txt', 'w', encoding='utf8') as outFile:
for ii in self.profile_fields[i]: for i in range(len(self.profile_fields)):
outFile.write('{}: {}\n'.format(ii, self.profile_fields[i].get(ii))) for ii in self.profile_fields[i]:
outFile.write("\n") outFile.write('{}: {}\n'.format(ii, self.profile_fields[i].get(ii)))
with open(baseFileName+'photo.txt', 'w') as outFile: outFile.write("\n")
with open(baseFileName+'photo.txt', 'w', encoding='utf8') as outFile:
for i in range(len(self.photo)): for i in range(len(self.photo)):
for ii in self.photo[i]: for ii in self.photo[i]:
outFile.write('{}: {}\n'.format(ii, self.photo[i].get(ii))) outFile.write('{}: {}\n'.format(ii, self.photo[i].get(ii)))
outFile.write("\n") outFile.write("\n")
with open(baseFileName+"pconfig.txt","w") as outFile: with open(baseFileName+"pconfig.txt","w", encoding='utf8') as outFile:
for i in range(len(self.pconfig)): for i in range(len(self.pconfig)):
for ii in self.pconfig[i]: for ii in self.pconfig[i]:
outFile.write('{}: {}\n'.format(ii, self.pconfig[i].get(ii))) outFile.write('{}: {}\n'.format(ii, self.pconfig[i].get(ii)))
outFile.write("\n") outFile.write("\n")
with open(baseFileName+"contact.txt","w") as outFile: with open(baseFileName+"contact.txt","w", encoding='utf8') as outFile:
for i in range(len(self.contact)): for i in range(len(self.contact)):
for ii in self.contact[i]: for ii in self.contact[i]:
outFile.write('{}: {}\n'.format(ii, self.contact[i].get(ii))) outFile.write('{}: {}\n'.format(ii, self.contact[i].get(ii)))
outFile.write("\n") outFile.write("\n")
with open(baseFileName+"group_member.txt","w") as outFile: with open(baseFileName+"group_member.txt","w", encoding='utf8') as outFile:
for i in range(len(self.group_member)): for i in range(len(self.group_member)):
for ii in self.group_member[i]: for ii in self.group_member[i]:
outFile.write('{}: {}\n'.format(ii, self.group_member[i].get(ii))) outFile.write('{}: {}\n'.format(ii, self.group_member[i].get(ii)))