последнее состояние
This commit is contained in:
		
							
								
								
									
										131
									
								
								dodo.py
									
									
									
									
									
								
							
							
						
						
									
										131
									
								
								dodo.py
									
									
									
									
									
								
							| @@ -1,19 +1,22 @@ | |||||||
| #!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||||
| import os | import os | ||||||
| import yaml | import yaml | ||||||
|  | import threading | ||||||
| from pathlib import Path | from pathlib import Path | ||||||
|  |  | ||||||
| home_dir = Path.home() | home_dir = Path.home() | ||||||
| dir_server = f"{home_dir}/ARK_Servers/" | dir_server = f"{home_dir}/ARK_Servers/" | ||||||
| mods_id = [] | mods_id = "" | ||||||
| listen_server = True | listen_server = True | ||||||
|  |  | ||||||
| if not os.path.exists(dir_server): | if not os.path.exists(dir_server): | ||||||
|     os.mkdir(dir_server) |     os.mkdir(dir_server) | ||||||
|  | if not os.path.exists(f"{home_dir}/.config/dodo/"): | ||||||
|  |     os.mkdir(f"{home_dir}/.config/dodo/") | ||||||
|  |  | ||||||
| def yaml_edit(): | def yaml_edit(): | ||||||
|     count_maps = 1 |     count_maps = 1 | ||||||
|  |     map_server = [] | ||||||
|     print("""Укажите требуется ли кластер? |     print("""Укажите требуется ли кластер? | ||||||
|     1. Да |     1. Да | ||||||
|     2. Нет""") |     2. Нет""") | ||||||
| @@ -27,7 +30,7 @@ def yaml_edit(): | |||||||
|         if count_maps.isdigit: |         if count_maps.isdigit: | ||||||
|             break |             break | ||||||
|         print("Введите цифры") |         print("Введите цифры") | ||||||
|     for i in range(1, int(count_maps) + 1): |     for i in range(int(count_maps)): | ||||||
|         print("""Выберите карту из списка указав номер |         print("""Выберите карту из списка указав номер | ||||||
|         1. The Island |         1. The Island | ||||||
|         2. The Center |         2. The Center | ||||||
| @@ -43,30 +46,29 @@ def yaml_edit(): | |||||||
|         12. Fjordur""") |         12. Fjordur""") | ||||||
|         amount_map = input("") |         amount_map = input("") | ||||||
|         if amount_map == "1": |         if amount_map == "1": | ||||||
|             map_server = "TheIsland" |             map_server.append("TheIsland") | ||||||
|         elif amount_map == "2": |         elif amount_map == "2": | ||||||
|             map_server = "TheCenter" |             map_server.append("TheCenter") | ||||||
|         elif amount_map == "3": |         elif amount_map == "3": | ||||||
|             map_server = "ScorchedEarth_P" |             map_server.append("ScorchedEarth_P") | ||||||
|         elif amount_map == "4": |         elif amount_map == "4": | ||||||
|             map_server = "Ragnarok" |             map_server.append("Ragnarok") | ||||||
|         elif amount_map == "5": |         elif amount_map == "5": | ||||||
|             map_server = "Aberration_P" |             map_server.append("Aberration_P") | ||||||
|         elif amount_map == "6": |         elif amount_map == "6": | ||||||
|             map_server = "Extinction" |             map_server.append("Extinction") | ||||||
|         elif amount_map == "7": |         elif amount_map == "7": | ||||||
|             map_server = "Valguero_P" |             map_server.append("Valguero_P") | ||||||
|         elif amount_map == "8": |         elif amount_map == "8": | ||||||
|             map_server = "Genesis" |             map_server.append("Genesis") | ||||||
|         elif amount_map == "9": |         elif amount_map == "9": | ||||||
|             map_server = "CrystalIsles" |             map_server.append("CrystalIsles") | ||||||
|         elif amount_map == "10": |         elif amount_map == "10": | ||||||
|             map_server = "Gen2" |             map_server.append("Gen2") | ||||||
|         elif amount_map == "11": |         elif amount_map == "11": | ||||||
|             map_server = "LostIsland" |             map_server.append("LostIsland") | ||||||
|         elif amount_map == "12": |         elif amount_map == "12": | ||||||
|             map_server = "Fjordur" |             map_server.append("Fjordur") | ||||||
|             print("Введите цифры") |  | ||||||
|         print("Укажите название Сервера") |         print("Укажите название Сервера") | ||||||
|         name_server = input("") |         name_server = input("") | ||||||
|  |  | ||||||
| @@ -83,65 +85,74 @@ def yaml_edit(): | |||||||
|         max_players = input("") |         max_players = input("") | ||||||
|  |  | ||||||
|         yaml_create(cluster_server, map_server, name_server, port_server, query_port, password_server, max_players) |         yaml_create(cluster_server, map_server, name_server, port_server, query_port, password_server, max_players) | ||||||
|         return cluster_server, map_server, name_server, port_server, query_port, password_server, max_players |     return cluster_server, map_server, name_server, port_server, query_port, password_server, max_players, count_maps | ||||||
|  |  | ||||||
|  |  | ||||||
| def yaml_create(cluster_server, map_server, name_server, port_server, query_port, password_server, max_players): | def yaml_create(cluster_server, map_server, name_server, port_server, query_port, password_server, max_players): | ||||||
|     if not os.path.exists(f"{home_dir}/.config/dodo/"): |  | ||||||
|         os.mkdir(f"{home_dir}/.config/dodo/") |  | ||||||
|     settings_dodo = [ |     settings_dodo = [ | ||||||
|         { |         { | ||||||
|             'Cluster' : f"{cluster_server}", |             'Cluster' : cluster_server, | ||||||
|             'Map' : f"{map_server}", |             'Map' : map_server, | ||||||
|             'SessionName' : f"{name_server}", |             'SessionName' : name_server, | ||||||
|             'Port' : f"{port_server}", |             'Port' : port_server, | ||||||
|             'QueryPort' : f"{query_port}", |             'QueryPort' : query_port, | ||||||
|             'ServerPassword' : f"{password_server}", |             'ServerPassword' : password_server, | ||||||
|             'MaxPlayers' : f"{max_players}", |             'MaxPlayers' : max_players, | ||||||
|             'ModsId' : f"{mods_id}", |             'ModsId' : mods_id, | ||||||
|             'Listen' : f"{listen_server}", |             'Listen' : listen_server, | ||||||
|             'ServerPath' : f"{dir_server}" |             'ServerPath' : dir_server | ||||||
|         } |         } | ||||||
|  |  | ||||||
|     ] |     ] | ||||||
|     with open(f"{home_dir}/.config/dodo/{map_server}.yaml", 'w') as yamlfile: |     with open(f"{home_dir}/.config/dodo/{map_server[-1]}.yaml", 'w') as yamlfile: | ||||||
|         data = yaml.dump(settings_dodo, yamlfile) |         data = yaml.dump(settings_dodo, yamlfile) | ||||||
|  |         print(data) | ||||||
|         print("Конфиг создан") |         print("Конфиг создан") | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def install(map_server): | ||||||
|  |     for i in map_server: | ||||||
|  |         cluster_server, name_server, port_server, query_port, password_server, max_players, dir_server, mods_id, listen_server = read_yaml(i) | ||||||
|  |         if not os.path.isdir(dir_server + i): | ||||||
|  |             os.mkdir(dir_server + i) | ||||||
|  |             print("-"*20) | ||||||
|  |             print("Качаем карту " + i) | ||||||
|  |             print("-"*20) | ||||||
|  |             os.system(f"steamcmd +force_install_dir {dir_server + i} +login anonymous +app_update 376030 +quit") | ||||||
|  |         print("-"*20) | ||||||
|  |         print(i) | ||||||
|  |         print("-"*20) | ||||||
|  |         def start(): | ||||||
|  |             os.chdir(dir_server + i + "/" + "ShooterGame/Binaries/Linux/") | ||||||
|  |             os.system(f"./ShooterGameServer {i}?SessionName={name_server}?Port={port_server}?QueryPort={query_port}?MaxPlayers={max_players}?GameModIds={mods_id}?listen={listen_server}") | ||||||
|  |             print("-"*20) | ||||||
|  |             print("server " +i + " Запустился") | ||||||
|  |             print("-"*20) | ||||||
|  |         threads = threading.Thread(target=start, args=(map_server,)) | ||||||
|  |         threads.start() | ||||||
|  |  | ||||||
|  |  | ||||||
| def read_yaml(map_server): | def read_yaml(map_server): | ||||||
|     print("начало read"  "map_server") |     print(map_server) | ||||||
|     with open(f"{home_dir}/.config/dodo/{map_server}.yaml", "r") as yamlfile: |     with open(f"{home_dir}/.config/dodo/{map_server}.yaml", "r") as yamlfile: | ||||||
|         data = yaml.load(yamlfile, Loader=yaml.FullLoader) |         data = yaml.load(yamlfile, Loader=yaml.FullLoader) | ||||||
|         map_server = 'data.Map' |         data = data[0] | ||||||
|         dir_server = 'data.ServerPath' |         print("-"*20) | ||||||
|         name_server = 'data.SessionName' |  | ||||||
|         port_server = 'data.Port' |  | ||||||
|         query_port = 'data.QueryPort' |  | ||||||
|         password_server = 'data.ServerPassword' |  | ||||||
|         max_players = 'data.MaxPlayers' |  | ||||||
|         mods_id = 'data.ModsId' |  | ||||||
|         listen_server = 'data.Listen' |  | ||||||
|         cluster_server = 'data.Cluster' |  | ||||||
|         print(data) |         print(data) | ||||||
|         print("конец read"  "map_server") |         print(type(data)) | ||||||
|     return cluster_server, map_server, name_server, port_server, query_port, password_server, dir_server, max_players, mods_id, |         print("-"*20) | ||||||
|  |         #map_server = data['Map'] | ||||||
|  |         dir_server = data['ServerPath'] | ||||||
|  |         name_server = data['SessionName'] | ||||||
|  |         port_server = data['Port'] | ||||||
|  |         query_port = data['QueryPort'] | ||||||
|  |         password_server = data['ServerPassword'] | ||||||
|  |         max_players = data['MaxPlayers'] | ||||||
|  |         mods_id = data['ModsId'] | ||||||
|  |         listen_server = data['Listen'] | ||||||
|  |         cluster_server = data['Cluster'] | ||||||
|  |     return cluster_server, name_server, port_server, query_port, password_server, max_players, dir_server, mods_id, listen_server | ||||||
|  |  | ||||||
|  |  | ||||||
| def install(): | cluster_server, map_server, name_server, port_server, query_port, password_server, max_players, count_maps = yaml_edit() | ||||||
|     read_yaml(map_server) |  | ||||||
|     if not os.path.isdir(dir_server + map_server): |  | ||||||
|         os.mkdir(dir_server + map_server) |  | ||||||
|     else: |  | ||||||
|         os.system(f"steamcmd +force_install_dir {dir_server + map_server} +login anonymous +app_update 376030 +quit") |  | ||||||
|  |  | ||||||
|  | install(map_server) | ||||||
| def start(): |  | ||||||
|     read_yaml(map_server) |  | ||||||
|     os.chdir(dir_server + map_server + "/" + "ShooterGame/Binaries/Linux/") |  | ||||||
|     os.system(f"./ShooterGameServer {map_server}?SessionName={name_server}?Port={port_server}?QueryPort={query_port}?MaxPlayers={max_players}?GameModIds={mods_id}?listen={listen_server}") |  | ||||||
|  |  | ||||||
|  |  | ||||||
| cluster_server, map_server, name_server, port_server, query_port, password_server, max_players = yaml_edit() |  | ||||||
| install() |  | ||||||
| start() |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user