/ save_settings.py
save_settings.py
1 # save_settings.py 2 3 import json 4 from PyQt6.QtWidgets import QFileDialog 5 6 def save_settings(gui_instance): 7 # Open a file dialog to select where to save the JSON file 8 file_name, _ = QFileDialog.getSaveFileName(gui_instance, "Save Settings", "", "JSON Files (*.json);;All Files (*)") 9 if file_name: 10 # Ensure the file name ends with .json if not already 11 if not file_name.endswith('.json'): 12 file_name += '.json' 13 14 # Collect the current settings into a dictionary 15 settings = { 16 "username_input": gui_instance.username_input.text(), 17 "username_file_input": gui_instance.username_file_input.text(), 18 "email_input": gui_instance.email_input.text(), 19 # "hudson_email_input": gui_instance.hudson_email_input.text(), 20 "email_file_input": gui_instance.email_file_input.text(), 21 # "breach_email_file_input": gui_instance.breach_email_file_input.text(), 22 "permute_checkbox": gui_instance.permute_checkbox.isChecked(), 23 "permuteall_checkbox": gui_instance.permuteall_checkbox.isChecked(), 24 "no_nsfw_checkbox": gui_instance.no_nsfw_checkbox.isChecked(), 25 "proxy_input": gui_instance.proxy_input.text(), 26 "timeout_spinbox": gui_instance.timeout_spinbox.value(), 27 "no_update_checkbox": gui_instance.no_update_checkbox.isChecked(), 28 "csv_checkbox": gui_instance.csv_checkbox.isChecked(), 29 "pdf_checkbox": gui_instance.pdf_checkbox.isChecked(), 30 "json_checkbox": gui_instance.json_checkbox.isChecked(), 31 "verbose_checkbox": gui_instance.verbose_checkbox.isChecked(), 32 "dump_checkbox": gui_instance.dump_checkbox.isChecked(), 33 "instagram_session_id": gui_instance.instagram_session_id.text(), 34 "AI_checkbox": gui_instance.AI_checkbox.isChecked(), 35 "filter": gui_instance.filter_input.text(), 36 "ai_api_key": getattr(gui_instance, 'ai_api_key', '') # Save API key if it exists 37 } 38 39 # Save the settings to the file with proper JSON format 40 with open(file_name, 'w') as f: 41 json.dump(settings, f, indent=4)