if ip in valid_ip
проверяет вхождение ip
в списке найденных адресов. Это довольно глупо выглядит. Либо итерируйтесь по возвращаемой коллекции, либо используйте методы для поиска единичного вхождения.192.168
: 192\.168\.\d{1,3}\.\d{1,3}. Для тестирования регулярных выражение удобно использовать regex101.ip = message.text.split()[-1]
valid_ip = re.match(r'192\.168\.\d{1,3}\.\d{1,3}', ip)
if valid_ip is not None:
valid_ip = valid_ip.group()
...
ip_pat = re.compile("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$")
...
def sample_f(msg):
ip = msg.text.split()[-1]
if ip_pat.match(ip) is not None:
do_something()
def query_handler_1(call):
<75 lines of code>
def query_handler_2(call):
<75 lines of code>
@bot.callback_query_handler(func=lambda call: True)
def query_handler(call):
if call.data == "x_logic":
query_handler_1(call)
elif call.data == "y_logic":
query_handler_2(call)
@bot.callback_query_handler(func=lambda call: True)
def query_handler(call):
if call.data == "x_logic":
query_handler1_logic()
elif call.data == "y_logic":
query_handler2_logic()
x = types.InlineKeyboardButton(..., callback_data="x_logic")
y = types.InlineKeyboardButton(..., callback_data="y_logic")
@bot.callback_query_handler(func=lambda call: True)
def query_handler(call):
if call.data == "x_logic":
do_x()
elif call.data == "y_logic":
do_y()
...
<code></code>
для оформления кода.