Remove FileExfiltrationWriter
This commit is contained in:
parent
7f0d8e4288
commit
eadb13d2e9
|
@ -276,66 +276,3 @@ class ExfiltrationWriter(object):
|
||||||
`export_user_data`.
|
`export_user_data`.
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class FileExfiltrationWriter(ExfiltrationWriter):
|
|
||||||
"""An ExfiltrationWriter that writes the user's data to a directory.
|
|
||||||
|
|
||||||
Returns the directory location on completion.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
user_id (str): The user whose data is being exported.
|
|
||||||
directory (str|None): The directory to write the data to. If None then
|
|
||||||
will write to a temporary directory.
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, user_id, directory=None):
|
|
||||||
self.user_id = user_id
|
|
||||||
|
|
||||||
if directory:
|
|
||||||
self.base_directory = directory
|
|
||||||
else:
|
|
||||||
self.base_directory = tempfile.mkdtemp(
|
|
||||||
prefix="synapse-exported__%s__" % (user_id,)
|
|
||||||
)
|
|
||||||
|
|
||||||
os.makedirs(self.base_directory, exist_ok=True)
|
|
||||||
if list(os.listdir(self.base_directory)):
|
|
||||||
raise Exception("Directory must be empty")
|
|
||||||
|
|
||||||
def write_events(self, room_id, events):
|
|
||||||
room_directory = os.path.join(self.base_directory, "rooms", room_id)
|
|
||||||
os.makedirs(room_directory, exist_ok=True)
|
|
||||||
events_file = os.path.join(room_directory, "events")
|
|
||||||
|
|
||||||
with open(events_file, "a") as f:
|
|
||||||
for event in events:
|
|
||||||
print(json.dumps(event.get_pdu_json()), file=f)
|
|
||||||
|
|
||||||
def write_state(self, room_id, event_id, state):
|
|
||||||
room_directory = os.path.join(self.base_directory, "rooms", room_id)
|
|
||||||
state_directory = os.path.join(room_directory, "state")
|
|
||||||
os.makedirs(state_directory, exist_ok=True)
|
|
||||||
|
|
||||||
event_file = os.path.join(state_directory, event_id)
|
|
||||||
|
|
||||||
with open(event_file, "a") as f:
|
|
||||||
for event in state.values():
|
|
||||||
print(json.dumps(event.get_pdu_json()), file=f)
|
|
||||||
|
|
||||||
def write_invite(self, room_id, event, state):
|
|
||||||
self.write_events(room_id, [event])
|
|
||||||
|
|
||||||
# We write the invite state somewhere else as they aren't full events
|
|
||||||
# and are only a subset of the state at the event.
|
|
||||||
room_directory = os.path.join(self.base_directory, "rooms", room_id)
|
|
||||||
os.makedirs(room_directory, exist_ok=True)
|
|
||||||
|
|
||||||
invite_state = os.path.join(room_directory, "invite_state")
|
|
||||||
|
|
||||||
with open(invite_state, "a") as f:
|
|
||||||
for event in state.values():
|
|
||||||
print(json.dumps(event), file=f)
|
|
||||||
|
|
||||||
def finished(self):
|
|
||||||
return self.base_directory
|
|
||||||
|
|
Loading…
Reference in New Issue