server.voice.channels
- получить у объекта сервер свойство voice, а у объекта в этом свойстве - свойство channels.spisok = "".join(llavw)
url = "https://file.11klasov.net/index.php?do=download&id=16985" # замените на URL файла, который вы хотите скачать
response = requests.get(url)
response.history
, и ты увидишь там два ответа: [<Response [302]>, <Response [301]>]
. Все коды 3XX - это перенаправления, т.е. сайт тебя перенаправляет на другую страницу, вместо того, чтобы отдать контент.response.url
, который будет равен'https://file.11klasov.net/13938-russkij-jazyk-7-klass-razumovskaja-mm-lvova-si-kapinos-vi-i-dr.html'
response.headers['content-type']
. Он будет 'text/html; charset=utf-8'
, т.е. это HTML страница а не PDF файл. Разумеется, если ты HTML страницу запишешь в файл с расширением .pdf, она от этого не станет валидным PDF.response2 = requests.get(url, headers={
'referer': response.url, # ну или 'https://file.11klasov.net/13938-russkij-jazyk-7-klass-razumovskaja-mm-lvova-si-kapinos-vi-i-dr.html'
})
response2.history
будет пустой, а response2.headers['content-type']
будет равен 'application/pdf'
.member_full = bot.get_user(id=id)
banned_users = await ctx.guild.bans()
for ban in banned_users: ...
member_full = bot.get_user(id=id)
async for ban in ctx.guild.bans(): ...
async for x in y
- это не то же самое, что и for x in await y
. Асинхронный генератор (первый случай) каждый элемент запрашивает асинхронно, а во втором случае - асинхронно запрашивается вся коллекция, которая потом синхронно итерируется. Разные подходы, разные методы, так что объект вполне может поддерживать только один из них. def sum_split(summa: int, candidates: list[int]) -> list[int]:
answer = sum_split(summa - candidates[i], candidates[i+1:])
.import signal
import subprocess
import sys
args = [
"ffmpeg",
"-i", f"rtsp://{camera_login}:{camera_pass}@{camera_host}:554/Streaming/channels/1/",
"-err_detect", "ignore_err",
"-reorder_queue_size", "0",
"-map", "0:v", "-c:v", "copy",
"-f", "rtsp",
"-rtsp_transport", "tcp", f"rtsp://{rtsp_server}:8554/live.stream"
]
params = {'cwd': '.'}
if sys.platform == 'win32': # винда у нас особенная...
params['creationflags'] = (
# subprocess.DETACHED_PROCESS | # если хочешь, чтобы ffmpeg запускался тихо и не спамил в твой stdout
# subprocess.CREATE_NEW_CONSOLE | # если хочешь, чтобы открывалась новая консоль для ffmpeg
subprocess.CREATE_NEW_PROCESS_GROUP # по докам, это требуется для нормальной работы ctrl-c
)
my_subprocess = Popen(args, **params)
try:
pass # тут работаешь с процессом
finally:
my_subprocess.signal(signal.CTRL_C_EVENT) # сигналим процессу о завершении
try:
my_subprocess.wait(timeout=5.0) # ждём завершения
except subprocess.TimeoutExpired: # процесс "задумался"
my_subprocess.kill() # тогда прибиваем
model.apply_tts()
, по-хорошему должно выполняться только один раз при запуске программы, а не для каждой генерируемой фразы.model.apply_tts()
. The command prefix is what the message content must contain initially to have a command invoked. This prefix could either be a string to indicate what the prefix should be, or a callable that takes in the bot as its first parameter and nextcord.Message as its second parameter and returns the prefix.
def prefix_func(bot, message) -> str:
, которая будет вызываться для каждого сообщения, и возвращать желаемую строку префикса. Это не только позволяет менять префикс динамически, не трогая бота (бот как дёргал функцию, так и будет дёргать), но и позволяет делать вещи типа "свой префикс у разных серверов".\
) в строковых литералах Питона (как и во многих языках) имеет специальное значение, зависящее от следующего символа. Например, \n
означает символ перевода строки, \t
- символ табуляции, и т.д. Последовательность \u
позволяет задать символ юникода по его коду, например, символ \u00A7
это значок параграфа (§). Но это также разделитель каталогов в пути на платформе Windows. А у тебя в пути есть последовательность "C:\Users\777\Desktop\Новая папка\67.png".\\
- она означает просто символ \
без специального поведения.my_path = r'C:\Users\'
. В таких литералах символ \
не имеет специального поведения, это просто символ./
. Винда это позволяет.