|
0 / 0 / 0
Регистрация: 11.05.2019
Сообщений: 49
|
|
Telegram Bot Улучшить производительность и увеличить скорость загрузки-выгрузки файлов19.02.2020, 16:48. Показов 22858. Ответов 6
Метки нет (Все метки)
Добрый день, программисты)
Есть код бота Телеграм, который ждет запроса от пользователя, скачивает и отправляет аудио пользователю. [PYTHON]from __future__ import unicode_literals import youtube_dl import misc import glob import os from sys import argv import telebot import json from time import sleep from time import time import requests import psutil import logging from unicodedata import normalize import requests import youtube_dl from bs4 import BeautifulSoup from telegram.ext import Updater, CommandHandler, MessageHandler, Filters global last_update_id last_update_id = 0 TOKEN = misc.token bot = telebot.TeleBot(TOKEN) URL = 'https://api.telegram.org/bot' + TOKEN + '/' # Download data and config download_options = { 'format': 'bestaudio/best', 'outtmpl': '%(title)s.%(ext)s', 'nocheckcertificate': True, 'postprocessors': [{ 'key': 'FFmpegExtractAudio', 'preferredcodec': 'm4a', 'preferredquality': '192', }], } # Song Directory if not os.path.exists('Songs'): os.mkdir('Songs') else: os.chdir('Songs') def send_audio(files, text = 'ПАДАЖи ....'): global chat_id for i in files: lf = files[0] audio = open(i, 'rb') bot.send_audio(chat_id, audio) # Download Songs def skachat(): global chat_id global text with youtube_dl.YoutubeDL(download_options) as dl: if 'playlist' in text: bot.send_message(chat_id,'skachivau playlist') else: bot.send_message(chat_id,'skachivau trek') dl.download([text]) bot.send_message(chat_id,"fail skachan") shlyah = r'C:\pybot\Songs' + '\\' + str(chat_id) files_path = os.path.join(shlyah, '*') files = sorted(glob.iglob(files_path), key=os.path.getctime, reverse=True) send_audio(files) for i in files: ist = i.split('\\')[-2]#take chat_id from name of file os.remove(i) #проверка: если в названии папки ist есть чат айди пользователя -> отправить ему трек, если же нет -> ist = chat_id (или bot.send_audio(ist, audio)) def get_updates(): url = URL + 'getupdates' r = requests.get(url) return r.json() def get_message(): print('sssssssssssssssssssssssssssssssss ssss') data = get_updates() if data != "": last_object = data['result'][-1] current_update_id = last_object['update_id'] global last_update_id if last_update_id != current_update_id: last_update_id = current_update_id chat_id = last_object['message']['chat']['id'] message_text = last_object['message']['text'] message = {'chat_id': chat_id, 'message_text': message_text} print(message) return message get_updates() data = None return None else : sleep(1) def direct(): if not os.path.exists(r'C:\\pybot\\Songs' + r'\\' + str(chat_id)): os.mkdir(r'C:\\pybot\\Songs' + r'\\' + str(chat_id)) os.chdir(r'C:\\pybot\\Songs' + r'\\' + str(chat_id)) else: os.chdir(r'C:\\pybot\\Songs' + r'\\' + str(chat_id)) def send_message(chat_id, text = 'ПАДАЖи ....'): url = URL + 'sendmessage?chat_id={}&text={}'.format( chat_id, text) requests.get(url) def main(): while True: answer = get_message() if answer != None: global chat_id chat_id = answer['chat_id'] global text text = answer['message_text'] message = {'chat_id': chat_id, 'message_text': text} if 'youtube' in text or 'youtu.be' in text: #Create or select directory t0 = time() direct() skachat() elif text == '/start': send_message(chat_id, 'Добро пожаловать в YOUK Bot
0
|
|
| 19.02.2020, 16:48 | |
|
Ответы с готовыми решениями:
6
Хотелось бы улучшить производительность а именно: игры, графика, скорость, увеличить память и т.д. Увеличить скорость загрузки файлов, подключенных через require Есть ли стандартные процедуры загрузки, выгрузки файлов в ДГУ? |
|
|
|||||||||||
| 21.02.2020, 23:16 | |||||||||||
3 работал с api давно поэтому точно не скажу но файлы вроде бы можно заново не отправлять, а только ссылки если ранее их отправили если я правильно вас понял то нужно увеличить скорость интернета тогда файл быстрей загружается/выгружается и быстрей можете с ним работать
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 11.05.2019
Сообщений: 49
|
|
| 21.02.2020, 23:21 [ТС] | |
|
По поводу загрузки - выгрузки: у Олега Молчанова просто было видео ( как бы тупо сейчас это не выглядело
0
|
|
|
|
|||
| 21.02.2020, 23:27 | |||
|
2 как вариант можно разделить скрипт на 2 части 1 принимает запрос и отправляет на обработку.
А общение сделать например на сокетах. 2 обработчик можно запускать в нужном количестве либо по мере необходимости Добавлено через 1 минуту Добавлено через 1 минуту опять же можно отправлять файлы не через телеграм а просто ссылками например из облака
1
|
|||
|
0 / 0 / 0
Регистрация: 11.05.2019
Сообщений: 49
|
|
| 21.02.2020, 23:27 [ТС] | |
|
А подскажите, может знаете, как сделать так, чтобы скрипт пока обрабатывает запрос от одного пользователя другого не ставил в "очередь", а параллельно начинал выполнять запрос?
0
|
|
|
|
|||||||||
| 21.02.2020, 23:34 | |||||||||
|
Добавлено через 2 минуты сами же приводили пример видео Добавлено через 4 минуты
1
|
|||||||||
|
0 / 0 / 0
Регистрация: 11.05.2019
Сообщений: 49
|
||
| 22.02.2020, 15:02 [ТС] | ||
|
0
|
||
| 22.02.2020, 15:02 | |
|
Помогаю со студенческими работами здесь
7
Увеличить скорость загрузки Как увеличить скорость загрузки страницы Как увеличить скорость загрузки форм? Как увеличить скорость загрузки сайта? Как увеличить скорость загрузки изображения на сервер ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|