From 9faf10a493b3d0780f45aed66ee70c31af0d70d3 Mon Sep 17 00:00:00 2001 From: xpamych Date: Thu, 16 Feb 2023 20:31:19 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BE=D1=87=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 111.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 111.py diff --git a/111.py b/111.py deleted file mode 100644 index e69de29..0000000 From cf8c255419f69f2c3b627904795e6955914991fc Mon Sep 17 00:00:00 2001 From: xpamych Date: Sun, 19 Feb 2023 17:32:52 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B8=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5,=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B0=20=D0=BD=D0=B0=D0=B4=20=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dodo-bot.py | 50 -------------------- dodo.py => hlna.py | 34 ++++++++------ hlna_bot.py | 113 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+), 65 deletions(-) delete mode 100644 dodo-bot.py rename dodo.py => hlna.py (93%) create mode 100755 hlna_bot.py diff --git a/dodo-bot.py b/dodo-bot.py deleted file mode 100644 index 23b9cb3..0000000 --- a/dodo-bot.py +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env python3 -import time - -import telebot -from telebot import types - -key_api = input("Укажите ключ бота") -dodo_bot = telebot.Telebot(f"{key_api}", parse_mode=None) - - -@bot.message_handler(commans=['start', 'help']) -def start_bot(message): - bot.reply_to(message, message.text) - - -@bot.message_handler(content_types=['text']) -def menu(a): - if a.text == "Inline_menu": - mainmenu = types.InlineKeyboardMarkup() - key1 = types.InlineKeyboardButton(text='Кнопка 1', callback_data='key1') - key2 = types.InlineKeyboardButton(text='Кнопка 2', callback_data='key2') - mainmenu.add(key1, key2) - bot.send_message(a.chat.id, 'Это главное меню!', reply_markup=mainmenu) - - -@bot.callback_query_handler(func=lambda call: True) -def back(call): - if call.data == "mainmenu": - mainmenu = types.InlineKeyboardMarkup() - key1 = types.InlineKeyboardButton(text='Кнопка 1', callback_data='key1') - key2 = types.InlineKeyboardButton(text='Кнопка 2', callback_data='key2') - mainmenu.add(key1, key2) - bot.edit_message_reply_markup(call.message.chat.id, call.message.message_id, reply_markup=mainmenu) - elif call.data == "key1": - next_menu = types.InlineKeyboardMarkup() - key3 = types.InlineKeyboardButton(text='Кнопка 3', callback_data='key3') - back = types.InlineKeyboardButton(text='Назад', callback_data='mainmenu') - next_menu.add(key3, back) - bot.edit_message_text('Это меню уровня 2, для кнопки1!', call.message.chat.id, call.message.message_id, - reply_markup=next_menu) - elif call.data == "key2": - next_menu2 = types.InlineKeyboardMarkup() - key4 = types.InlineKeyboardButton(text='Кнопка 4', callback_data='key4') - back = types.InlineKeyboardButton(text='Назад', callback_data='mainmenu') - next_menu2.add(key4, back) - bot.edit_message_text('Это меню уровня 2, для кнопки2!', call.message.chat.id, call.message.message_id, - reply_markup=next_menu2) - - -bot.polling() \ No newline at end of file diff --git a/dodo.py b/hlna.py similarity index 93% rename from dodo.py rename to hlna.py index 51158ef..610e5cf 100755 --- a/dodo.py +++ b/hlna.py @@ -9,15 +9,17 @@ import colorama home_dir = Path.home() dir_server = f"{home_dir}/ARK_Servers/" -config_dodo = f"{home_dir}/.config/dodo/" +config_hlna = f"{home_dir}/.config/hlna/" mods_id = "" listen_server = True + @click.group() -def dodo(): +def hlna(): pass -list_config = next(os.walk(config_dodo), (None, None, []))[2] # [] if no file + +list_config = next(os.walk(config_hlna), (None, None, []))[2] # [] if no file x = list_config.count('.directory') if x>0: list_config.remove('.directory') @@ -52,15 +54,15 @@ def check_int(number=""): create_dir(dir_server) -create_dir(config_dodo) +create_dir(config_hlna) -@dodo.command(help='Для конфигурирования параметров запускаемого сервера или кластера серверов') +@hlna.command(help='Для конфигурирования параметров запускаемого сервера или кластера серверов') def config(map_server=list_config): query_p = [] port_s = [] for i in map_server: - with open(f"{home_dir}/.config/dodo/{i}", "r") as yamlfile: + with open(f"{home_dir}/.config/hlna/{i}", "r") as yamlfile: data = yaml.load(yamlfile, Loader=yaml.FullLoader) data = data[0] port_s.append(data['Port']) @@ -175,7 +177,7 @@ def config(map_server=list_config): def yaml_create(cluster_server, map_server, name_server, port_server, query_port, password_server, max_players, cluster_id, cluster_dir_override): - settings_dodo = [ + settings_hlna = [ { 'Cluster' : cluster_server, 'SessionName' : name_server, @@ -191,12 +193,14 @@ def yaml_create(cluster_server, map_server, name_server, port_server, query_port print(cluster_id) if cluster_id != None: - settings_dodo[0]['clusterid'] = cluster_id - settings_dodo[0]['clusterdir'] = cluster_dir_override - with open(config_dodo + f"{map_server[-1]}", 'w') as yamlfile: - data = yaml.dump(settings_dodo, yamlfile) + settings_hlna[0]['clusterid'] = cluster_id + settings_hlna[0]['clusterdir'] = cluster_dir_override + with open(config_hlna + f"{map_server[-1]}", 'w') as yamlfile: + data = yaml.dump(settings_hlna, yamlfile) print(colorama.Fore.GREEN + "Конфиг создан" + colorama.Style.RESET_ALL) -@dodo.command() + + +@hlna.command() def servers(map_servers=list_config): if map_servers==[]: print("Сервера не установлены") @@ -216,7 +220,7 @@ def servers(map_servers=list_config): print("\n") -@dodo.command(help='Для запуска, сконфигурированного сервера или кластера') +@hlna.command(help='Для запуска, сконфигурированного сервера или кластера') def start(map_server=list_config): map_choise = [] while True: @@ -256,7 +260,7 @@ def start(map_server=list_config): def read_yaml(map_server): - with open(f"{home_dir}/.config/dodo/{map_server}", "r") as yamlfile: + with open(f"{home_dir}/.config/hlna/{map_server}", "r") as yamlfile: data = yaml.load(yamlfile, Loader=yaml.FullLoader) data = data[0] dir_server = data['ServerPath'] @@ -276,4 +280,4 @@ def read_yaml(map_server): if __name__ == '__main__': - dodo() + hlna() diff --git a/hlna_bot.py b/hlna_bot.py new file mode 100755 index 0000000..8123bc3 --- /dev/null +++ b/hlna_bot.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python3 +import time +import os +import telebot +from telebot import types + +import hlna + +key_api = "6192661772:AAHB1dw4rXHOglgyTOpcsxwvLn4d3AKkvP4" +#key_api = input("Укажите ключ бота") +hlna_bot = telebot.TeleBot(f"{key_api}", parse_mode=None) +map_server = hlna.list_config + + +@hlna_bot.message_handler(commands=["start"]) +def start(m): + menu = types.ReplyKeyboardMarkup(resize_keyboard=True) + k_start = types.KeyboardButton("🦖 Старт") + k_stop = types.KeyboardButton("🦇 Выключить") + menu.add(k_start, k_stop) + + k_restart = types.KeyboardButton("🦕 Перезагрузить") + k_update = types.KeyboardButton("🔸 Обновить") + menu.add(k_restart, k_update) + + k_status = types.KeyboardButton("🧾 Статус") + menu.add(k_status) + + k_mods = types.KeyboardButton("⏬ Установка модов") + menu.add(k_mods) + + hlna_bot.send_message(m.chat.id, text="Привет, {0.first_name}! Это панель управления сервером".format(m.from_user), + reply_markup=menu) + + +@hlna_bot.message_handler(content_types=["text"]) +def m_chose(m): + if m.text.strip() == '🦖 Старт': + if map_server == []: + hlna_bot.send_message(m.chat.id, text="{0.first_name}, ниодна карта не установлена".format(m.from_user)) + else: + menu_start = types.ReplyKeyboardMarkup(resize_keyboard=True) + for i in map_server: + k_mapname = types.KeyboardButton(f"{i}") + menu_start.add(k_mapname) + k_back = types.KeyboardButton("Назад") + menu_start.add(k_back) + hlna_bot.send_message(m.chat.id, text="{0.first_name}, выбери карту".format(m.from_user), reply_markup=menu_start) + elif m.text.strip() == 'Назад': + hlna_bot.register_next_step_handler(m, start) + elif m.text.strip() == 'TheIsland': + hlna.start() +#def m_start(m): + # print("Start") + # + +# subprocess.run(["arkmanager", "start", "--alwaysrestart", "@all"]) +# elif m.text.strip() == '🦇 Выключить': +# subprocess.run(["arkmanager", "stop", "@all"]) +# elif m.text.strip() == '🦕 Перезагрузить': +# subprocess.run(["arkmanager","restart", "--alwaysrestart", "--warn", "@all"]) +# elif (m.text.strip() == '🔸 Обновить'): +# subprocess.run(["arkmanager", "update", "--update-mods", "@all"]) +# elif (m.text.strip() == '🧾 Статус'): +# x = os.system("lsof -w -i :7777") +# if x!=0: +# bot.send_message(m.chat.id, text="Сервер не работает 🛑".format( +# m.from_user)) +# else: +# bot.send_message(m.chat.id, text="Сервер работает 🟢".format( +# m.from_user)) +# +# elif (m.text.strip() == '⏬ Установка модов'): +# bot.send_message(m.from_user.id, "Введите id модификации") +# bot.register_next_step_handler(m, mods) +# else: +# pass +# else: +# if m.text.strip() == 'Zxx843Aj': +# th = Thread(target=check, args=(m,)) +# th.start() +# id.append(m.chat.id) +# bot.send_message(m.chat.id, text="{0.first_name} вы авторизованы, нажмите /start для работы с ботом".format(m.from_user)) +# return id +# def mods(m): +# id = m.text.strip() +# subprocess.run(["arkmanager", "installmods", id, "@all"]) +# subprocess.run(["arkmanager", "enablemod", id, "@all"]) +# def check(m): +# +# while True: +# x = os.system("lsof -w -i :7777") +# if x!=0: +# bot.send_message(m.chat.id, text="Сервер не работает 🛑".format( +# m.from_user)) +# bot.send_message(-1001585320535,text="Сервер не работает 🛑".format( +# m.from_user),reply_markup=types.ReplyKeyboardRemove()) +# +# while x!=0: +# time.sleep(5) +# x = os.system("lsof -w -i :7778") +# bot.send_message(m.chat.id, text="Сервер запустился 🟢".format( +# m.from_user)) +# bot.send_message(-1001585320535,text="Сервер запустился 🟢".format( +# m.from_user)) +# +# elif x == 0: +# time.sleep(30) +# pass + +print("Bot starting") +hlna_bot.polling(none_stop=True, interval=0, timeout=999) + From 0a95e56a2c5809fb01209f989f69d309d065021e Mon Sep 17 00:00:00 2001 From: xpamych Date: Sun, 19 Feb 2023 18:13:32 +0300 Subject: [PATCH 3/5] fix m_start --- hlna.py | 2 +- hlna_bot.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hlna.py b/hlna.py index 610e5cf..76a54a6 100755 --- a/hlna.py +++ b/hlna.py @@ -241,7 +241,6 @@ def start(map_server=list_config): except: print("Неправильный ввод") - for j in str(map_list): map_choise.append(map_server[int(j) - 1]) map_server = map_choise @@ -252,6 +251,7 @@ def start(map_server=list_config): print_line("Качаем карту: " + i) os.system(f"steamcmd +force_install_dir {dir_server + i} +login anonymous +app_update 376030 +quit") print_line("Карта скачана: " + i) + def start(i): 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} -clusterid={cluster_id} -ClusterDirOverride={cluster_dir_ovverride}") diff --git a/hlna_bot.py b/hlna_bot.py index 8123bc3..242c2ca 100755 --- a/hlna_bot.py +++ b/hlna_bot.py @@ -13,7 +13,7 @@ map_server = hlna.list_config @hlna_bot.message_handler(commands=["start"]) -def start(m): +def m_start(m): menu = types.ReplyKeyboardMarkup(resize_keyboard=True) k_start = types.KeyboardButton("🦖 Старт") k_stop = types.KeyboardButton("🦇 Выключить") @@ -47,7 +47,7 @@ def m_chose(m): menu_start.add(k_back) hlna_bot.send_message(m.chat.id, text="{0.first_name}, выбери карту".format(m.from_user), reply_markup=menu_start) elif m.text.strip() == 'Назад': - hlna_bot.register_next_step_handler(m, start) + m_start(m) elif m.text.strip() == 'TheIsland': hlna.start() #def m_start(m): From 31ccc7ff2b97384a02aa3c6fc15ce7a0b189e595 Mon Sep 17 00:00:00 2001 From: xpamych Date: Sun, 19 Feb 2023 18:36:02 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=B2=D1=8B=D0=B1=D0=BE=D1=80=20=D0=BD=D0=BE?= =?UTF-8?q?=D0=BC=D0=B5=D1=80=D0=BE=D0=B2=20=D0=BA=D0=B0=D1=80=D1=82=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=20=D1=81=D1=82=D0=B0=D1=80=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hlna.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/hlna.py b/hlna.py index 76a54a6..450cc99 100755 --- a/hlna.py +++ b/hlna.py @@ -201,11 +201,11 @@ def yaml_create(cluster_server, map_server, name_server, port_server, query_port @hlna.command() -def servers(map_servers=list_config): - if map_servers==[]: +def servers(map_server=list_config): + if map_server==[]: print("Сервера не установлены") else: - for i in map_servers: + for i in map_server: cluster_server, name_server, port_server, query_port, password_server, max_players, dir_server, mods_id, listen_server, cluster_id, cluster_dir_ovverride = read_yaml(i) print(f""" Сервер: {i} @@ -240,8 +240,9 @@ def start(map_server=list_config): break except: print("Неправильный ввод") - - for j in str(map_list): + print_line(map_list) + for j in map_list: + print_line(j) map_choise.append(map_server[int(j) - 1]) map_server = map_choise From 30ee2fcdc510d3cf91c0f85b26fb516040d83e5e Mon Sep 17 00:00:00 2001 From: xpamych Date: Mon, 20 Feb 2023 10:38:15 +0300 Subject: [PATCH 5/5] . --- hlna_bot.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hlna_bot.py b/hlna_bot.py index 242c2ca..f470de7 100755 --- a/hlna_bot.py +++ b/hlna_bot.py @@ -6,8 +6,8 @@ from telebot import types import hlna -key_api = "6192661772:AAHB1dw4rXHOglgyTOpcsxwvLn4d3AKkvP4" -#key_api = input("Укажите ключ бота") + +key_api = input("Укажите ключ бота") hlna_bot = telebot.TeleBot(f"{key_api}", parse_mode=None) map_server = hlna.list_config