|
0 / 0 / 0
Регистрация: 11.05.2019
Сообщений: 49
|
|
Telegram Bot Улучшить производительность и увеличить скорость загрузки-выгрузки файлов19.02.2020, 16:48. Показов 22916. Ответов 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
Увеличить скорость загрузки Как увеличить скорость загрузки страницы Как увеличить скорость загрузки форм? Как увеличить скорость загрузки сайта? Как увеличить скорость загрузки изображения на сервер ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|