version: '3'
services:
wg-easy:
image: weejewel/wg-easy
container_name: wg-easy
volumes:
- ./wg-easy:/etc/wireguard
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- WG_HOST=your_server_ip
- PASSWORD=your_password
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
byedpi:
image: bol-van/zapret:latest
container_name: byedpi
network_mode: "host"
cap_add:
- NET_ADMIN
volumes:
- /dev/net/tun:/dev/net/tun
environment:
- WORKER=3 # Количество рабочих процессов
- MODE=desktop
restart: unless-stopped
shadowsocks:
image: shadowsocks/shadowsocks-libev
container_name: shadowsocks
ports:
- "8388:8388"
environment:
- METHOD=aes-256-gcm
- PASSWORD=your_ss_password
restart: unless-stopped
# Перенаправление трафика с WireGuard на ByeDPI
iptables -t nat -A PREROUTING -i wg0 -p tcp -j REDIRECT --to-port 8118
# Если используется Shadowsocks вместо ByeDPI
iptables -t nat -A PREROUTING -i wg0 -p tcp -j REDIRECT --to-port 8388
from telegram.ext import Application, CommandHandler, CallbackContext
from telegram import Update
import requests
from bs4 import BeautifulSoup
import time
import logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
CHANNEL_IDS = ['UCvuY904el7JvBlPbdqbfguw','UC_hPYclmFCIENpMUHpPY8FQ', 'UC_hPYclmFCIENpMUHpPY8FQ'] # Сюда нужно ввести идентификаторы каналов
latest_videos = {}
async def start(update: Update, context: CallbackContext):
await update.message.reply_text('Привет! Я буду оповещать тебя о новых видео с выбранных тобой каналов.')
def check_new_videos(context: CallbackContext):
for channel_id in CHANNEL_IDS:
url = f'https://www.youtube.com/feeds/videos.xml?channel_id={
channel_id}'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'xml')
entry = soup.find('entry')
if entry:
video_id = entry.find('yt:videoId').text
if latest_videos.get(channel_id) != video_id:
latest_videos[channel_id] = video_id
video_title = entry.find('title').text
message = f'Новое видео: {
video_title}nСсылка: https://www.youtube.com/watch?v={video_id}'
context.bot.send_message(
chat_id=context.job.context, text=message)
time.sleep(1)
async def subscribe(update: Update, context: CallbackContext):
chat_id = update.message.chat_id
context.job_queue.run_repeating(
check_new_videos, interval=5, first=0, chat_id=chat_id)
await update.message.reply_text('Вы подписались на уведомления о новых видео.')
if __name__ == '__main__':
application = Application.builder().token(__import__('os').getenv('TOKEN')).build() # Переделанный токен для телеграм бота через переменную окружения
application.add_handler(CommandHandler('start', start))
application.add_handler(CommandHandler('subscribe', subscribe))
application.run_polling()
import numba
from numba import njit, prange
from typing import Tuple
import numpy as np
from functools import lru_cache
@lru_cache(maxsize=256)
@numba.njit(parallel=True, fastmath=True, error_model='numpy')
def four_squares(n: np.int64) -> Tuple[np.int64, np.int64, np.int64, np.float64]:
for a in prange(np.float64(n**0.5) + 1):
for b in prange(np.float64((n - a**2)**0.5) + 1):
for c in prange(np.float64((n - a**2 - b**2)**0.5) + 1):
d = np.float64(np.round((n - a**2 - b**2 - c**2)**0.5))
if a**2 + b**2 + c**2 + d**2 == n:
return a, b, c, d
return np.int64(0), np.int64(0), np.int64(0), np.float64(0)
def main() -> None:
for i in [0, 1, 17, 33, 215, 333, 2**12-3, 1234567890, 1_313_546_885_799_053_312]:
a, b, c, d = four_squares(i)
error_msg = None
s = a * a + b * b + c * c + d * d
if s != i:
error_msg = f"Incorrect sum.\nSquares: [{a}, {b}, {c}, {d}]\nActual: {
a * a + b * b + c * c + d * d}\nExpected: {i}"
if error_msg is not None:
print(error_msg)
else:
print("Решение принято")
if __name__ == "__main__":
main()
Traceback (most recent call last):
File "c:\tradesignals\main22.py", line 35, in <module>
main()
File "c:\tradesignals\main22.py", line 22, in main
a, b, c, d = four_squares(i)
^^^^^^^^^^^^^^^
OverflowError: int too big to convert
Сразу видно не разбирается даже в маркетплейсах WB и OZON.
и выбор Блок в ответе был верно выбран как раз и ты сам сошел из темы как раз.
Начал обсуждать совсем не то что нужно (пошел говорить что отзывы не имеют не какого отношения) а не конкретно по данному вопросу