SELECT id, name, chat_id FROM users
. Названия столбцов укажи свои, и только используемые в данном коде.cur.execute('SELECT id, name FROM users WHERE chat_id = ?', (call.message.chat.id,))
import time
from requests.exceptions import RequestException
while True:
try:
bot.infinity_polling(timeout=10, long_polling_timeout = 5))
except RequestException as err:
print(err)
print('* Connection failed, waiting to reconnect...')
time.sleep(15)
print('* Reconnecting.')
# перечисляешь в списке изображения. цикл остановится на первом найденном.
for image in ['link.png', 'link1.png']:
location = pyautogui.locateOnScreen(image)
if location is not None:
break
else:
image, location = None, None
location is not None
- значит, что-то нашли. Что именно - лежит в image. Где именно - лежит в location.for image in ['link.png', 'link1.png']:
try:
location = pyautogui.locateOnScreen(image)
except pyautogui.ImageNotFoundException:
pass
else:
break
else:
image, location = None, None
@formatter(p1, p2)
def csv_reader(filename, request):
...
def csv_reader(filename, request):
...
_temp = formatter(p1, p2)
csv_reader = _temp(csv_reader)
def formatter(parse_func):
def output_func(*args):
... # тут обращаемся к output_func.p1, например
output_func.p1 = p1
output_func.p2 = p2
return output_func
@formatter
def csv_reader(filename, request):
...
csv_reader.p1 = a1
csv_reader.p2 = a2
data.forEach(function(rowData.name)
data.forEach(function(rowData) { ... }
{ name: 'John', age: 25 }
data.forEach(function(rowData) { console.log(rowData.name); } );
for (let i = 0; i < data.length; i++)
{
console.log(data[i].name);
}
from typing import NamedTuple
class Result(NamedTuple):
text: str # текст запроса
success: bool # успешен ли запрос
status: str # статус
async def check_text(text: str) -> Result:
url = f'https://сайт.com/?query={text}'
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
if response.status != 200:
return Result(text=text, success=False, status='Не удалось определить результат')
html = await response.text()
soup = BeautifulSoup(html, 'html.parser')
status_element = soup.find('div', class_='table-block')
if not status_element:
return Result(text=text, success=False, status='Не удалось определить результат')
status_text = status_element.get_text().strip()
# тебе нужно будет решить, когда запрос был успешен (True), а когда нет (False)
if "ok" in status_text:
return Result(text=text, success=True, status='Можно')
elif "no" in status_text:
return Result(text=text, success=False, status='Данный вариант недоступен')
elif "no1" in status_text:
return Result(text=text, success=True, status='Можно под заказ')
else:
return Result(text=text, success=False, status='Неизвестно')
result = await check_text(text)
if result.success:
... # реагируем на успешный запрос
logger.info('%s: %s', result.text, result.status)
else:
... # реагируем на неудачный запрос
logger.info('%s: %s', result.text, result.status)
@bot.callback_query_handler(func=lambda call: True)
# обрабатываем то, что начинается с 'city.'
@bot.callback_query_handler(func=lambda call: call.data.startswith('city.'))
def callback(call):
city = call.data[len('city.'):] # отрезаем префикс 'city.'
if city == 'istanbul':
bot.send_message(call.message.chat.id,'Вы выбрали город: Стамбул')
elif city == 'moscow':
bot.send_message(call.message.chat.id,'Вы выбрали город: Москва')
else:
bot.send_message(call.message.chat.id,'Я не знаю такого города')
keyboard = types.InlineKeyboardMarkup()
# обрати внимание, callback_data всегда начинается с 'city.'
keyboard.add(types.InlineKeyboardButton('Стамбул', callback_data='city.istanbul'))
keyboard.add(types.InlineKeyboardButton('Москва', callback_data='city.moscow'))