Если покупать нормальный, белый, статический IP, то только будучи юр лицом
Использовать VPN + VPS. Я этот способ рассматриваю как костыль.
если к примеру в корзине 2 товара, то и сообщения 2, а такого быть не должно.
sendMessageTg
for item in cart:
...
sendMessageTg(order_item)
instance = kwargs['instance']
.[f'{instance.post.author.email}']
import telebot
from telebot import types
import threading
import time
bot = telebot.TeleBot("token")
clicked = False
timeout = 10 # Секунд
def run_in_thread(func):
def wrapper(*args, **kwargs):
thread = threading.Thread(target=func, args=args, kwargs=kwargs)
thread.start()
return wrapper
@run_in_thread
def asynchronous():
global clicked
while True:
if clicked:
time.sleep(timeout)
clicked = False
@bot.message_handler(commands=["start"])
def start(message):
markup = types.InlineKeyboardMarkup()
hello_button = types.InlineKeyboardButton(text="Показать процессоры", callback_data="cpu")
markup.add(hello_button)
bot.send_message(message.chat.id, "Здравствуйте, %s!" % (f"[{message.from_user.first_name}](tg://user?id={message.from_user.id})"), parse_mode="markdown", reply_markup=markup)
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
global clicked
if clicked:
bot.answer_callback_query(call.id, "Попробуйте снова через 10 секунд!", show_alert=True)
return
if call.data == "cpu":
clicked = True
bot.send_message(call.from_user.id, "Процессоры..")
if __name__ == "__main__":
asynchronous()
bot.polling(none_stop=True, interval=0)
def get_source_html(url):
chrome_options = Options()
driver = Service(executable_path="C:\\webdrivers\\chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options)
driver.maximize_window()
try:
driver.get(url=url)
time.sleep(3)
while True:
find_more_element = driver.find_element(
By.CLASS_NAME, "catalog-button-showMore")
if driver.find_elements(By.CLASS_NAME, "hasmore-text"):
with open("lesson6/source-page.html", "w") as file:
file.write(driver.page_source)
break
else:
actions = ActionChains(driver)
actions.move_to_element(find_more_element).perform()
time.sleep(3)
except Exception as ex:
print(ex)
finally:
driver.close()
driver.quit()