paths = []
def obxodFile(path, level=1):
global paths
# print('Level=', level)
if os.path.exists(path + "/log.txt"):
paths.append(str(path))
for i in os.listdir(path):
if os.path.isdir(path + "/" + i):
# print('Спускаемся', path + '/' + i)
obxodFile(path + "/" + i, level + 1)
# print('Возвращаемся в', path)
$(function() {
$('a').click(function(event) {
event.preventDefault(); // Отменяет переход по ссылке
var url = $(this).attr('href');
$(".loader_inner").fadeIn();
$(".loader").fadeIn();
setTimeout(function() {
window.location.href = url; // Переход по ссылке после отображения прелоадера
}, 400); // Задержка, чтобы прелоадер успел отобразиться
});
});
$(window).on('load', function() {
$(".loader_inner").fadeOut();
$(".loader").delay(400).fadeOut("slow");
});
Traceback (most recent call last):
dockertest-bot-1 | File "/app/bot.py", line 65, in <module>
dockertest-bot-1 | start_webhook(
dockertest-bot-1 | File "/usr/local/lib/python3.11/site-packages/aiogram/utils/executor.py", line 108, in start_webhook
dockertest-bot-1 | executor.run_app(**kwargs)
dockertest-bot-1 | File "/usr/local/lib/python3.11/site-packages/aiogram/utils/executor.py", line 292, in run_app
dockertest-bot-1 | web.run_app(self._web_app, **kwargs)
dockertest-bot-1 | File "/usr/local/lib/python3.11/site-packages/aiohttp/web.py", line 516, in run_app
dockertest-bot-1 | loop.run_until_complete(main_task)
dockertest-bot-1 | File "/usr/local/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
dockertest-bot-1 | return future.result()
dockertest-bot-1 | ^^^^^^^^^^^^^^^
dockertest-bot-1 | File "/usr/local/lib/python3.11/site-packages/aiohttp/web.py", line 415, in _run_app
dockertest-bot-1 | await site.start()
dockertest-bot-1 | File "/usr/local/lib/python3.11/site-packages/aiohttp/web_runner.py", line 121, in start
dockertest-bot-1 | self._server = await loop.create_server(
dockertest-bot-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^
dockertest-bot-1 | File "/usr/local/lib/python3.11/asyncio/base_events.py", line 1525, in create_server
dockertest-bot-1 | raise OSError(err.errno, 'error while attempting '
dockertest-bot-1 | OSError: [Errno 99] error while attempting to bind on address ('::1', 5000, 0, 0): cannot assign requested address
import os
from pyngrok import ngrok
from aiogram import Bot, types
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram.dispatcher import Dispatcher
from aiogram.dispatcher.webhook import SendMessage
from aiogram.utils.executor import start_webhook
import logging
# подключение к серверу NGROK
ngrok.set_auth_token(os.getenv('NGROK_TOKEN'))
http_tunnel = ngrok.connect(5000, bind_tls=True)
# webhook settings
WEBHOOK_HOST = http_tunnel.public_url
WEBHOOK_PATH = ''
WEBHOOK_URL = f"{WEBHOOK_HOST}{WEBHOOK_PATH}"
print(http_tunnel.public_url)
# webserver settings
WEBAPP_HOST = 'localhost' # or ip
WEBAPP_PORT = 5000
logging.basicConfig(level=logging.INFO)
bot = Bot(os.getenv('TG_TOKEN'))
dp = Dispatcher(bot)
dp.middleware.setup(LoggingMiddleware())
@dp.message_handler()
async def echo(message: types.Message):
# Regular request
# await bot.send_message(message.chat.id, message.text)
# or reply INTO webhook
return SendMessage(message.chat.id, message.text)
### Запуск бота
async def on_startup(dp):
await bot.set_webhook(WEBHOOK_URL)
# insert code here to run it after start
### Остановка бота
async def on_shutdown(dp):
logging.warning('Shutting down..')
# insert code here to run it before shutdown
# Remove webhook (not acceptable in some cases)
await bot.delete_webhook()
# Close DB connection (if used)
await dp.storage.close()
await dp.storage.wait_closed()
ngrok.disconnect(http_tunnel.public_url)
logging.warning('Bye!')
if __name__ == '__main__':
start_webhook(
dispatcher=dp,
webhook_path=WEBHOOK_PATH,
on_startup=on_startup,
on_shutdown=on_shutdown,
skip_updates=True,
host=WEBAPP_HOST,
port=WEBAPP_PORT,
)
version: '3.7'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
#MYSQL_USER: db_user
#MYSQL_PASSWORD: db_user_pass
ports:
- "6033:3306"
restart: on-failure
volumes:
- dbdata:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- db
environment:
PMA_HOST: db
PMA_PORT: 3306
PMA_ARBITRARY: 1
restart: on-failure
ports:
- 8081:80
bot:
build: .
command: sh -c "python bot.py"
depends_on:
- db
- phpmyadmin
env_file:
- ./.env
volumes:
dbdata:
#импорты
ngrok.set_auth_token(NGROK_TOKEN)
http_tunnel = ngrok.connect(5000, bind_tls=True)
# webhook settings
WEBHOOK_HOST = http_tunnel.public_url
WEBHOOK_PATH = ''
WEBHOOK_URL = f"{WEBHOOK_HOST}{WEBHOOK_PATH}"
# webserver settings
WEBAPP_HOST = 'localhost' # or ip
WEBAPP_PORT = 5000
# Настройки логирования
now = datetime.datetime.now()
file_log = logging.FileHandler('./logs/{}-{}.log'.format(now.strftime("%Y-%m-%d"), now.strftime("%H:%M:%S")))
console_out = logging.StreamHandler()
logging.basicConfig(handlers=(file_log, console_out), format=u'%(filename)+13s [ LINE:%(lineno)-4s] %(levelname)-8s [%(asctime)s] %(message)s', level=logging.DEBUG)
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot, storage=MemoryStorage())
dp.middleware.setup(LoggingMiddleware())
@dp.message_handler(commands=['buy'])
async def command(message: types.Message):
await message.delete() # удаляем сообщение, на которое поступил ответ
if not RANSOM:
############
else:
data = message.get_args().split(' ')
await message.answer('Ожидайте...')
await asyncio.sleep(20)
### Запуск бота
async def on_startup(dp):
await bot.set_webhook(WEBHOOK_URL)
# insert code here to run it after start
### Остановка бота
async def on_shutdown(dp):
logging.warning('Shutting down..')
# insert code here to run it before shutdown
# Remove webhook (not acceptable in some cases)
await bot.delete_webhook()
# Close DB connection (if used)
await dp.storage.close()
await dp.storage.wait_closed()
ngrok.disconnect(http_tunnel.public_url)
logging.warning('Bye!')
if __name__ == '__main__':
start_webhook(
dispatcher=dp,
webhook_path=WEBHOOK_PATH,
on_startup=on_startup,
on_shutdown=on_shutdown,
skip_updates=True,
host=WEBAPP_HOST,
port=WEBAPP_PORT,
)