Colors!
This commit is contained in:
parent
2ea37fc19e
commit
13b7594b8a
2 changed files with 31 additions and 30 deletions
|
@ -1,5 +1,6 @@
|
|||
import os.path
|
||||
import json
|
||||
from termcolor import colored, cprint
|
||||
from rcon.source import Client
|
||||
|
||||
# Declare variables that are needed everywhere.
|
||||
|
@ -14,7 +15,7 @@ def load_servers():
|
|||
with open(servers_file,'r') as openfile:
|
||||
servers = json.load(openfile)
|
||||
else:
|
||||
print('\n!! Looks like you do not have any servers yet - Let\'s add one.\n')
|
||||
print(colored('\n!! Looks like you do not have any servers yet - Let\'s add one.','white','on_green',attrs=['bold']))
|
||||
create_server()
|
||||
|
||||
# Write the contents to the servers variable to the servers_file.
|
||||
|
@ -25,32 +26,30 @@ def write_servers():
|
|||
|
||||
# Lists servers, default action is to list all information minus password. Second option lists only ID and name.
|
||||
def list_servers(mode=int(1)): # make sure a default is set.
|
||||
output = ""
|
||||
if(mode==1):
|
||||
index = int(0)
|
||||
for x in servers: # for each dict in the servers array as x.
|
||||
strindex = str(index)
|
||||
print('ID: '+strindex+' ===')
|
||||
print(' Name:'+x['name'])
|
||||
print(' Address:'+x['address'])
|
||||
print(' Port:'+x['port'])
|
||||
print(' Password: **********\n')
|
||||
output+='ID: '+strindex+' ===\n Name:'+x['name']+'\n Address:'+x['address']+'\n Port:'+x['port']+'\n'
|
||||
index += 1
|
||||
elif(mode==2):
|
||||
index = int(0)
|
||||
for x in servers:
|
||||
strindex = str(index)
|
||||
print('ID: '+strindex+' ('+x['name']+')')
|
||||
output+='ID: '+strindex+' ('+x['name']+')\n'
|
||||
index += 1
|
||||
return output
|
||||
|
||||
# Creates new server dicts in the server array.
|
||||
def create_server():
|
||||
global servers # Global so that we can write to it.
|
||||
print('\n=== Add Server ===')
|
||||
srv_name = input('Name: ')
|
||||
srv_addr = input('Address: ')
|
||||
srv_port = input('Port: ')
|
||||
srv_pass = input('Password: ')
|
||||
print('OK\n')
|
||||
print(colored('\n=== Add Server ===','green'))
|
||||
srv_name = input(colored('Name: ','yellow'))
|
||||
srv_addr = input(colored('Address: ','yellow'))
|
||||
srv_port = input(colored('Port: ','yellow'))
|
||||
srv_pass = input(colored('Password: ','yellow'))
|
||||
print(colored('OK\n','green'))
|
||||
new_server = [{"name":srv_name,"address":srv_addr,"port":srv_port,"password":srv_pass}] # Build new dict in array.
|
||||
servers = servers + new_server # Append new array to existing array.
|
||||
write_servers() # Write to the file.
|
||||
|
@ -58,46 +57,47 @@ def create_server():
|
|||
# Used to delete servers from the array and write.
|
||||
def pop_server():
|
||||
global servers # Global so we can write
|
||||
print('\n=== Remove Server ===\nPick a server to delete')
|
||||
list_servers(2) # Lists server ID and Name only.
|
||||
delete = int(input('?: '))
|
||||
print(colored('\n=== Remove Server ===\nPick a server to delete','red'))
|
||||
print(colored(list_servers(2),'light_blue')) # Lists server ID and Name only.
|
||||
delete = int(input(colored('?: ','yellow')))
|
||||
servers.pop(delete)
|
||||
write_servers()
|
||||
|
||||
# Let's send some commands to the servers!
|
||||
def send_commands():
|
||||
proceed=True # Used in while loops to determine if we still want to send more commands.
|
||||
print('\n=== Send commands ===')
|
||||
choice = int(input('Single Server (1) or All (2)?: '))
|
||||
print(colored('\n=== Send commands ===','green'))
|
||||
choice = int(input(colored('Single Server (1) or All (2)?: ','yellow')))
|
||||
if(choice==1): # We only want to interact with one server.
|
||||
list_servers(2) # Show us which servers we can pick from.
|
||||
server = int(input('Server?: '))
|
||||
print(colored(list_servers(2),'light_blue')) # Show us which servers we can pick from.
|
||||
server = int(input(colored('Server?: ','yellow')))
|
||||
while(proceed):
|
||||
command = input('Input command (None to exit): ')
|
||||
command = input(colored('Input command (None to exit): ','yellow'))
|
||||
if(command!=""):
|
||||
with Client(servers[server]['address'], int(servers[server]['port']), passwd=servers[server]['password']) as client:
|
||||
response = client.run(command)
|
||||
|
||||
print(servers[server]['name']+': '+response+'\n')
|
||||
print(colored(servers[server]['name']+': '+response,'cyan'))
|
||||
else:
|
||||
proceed = False
|
||||
print('No command was entered. Exiting.\n')
|
||||
print(colored('No command was entered. Exiting.\n','red'))
|
||||
elif(choice==2):
|
||||
while(proceed):
|
||||
command = input('Input command (None to exit): ')
|
||||
command = input(colored('Input command (None to exit): ','yellow'))
|
||||
for x in servers: # Run for each server.
|
||||
if(command!=""):
|
||||
with Client(x['address'], int(x['port']), passwd=x['password']) as client:
|
||||
response = client.run(command)
|
||||
|
||||
print(x['name']+': '+response+'\n')
|
||||
print(colored(x['name']+': '+response,'cyan'))
|
||||
else:
|
||||
proceed = False
|
||||
print('No command was entered. Exiting.\n')
|
||||
print(colored('No command was entered. Exiting.\n','red'))
|
||||
|
||||
# The main menu.
|
||||
def initial_choice():
|
||||
choose_func = input('=== Choose Function ===\n1. Add servers\n2. Remove servers\n3. List servers\n4. Send commands\n5. Exit\n?: ')
|
||||
print(colored('=== Choose Function ===\n1. Add servers\n2. Remove servers\n3. List servers\n4. Send commands\n5. Exit','green'))
|
||||
choose_func = input(colored("?: ",'yellow'))
|
||||
|
||||
match choose_func:
|
||||
case "1":
|
||||
|
@ -107,7 +107,7 @@ def initial_choice():
|
|||
pop_server()
|
||||
initial_choice()
|
||||
case "3":
|
||||
list_servers()
|
||||
print(colored(list_servers(),'light_blue'))
|
||||
initial_choice()
|
||||
case "4":
|
||||
send_commands()
|
||||
|
@ -115,7 +115,7 @@ def initial_choice():
|
|||
case "5":
|
||||
exit()
|
||||
case _:
|
||||
print("\n!! Invalid input\n")
|
||||
print(colored("\n!! Invalid input\n",'red'))
|
||||
initial_choice()
|
||||
|
||||
load_servers()
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
rcon==2.4.4
|
||||
termcolor==2.4.0
|
Loading…
Reference in a new issue