#!/usr/bin/python3
import subprocess

class Wifi():
	def __init__(self):
		pass

	def reemplazar(self, ruta_archivo, texto_out, texto_in):
		with open(ruta_archivo,'r') as archivo:
			contenido=archivo.read()
		contenido_2 = contenido.replace(texto_out,texto_in)

		with open(ruta_archivo, 'w') as archivo_nuevo:
			archivo_nuevo.write(contenido_2)

	def app(self):
		
		try:
			while True:
				archivo=open("/etc/wpa_supplicant/wpa_supplicant.conf","r")
				nombres = archivo.read().split('\n')
				lista_nombres=[]
				lista_claves=[]
				for linea in nombres:
					if 'ssid' in linea:
						lista_nombres.append(linea.split('=')[1].split('"')[1])
					if 'psk' in linea:
						lista_claves.append(linea.split('=')[1].split('"')[1])
				archivo.close()
				print("Programa de Edicion Wifi Mining\n")
				sel=input("Seleccione Accion Agregar (A), Ver (V), Modificar (M) y Salir (S): ")
				if sel=="A" or sel=="a":
					#archivo=open("/etc/wpa_supplicant/wpa_supplicant.conf","a")
					print("Siga las instrucciones para agergar una red WIFI")
					print("")
					ssid=input("Ingrese nombre de la red: ")
					psk=input("Ingrese clave de la red: ")
					agregar='\nnetwork={\n\tssid="' + str(ssid)
					agregar=agregar+'"\n\tpsk="'+str(psk)+'"\n}'
					#print(agregar)
					archivo=open("/etc/wpa_supplicant/wpa_supplicant.conf","a")
					archivo.write(agregar)
					archivo.close()
					print("Red " + str(ssid) + " agregada")
					subprocess.check_output(["systemctl","restart","wpa_supplicant"])
				elif sel=="V" or sel=="v":
					cont=1
					for wifi in lista_nombres:
						print(str(cont)+'. '+lista_nombres[cont-1]+' : '+lista_claves[cont-1])
						cont=cont+1
				elif sel=='M' or sel=='m':
					cont=1
					for wifi in lista_nombres:
						print(str(cont)+'. '+lista_nombres[cont-1]+' : '+lista_claves[cont-1])
						cont=cont+1
					sel_w=input('Seleccione Valor a Modificar: ')
					sel_m=input('¿Que desea cambiar? Nombre (N) o Clave(C): ')
					if sel_m == 'C' or sel_m == 'c':
						c1 = input('Ingrese nueva clave: ')
						c2 = input('Repita clave nueva: ')
						if c1 != c2:
							print('Error de coincidencia')
						else:
							self.reemplazar('/etc/wpa_supplicant/wpa_supplicant.conf',lista_claves[int(sel_w)-1],c1)
					elif sel_m == 'N' or sel_m == 'n':
						c1 = input('Ingrese nuevo nombre: ')
						c2 = input('Repita nombre nuevo: ')
						if c1 != c2:
							print('Error de coincidencia')
						else:
							self.reemplazar('/etc/wpa_supplicant/wpa_supplicant.conf',lista_nombres[int(sel_w)-1],c1)
					else: print('Seleccione un valor valido')
				elif sel=="S" or sel=="s":
					break
				else:
					print("Ingrese opcion valida")

		except:
			print("Error")

config_wifi = Wifi()
config_wifi.app()
