chore: improve Controller
This commit is contained in:
		
							parent
							
								
									7c199adba9
								
							
						
					
					
						commit
						81a59122e8
					
				
					 4 changed files with 180 additions and 54 deletions
				
			
		
							
								
								
									
										
											BIN
										
									
								
								db/eolas.db
									
										
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								db/eolas.db
									
										
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -289,7 +289,11 @@ | |||
|             "type": "tag" | ||||
|         }, | ||||
|         { | ||||
|             "id": "#ecosolpoc", | ||||
|             "id": "#sound", | ||||
|             "type": "tag" | ||||
|         }, | ||||
|         { | ||||
|             "id": "#analogue", | ||||
|             "type": "tag" | ||||
|         }, | ||||
|         { | ||||
|  | @ -304,10 +308,6 @@ | |||
|             "id": "#number-theory", | ||||
|             "type": "tag" | ||||
|         }, | ||||
|         { | ||||
|             "id": "#analogue", | ||||
|             "type": "tag" | ||||
|         }, | ||||
|         { | ||||
|             "id": "#file-system", | ||||
|             "type": "tag" | ||||
|  | @ -344,10 +344,6 @@ | |||
|             "id": "#kernel", | ||||
|             "type": "tag" | ||||
|         }, | ||||
|         { | ||||
|             "id": "#sound", | ||||
|             "type": "tag" | ||||
|         }, | ||||
|         { | ||||
|             "id": "#theory-of-computation", | ||||
|             "type": "tag" | ||||
|  | @ -436,6 +432,14 @@ | |||
|             "id": "653c0b1d_host_protocols_of_ARPANET", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "738d0481_sound_recording_as_wave_phenomena", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "747589ad_effects_of_privacy_violation", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "82f9c228_dissolution_of_ARPANET", | ||||
|             "type": "entry" | ||||
|  | @ -1252,6 +1256,10 @@ | |||
|             "id": "Hexadecimal_number_system", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "ICMP_Protocol", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "IP_addresses", | ||||
|             "type": "entry" | ||||
|  | @ -1548,6 +1556,10 @@ | |||
|             "id": "MongoDB_connection", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "Monitor_DNS_resolution_and_internet_connectivity_script", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "Monitoring_processes_and_resources", | ||||
|             "type": "entry" | ||||
|  | @ -1608,10 +1620,6 @@ | |||
|             "id": "Network_card", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "Network_debugging", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "Network_fundamentals", | ||||
|             "type": "entry" | ||||
|  | @ -1708,6 +1716,10 @@ | |||
|             "id": "Peer_to_peer_network", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "Ping", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "Ports_in_NodeJS", | ||||
|             "type": "entry" | ||||
|  | @ -1848,6 +1860,10 @@ | |||
|             "id": "Reciprocals", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "Recording_and_playback_of_sound", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "Recursion", | ||||
|             "type": "entry" | ||||
|  | @ -2276,6 +2292,10 @@ | |||
|             "id": "Variables_in_C", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "View_IP_addresses", | ||||
|             "type": "entry" | ||||
|         }, | ||||
|         { | ||||
|             "id": "Viewing_remote_changes_without_merging", | ||||
|             "type": "entry" | ||||
|  | @ -2850,6 +2870,14 @@ | |||
|             "source": "#nand-to-tetris", | ||||
|             "target": "Hardware_Description_Language" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#networks", | ||||
|             "target": "Monitor_DNS_resolution_and_internet_connectivity_script" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#procedural", | ||||
|             "target": "Monitor_DNS_resolution_and_internet_connectivity_script" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#javascript", | ||||
|             "target": "React_useReducer" | ||||
|  | @ -3130,6 +3158,10 @@ | |||
|             "source": "#javascript", | ||||
|             "target": "Map_and_filter_to_reduce_in_JS" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#networks", | ||||
|             "target": "ICMP_Protocol" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#AWS", | ||||
|             "target": "Accessing_secrets_from_a_Lambda" | ||||
|  | @ -3523,7 +3555,7 @@ | |||
|             "target": "Weaving_the_Web_Berners_Lee" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#ecosolpoc", | ||||
|             "source": "#ecopolsoc", | ||||
|             "target": "Weaving_the_Web_Berners_Lee" | ||||
|         }, | ||||
|         { | ||||
|  | @ -3542,6 +3574,18 @@ | |||
|             "source": "#internet", | ||||
|             "target": "Architecture_of_the_World_Wide_Web" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#sound", | ||||
|             "target": "Binary_encoding_of_sound" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#binary", | ||||
|             "target": "Binary_encoding_of_sound" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#analogue", | ||||
|             "target": "Binary_encoding_of_sound" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#mongo-db", | ||||
|             "target": "Modelling_relationships_in_MongoDB" | ||||
|  | @ -4374,6 +4418,18 @@ | |||
|             "source": "#typescript", | ||||
|             "target": "Type_guarding_and_narrowing_in_TS" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#ecopolsoc", | ||||
|             "target": "747589ad_effects_of_privacy_violation" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#privacy", | ||||
|             "target": "747589ad_effects_of_privacy_violation" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#surveillance-capitalism", | ||||
|             "target": "747589ad_effects_of_privacy_violation" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#operating-systems", | ||||
|             "target": "Processes" | ||||
|  | @ -4806,18 +4862,6 @@ | |||
|             "source": "#Turing", | ||||
|             "target": "Turing_machines" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#procedural", | ||||
|             "target": "Network_debugging" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#Linux", | ||||
|             "target": "Network_debugging" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#networks", | ||||
|             "target": "Network_debugging" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#systems-programming", | ||||
|             "target": "journald" | ||||
|  | @ -4982,6 +5026,30 @@ | |||
|             "source": "#binary", | ||||
|             "target": "Bitwise_operators" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#sound", | ||||
|             "target": "Recording_and_playback_of_sound" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#analogue", | ||||
|             "target": "Recording_and_playback_of_sound" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#physics", | ||||
|             "target": "Recording_and_playback_of_sound" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#networks", | ||||
|             "target": "View_IP_addresses" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#procedural", | ||||
|             "target": "View_IP_addresses" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#Linux", | ||||
|             "target": "View_IP_addresses" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#propositional-logic", | ||||
|             "target": "Logical_indeterminacy" | ||||
|  | @ -5274,6 +5342,14 @@ | |||
|             "source": "#computer-history", | ||||
|             "target": "e470bf3d_IMPs_in_the_ARPANET" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#networks", | ||||
|             "target": "Ping" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#procedural", | ||||
|             "target": "Ping" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#prealgebra", | ||||
|             "target": "Reciprocals" | ||||
|  | @ -5610,6 +5686,18 @@ | |||
|             "source": "#databases", | ||||
|             "target": "Node_and_MySQL_db" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#sound", | ||||
|             "target": "738d0481_sound_recording_as_wave_phenomena" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#analogue", | ||||
|             "target": "738d0481_sound_recording_as_wave_phenomena" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#physics", | ||||
|             "target": "738d0481_sound_recording_as_wave_phenomena" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#AWS", | ||||
|             "target": "Secrets_or_env_vars_in_AWS" | ||||
|  | @ -6159,7 +6247,7 @@ | |||
|             "target": "f6564af9_AOL_and_early_internet_enclosure" | ||||
|         }, | ||||
|         { | ||||
|             "source": "#ecosolpoc", | ||||
|             "source": "#ecopolsoc", | ||||
|             "target": "f6564af9_AOL_and_early_internet_enclosure" | ||||
|         }, | ||||
|         { | ||||
|  | @ -6394,6 +6482,10 @@ | |||
|             "source": "Hardware_Description_Language", | ||||
|             "target": "Boolean_functions" | ||||
|         }, | ||||
|         { | ||||
|             "source": "Monitor_DNS_resolution_and_internet_connectivity_script", | ||||
|             "target": "Ping" | ||||
|         }, | ||||
|         { | ||||
|             "source": "React_useReducer", | ||||
|             "target": "React_useState" | ||||
|  | @ -6478,6 +6570,22 @@ | |||
|             "source": "Application_state_management_with_React_hooks", | ||||
|             "target": "React_useContext" | ||||
|         }, | ||||
|         { | ||||
|             "source": "ICMP_Protocol", | ||||
|             "target": "Internet_Layer_of_Internet_Protocol" | ||||
|         }, | ||||
|         { | ||||
|             "source": "ICMP_Protocol", | ||||
|             "target": "Transport_Layer_of_Internet_Protocol" | ||||
|         }, | ||||
|         { | ||||
|             "source": "ICMP_Protocol", | ||||
|             "target": "Application_Layer_of_Internet_Protocol" | ||||
|         }, | ||||
|         { | ||||
|             "source": "ICMP_Protocol", | ||||
|             "target": "Ping" | ||||
|         }, | ||||
|         { | ||||
|             "source": "Accessing_secrets_from_a_Lambda", | ||||
|             "target": "Fetch_from_Secrets_Manager" | ||||
|  | @ -6630,6 +6738,10 @@ | |||
|             "source": "Architecture_of_the_World_Wide_Web", | ||||
|             "target": "IP_addresses" | ||||
|         }, | ||||
|         { | ||||
|             "source": "Binary_encoding_of_sound", | ||||
|             "target": "Recording_and_playback_of_sound" | ||||
|         }, | ||||
|         { | ||||
|             "source": "Practical_walkthrough_Lambda_creation_within_AWS", | ||||
|             "target": "Lambda_triggers" | ||||
|  | @ -7030,10 +7142,6 @@ | |||
|             "source": "Using_GraphQL_with_Node", | ||||
|             "target": "Middleware_in_NodeJS" | ||||
|         }, | ||||
|         { | ||||
|             "source": "Network_debugging", | ||||
|             "target": "Network_scanning" | ||||
|         }, | ||||
|         { | ||||
|             "source": "journald", | ||||
|             "target": "systemd" | ||||
|  | @ -7094,6 +7202,14 @@ | |||
|             "source": "Python_data_types", | ||||
|             "target": "Strings_in_Python" | ||||
|         }, | ||||
|         { | ||||
|             "source": "Recording_and_playback_of_sound", | ||||
|             "target": "Binary_encoding_of_sound" | ||||
|         }, | ||||
|         { | ||||
|             "source": "View_IP_addresses", | ||||
|             "target": "IP_addresses" | ||||
|         }, | ||||
|         { | ||||
|             "source": "Magnetic_tape", | ||||
|             "target": "The_History_of_Computing_Swade" | ||||
|  | @ -7202,10 +7318,6 @@ | |||
|             "source": "Set_DNS_settings", | ||||
|             "target": "Network_scanning" | ||||
|         }, | ||||
|         { | ||||
|             "source": "Set_DNS_settings", | ||||
|             "target": "Network_debugging" | ||||
|         }, | ||||
|         { | ||||
|             "source": "Docker_Compose", | ||||
|             "target": "Node_and_MySQL_db" | ||||
|  | @ -7238,6 +7350,10 @@ | |||
|             "source": "e470bf3d_IMPs_in_the_ARPANET", | ||||
|             "target": "Network_fundamentals" | ||||
|         }, | ||||
|         { | ||||
|             "source": "Ping", | ||||
|             "target": "ICMP_Protocol" | ||||
|         }, | ||||
|         { | ||||
|             "source": "Magnetic_drum_memory", | ||||
|             "target": "Williams_Tube_memory" | ||||
|  |  | |||
|  | @ -23,16 +23,19 @@ def main(): | |||
|     ) | ||||
|     parser.add_argument( | ||||
|         "command", | ||||
|         choices=["populate-database", "generate-graph"], | ||||
|         choices=["populate-database", "generate-graph", "export-tags"], | ||||
|         help="Command to execute", | ||||
|     ) | ||||
|     args = parser.parse_args() | ||||
| 
 | ||||
|     if args.command == "populate-database": | ||||
|         controller.populate_database() | ||||
|         controller.execute("populate") | ||||
| 
 | ||||
|     if args.command == "generate-graph": | ||||
|         controller.generate_graph() | ||||
|         controller.execute("graph") | ||||
| 
 | ||||
|     # if args.command == "export-tags": | ||||
|     #     controller.export_tags() | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|  |  | |||
|  | @ -1,30 +1,37 @@ | |||
| from termcolor import colored | ||||
| 
 | ||||
| 
 | ||||
| class Controller: | ||||
|     def __init__( | ||||
|         self, database_service, table_service, parse_file_service, graph_service | ||||
|         self, | ||||
|         database_service, | ||||
|         table_service, | ||||
|         parse_file_service, | ||||
|         graph_service, | ||||
|         # tag_service, | ||||
|     ): | ||||
|         self.database_service = database_service | ||||
|         self.table_service = table_service | ||||
|         self.parse_file_service = parse_file_service | ||||
|         self.graph_service = graph_service | ||||
|         # self.tag_service = tag_service | ||||
| 
 | ||||
|     def populate_database(self): | ||||
|     def execute(self, operation): | ||||
|         try: | ||||
|             entries = self.parse_file_service.parse_source_directory() | ||||
|             self.table_service.populate_tables(entries) | ||||
|             print(colored("SUCCESS Database populated", "green")) | ||||
|             match operation: | ||||
|                 case "populate": | ||||
|                     return self.__populate_database() | ||||
|                 case "graph": | ||||
|                     return self.__generate_graph() | ||||
|         except Exception as e: | ||||
|             raise Exception(colored(f"ERROR {e}", "red")) | ||||
|         finally: | ||||
|             self.database_service.disconnect() | ||||
|             print(colored("INFO Database connection closed", "blue")) | ||||
|     def generate_graph(self): | ||||
|         try: | ||||
|             self.graph_service.generate_graph() | ||||
|             print(colored("SUCCESS Graph generated", "green")) | ||||
|         except Exception as e: | ||||
|             raise Exception(colored(f"ERROR {e}"), "red") | ||||
|         finally: | ||||
|             self.database_service.disconnect() | ||||
|             print(colored("INFO Database connection closed", "blue")) | ||||
| 
 | ||||
|     def __populate_database(self): | ||||
|         entries = self.parse_file_service.parse_source_directory() | ||||
|         self.table_service.populate_tables(entries) | ||||
|         self.database_service.disconnect() | ||||
| 
 | ||||
|     def __generate_graph(self): | ||||
|         self.graph_service.generate_graph() | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 thomasabishop
						thomasabishop