Crea un Bot en Telegram para descargar archivos a tu Pi con solo poner Link o Archivo de Telegram

Sección Unicamente para Tutoriales y Guías
Avatar de Usuario
Emiliete
Pi Alpha
Pi Alpha
Mensajes: 11
Registrado: 16 May 2016, 15:27
Ubicación: Santa Cruz de Mudela
Agradecido: 0
Agradecimiento recibido: 1 vez
Contactar:

wat3r escribió:
franmadrid escribió:Y tener un bot para descargar todos los archivos de un canal. OJO canal no un grupo. Hay un canal de libros tecnicos y me gustaría hacerlo. Entiendo que hay q tener raspbian en la pi3 con algún cliente de telegram (pregunta de novato)
Para bajar los archivos de un grupo de telegram solo tienes que decirle al bot que se ponga en modo descarga

Código: Seleccionar todo

 /descargar
Luego pìllas los archivos de un grupo, que normalmente están si usas android le das alnombre del grup > multimedia > archivos. Y cuando veas los archivos que quieras descargar mantienes pulsado uno y luego pulsas en los que quieras descargar y sale arriba una flecha que significa reenviar, pues se lo reenvias al bot y el solito los descarga. Eso es lo que yo hago.
Emiliete escribió:Buenas! Lo he creado y en el terminal, aparece que mi usuario se conecta, pero al enviar archivos, luego no se descargan en la carpeta. Por que puede ser??
Si le dices al bot

Código: Seleccionar todo

 /descargar
Lo guarda en el directorio raiz /. por lo menos eso hace el mio
Si le dices

Código: Seleccionar todo

/descargar_link
Lo guarda en tu directorio personal /home/pi
Gracias tío!
Avatar de Usuario
amante_rechoncho
Pi Newbie
Pi Newbie
Mensajes: 4
Registrado: 27 Sep 2016, 21:58
Agradecido: 0
Agradecimiento recibido: 0

Hola a todos. Primero quería daros las gracias por este pedazo de tutorial. Siguiendo los pasos lo he instalado correctamente y no tengo problema para descargar enlaces. El problema viene cuando intento descargar algo del telegram, ya que siempre me da un error y se cierra el script. Sabéis por qué puede ocurrir? Antes de cerrar muestra esto:

Código: Seleccionar todo

2016-09-28 23:45:32,986 (__init__.py:220 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 400 Description: Couldn't forward file to download user."
Exception in thread WorkerThread2 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
  File "build/bdist.linux-armv6l/egg/telebot/util.py", line 57, in run
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'Empty'
Exception in thread WorkerThread1 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
  File "build/bdist.linux-armv6l/egg/telebot/util.py", line 57, in run
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'Empty'
Muchas gracias y un saludo.
Avatar de Usuario
wat3r
Pi Omega
Pi Omega
Mensajes: 97
Registrado: 16 Ago 2016, 06:49
Agradecido: 0
Agradecimiento recibido: 1 vez

amante_rechoncho escribió:Hola a todos. Primero quería daros las gracias por este pedazo de tutorial. Siguiendo los pasos lo he instalado correctamente y no tengo problema para descargar enlaces. El problema viene cuando intento descargar algo del telegram, ya que siempre me da un error y se cierra el script. Sabéis por qué puede ocurrir? Antes de cerrar muestra esto:

Código: Seleccionar todo

2016-09-28 23:45:32,986 (__init__.py:220 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 400 Description: Couldn't forward file to download user."
Exception in thread WorkerThread2 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
  File "build/bdist.linux-armv6l/egg/telebot/util.py", line 57, in run
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'Empty'
Exception in thread WorkerThread1 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
  File "build/bdist.linux-armv6l/egg/telebot/util.py", line 57, in run
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'Empty'
Muchas gracias y un saludo.
Hola buenas. ¿Se te cuelga al descargar archivos o por si solo si lo mantienes ejecutado? Al mio le pasaba que cuando lo ejecutaba cuando llevaba un rato se cerraba por si solo y hice un scrip par cron que comprobará a cada 20 minutos si el Bot estaba funcionando o no, y si no estaba funcionando lo ejecuta y ya no tengo problemas.

No se si este e tu caso.



Enviado desde mi SM-G900F mediante Tapatalk
Avatar de Usuario
amante_rechoncho
Pi Newbie
Pi Newbie
Mensajes: 4
Registrado: 27 Sep 2016, 21:58
Agradecido: 0
Agradecimiento recibido: 0

wat3r escribió:
amante_rechoncho escribió:Hola a todos. Primero quería daros las gracias por este pedazo de tutorial. Siguiendo los pasos lo he instalado correctamente y no tengo problema para descargar enlaces. El problema viene cuando intento descargar algo del telegram, ya que siempre me da un error y se cierra el script. Sabéis por qué puede ocurrir? Antes de cerrar muestra esto:

Código: Seleccionar todo

2016-09-28 23:45:32,986 (__init__.py:220 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 400 Description: Couldn't forward file to download user."
Exception in thread WorkerThread2 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
  File "build/bdist.linux-armv6l/egg/telebot/util.py", line 57, in run
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'Empty'
Exception in thread WorkerThread1 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
  File "build/bdist.linux-armv6l/egg/telebot/util.py", line 57, in run
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'Empty'
Muchas gracias y un saludo.
Hola buenas. ¿Se te cuelga al descargar archivos o por si solo si lo mantienes ejecutado? Al mio le pasaba que cuando lo ejecutaba cuando llevaba un rato se cerraba por si solo y hice un scrip par cron que comprobará a cada 20 minutos si el Bot estaba funcionando o no, y si no estaba funcionando lo ejecuta y ya no tengo problemas.

No se si este e tu caso.



Enviado desde mi SM-G900F mediante Tapatalk
Buenas! El script se cierra automáticamente en el momento que le añado para descargar un archivo de telegram. Un saludo.
Avatar de Usuario
MLopez
Pi Omega
Pi Omega
Mensajes: 61
Registrado: 04 Oct 2016, 17:35
Agradecido: 0
Agradecimiento recibido: 0

hola !!! tengo el bot funcionando y tambien he editado parametros al codigo de python para que me de la bienvenida y que de los comandos xDD

tengo una consulta... como se podría conseguir que se ejecute el python nada más arrancar la opi sen tener que andar a abrir terminales y ejecutarlo a mano???
Buenas! El script se cierra automáticamente en el momento que le añado para descargar un archivo de telegram. Un saludo.
eso pasa porque no tiene los permisos suficientes... vuelve a descargar el bot haciendo desde el usuario que lo ejecute un mkdir de la carpeta, luego cd a la carpeta y wget y descargar el bot.py, luego lanzas python bot.py en esa carpeta y ya te lo pone a funcionar y a descargar los archivos

ami me pasa que lo tengo en la carpeta descargas del servidor un disco duro ... entonces desde un terminal seria:

Código: Seleccionar todo

python /media/TU_USUARIO/TUNOMBRESERVIDORHDDMONTADO/DescargasTG/bot.py
y tengo que correr esto cada vez que se enciende la opi... lo hago por vnc para dejarlo en virtual... pero da palo tener que hacerlo cada vez que se enciende la opi
salu2
con una orange pi pc plus con hdd de 2tb a modo de servidor casero y portatil...
Avatar de Usuario
xxmonti
Pi Master
Pi Master
Mensajes: 257
Registrado: 19 May 2016, 10:05
Agradecido: 0
Agradecimiento recibido: 0

@Kike actualiza el primer post.
Los archivos a descargar no pueden ser superiores a 20Mb :desesperado :desesperado :desesperado

File
This object represents a file ready to be downloaded. The file can be downloaded via the link https://api.telegram.org/file/bot<token>/<file_path>. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile.

Maximum file size to download is 20 MB


https://core.telegram.org/bots/api#getfile
Imagen
Avatar de Usuario
xxmonti
Pi Master
Pi Master
Mensajes: 257
Registrado: 19 May 2016, 10:05
Agradecido: 0
Agradecimiento recibido: 0

MLopez escribió:hola !!! tengo el bot funcionando y tambien he editado parametros al codigo de python para que me de la bienvenida y que de los comandos xDD

tengo una consulta... como se podría conseguir que se ejecute el python nada más arrancar la opi sen tener que andar a abrir terminales y ejecutarlo a mano???
Buenas! El script se cierra automáticamente en el momento que le añado para descargar un archivo de telegram. Un saludo.
eso pasa porque no tiene los permisos suficientes... vuelve a descargar el bot haciendo desde el usuario que lo ejecute un mkdir de la carpeta, luego cd a la carpeta y wget y descargar el bot.py, luego lanzas python bot.py en esa carpeta y ya te lo pone a funcionar y a descargar los archivos

ami me pasa que lo tengo en la carpeta descargas del servidor un disco duro ... entonces desde un terminal seria:

Código: Seleccionar todo

python /media/TU_USUARIO/TUNOMBRESERVIDORHDDMONTADO/DescargasTG/bot.py
y tengo que correr esto cada vez que se enciende la opi... lo hago por vnc para dejarlo en virtual... pero da palo tener que hacerlo cada vez que se enciende la opi
salu2
Para el arranque y control del bot utiliza el script del amigo @wat3r

viewtopic.php?f=41&t=430&p=2147#p2147

Y ademas modifica el siguiente archivo para que se inicie el script en el arranque:

Código: Seleccionar todo

sudo nano /etc/rc.local
Añades justo encima del exit 0 lo siguiente:
/home/pi/controlbot.sh

En mi caso, tengo la script de control en home/pi.
:victoria
Imagen
Avatar de Usuario
MLopez
Pi Omega
Pi Omega
Mensajes: 61
Registrado: 04 Oct 2016, 17:35
Agradecido: 0
Agradecimiento recibido: 0

muchas gracias... me pondre con ello :admirar
tengo ganas de que siempre trabaje solo... es un engorro tener que andar a abrir terminales etc...

salu2
con una orange pi pc plus con hdd de 2tb a modo de servidor casero y portatil...
Avatar de Usuario
MLopez
Pi Omega
Pi Omega
Mensajes: 61
Registrado: 04 Oct 2016, 17:35
Agradecido: 0
Agradecimiento recibido: 0

vale, ya tengo el script y lo he probado y funciona perfectamente...
el problema viene al arranque... no me lo arranca...
en mi caso la ruta es home/mlopez/controlbot.sh y así lo tengo en el rc.local
y no se como es lo de los cada 20segundos se compruebe, pues he probado y tampoco lo he conseguido...
salu2
con una orange pi pc plus con hdd de 2tb a modo de servidor casero y portatil...
Avatar de Usuario
xxmonti
Pi Master
Pi Master
Mensajes: 257
Registrado: 19 May 2016, 10:05
Agradecido: 0
Agradecimiento recibido: 0

MLopez escribió:vale, ya tengo el script y lo he probado y funciona perfectamente...
el problema viene al arranque... no me lo arranca...
en mi caso la ruta es home/mlopez/controlbot.sh y así lo tengo en el rc.local
y no se como es lo de los cada 20segundos se compruebe, pues he probado y tampoco lo he conseguido...
salu2
A ver, escribe esto en el terminal

Código: Seleccionar todo

sudo nano /etc/rc.local
Dentro del archivo escribes:

Código: Seleccionar todo

home/mlopez/controlbot.sh
exit 0
(El exit 0 ya te viene, no lo vuelvas a escribir)

Ahora vamos a darle permisos de ejecucion al script

Código: Seleccionar todo

sudo chmod a+x /home/mlopez/controlbot.sh
Con esto ya te tiene que arrancar el script cada vez que reinicies/enciendas la Pi

Código: Seleccionar todo

sudo reboot
Ahora para que cada 20' (o el tiempo que quieras tu) el sistema compruebe si el bot esta funcionando, escribes:

Código: Seleccionar todo

crontab -e
Y en la parte final del archivo añades esta linea:

Código: Seleccionar todo

*/20 * * * * bash /home/mlopez/controlbot.sh >/dev/null
Para comprobar si cada 20' te esta chequeando, entra al archivo log. y ahi te saldra:

Código: Seleccionar todo

sudo nano /var/log/cron.log
:mrgreen:
Imagen
Avatar de Usuario
MLopez
Pi Omega
Pi Omega
Mensajes: 61
Registrado: 04 Oct 2016, 17:35
Agradecido: 0
Agradecimiento recibido: 0

si el bot ya lo tengo funcionando menos en el arranque... justo lo tengo así antes del exit0
no me molesta que no arranque ya que despues el resto de configuracion a los 20minutos lo pone a funcionar checando si está o no puesto....

gracias y salu2
con una orange pi pc plus con hdd de 2tb a modo de servidor casero y portatil...
Avatar de Usuario
xxmonti
Pi Master
Pi Master
Mensajes: 257
Registrado: 19 May 2016, 10:05
Agradecido: 0
Agradecimiento recibido: 0

MLopez escribió:si el bot ya lo tengo funcionando menos en el arranque... justo lo tengo así antes del exit0
no me molesta que no arranque ya que despues el resto de configuracion a los 20minutos lo pone a funcionar checando si está o no puesto....

gracias y salu2
A mi tb me dio .problemas el arranque, y así fue como me funcionó.

Aquí tienes otras opciones:

http://raspberrywebserver.com/serveradm ... rt-up.html

Suerte[emoji16]
Imagen
Avatar de Usuario
MLopez
Pi Omega
Pi Omega
Mensajes: 61
Registrado: 04 Oct 2016, 17:35
Agradecido: 0
Agradecimiento recibido: 0

lo que si podria incluir kike al post es la parte de crear el script. es muy util si es que queremos tener el bot funcionando. si que es verdad que a la media hora o así es como que si se desconectase y para....
A mi tb me dio .problemas el arranque, y así fue como me funcionó.

Aquí tienes otras opciones:

http://raspberrywebserver.com/serveradm ... rt-up.html

Suerte
muchas gracias por todo, voy a consultarlo...

salu2
con una orange pi pc plus con hdd de 2tb a modo de servidor casero y portatil...
josefernandez.snz
Pi Newbie
Pi Newbie
Mensajes: 1
Registrado: 16 Sep 2016, 12:57
Agradecido: 0
Agradecimiento recibido: 0

Hola a todos
Despues de seguir el tutorial cuando intento ejecutar el bot con /descargar_link y el enlace me dice que no tengo permiso para hacer esto.
La carpeta a la que descargo tiene permiso de lectura y escritura , no se en que me estoy equivocando.
Saludos
Avatar de Usuario
xxmonti
Pi Master
Pi Master
Mensajes: 257
Registrado: 19 May 2016, 10:05
Agradecido: 0
Agradecimiento recibido: 0

El bot por defecto te descarga los archivos en la carpeta donde este el bot.py
Comprueba que el usuario con el que arrancas el bot es el dueño de dicha carpeta.
Tanto la carpeta como el bot.py tienen que tener permisos de escritura, lectura y ejecución
Imagen
el.killo
Pi Alpha
Pi Alpha
Mensajes: 11
Registrado: 07 Sep 2016, 14:11
Agradecido: 0
Agradecimiento recibido: 1 vez

Bueso escribió:Muy buen aporte.

Navegando un poco por Internet, se puede completar con funciones totalmente customizadas. Mi próximo objetivo es detectar cuando se ha apagado la Raspberry (mal o bien), para ello, mi idea es programar el envío de un mensaje en X segundos y cancelarlo justo antes de que se envíe, de forma que si en ese tiempo se ha apagado el equipo, no cancele el envío del mensaje y efectivamente llegue el mensaje. Sin embargo, aun no tengo claro si podré hacerlo así, o tendré que centrarme en la IP externa.

Por otro lado, me aparece este texto siempre que lanzo el bot. He probado varias cosas y soy incapaz de eliminarlo, alguna idea?

Código: Seleccionar todo

/usr/local/lib/python2.7/dist—packages/requests—2. l1.l—py2.7.egg/requests/packages/urllib3/util/ssl_.py:316: SNlMissingNarning: An I-ITTPS request has been made,
but the SNI (Subject Name Indication) extension to TLS is not available on thisplatform. This may cause the server to present an incorrect TLS certificate, whi
ch can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest
/security. html#snimissingwarning.SNlMissingWarning
/usr/local/lib/python2.7/dist—packages/requests—2.11.l—py2.7.egg/requests/packages/urllib3/util/ssl_.py:l22: InsecurePlatformwarning: A true SSLContext object i
s not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of P
ython to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security. html#insecureplat-formwarning.
InsecurePlat formNarning
Saludos!


Holas, yo he intentado instalarlo en mi nas, que tiene arquitectura arm y a mi me da la bienvenida pero no hace nada mas, no se si es por el sistema o por otra cosa pero algo no cuadra xDD python lo tengo instalado y python-setuptools también, la API no me dió fallos al ponerla tampoco, así que no se que puede pasar..



el mensaje no es exactamente el mismo...

/ffp/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:334: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/lates ... l-warnings
SNIMissingWarning
/ffp/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:132: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/lates ... l-warnings
InsecurePlatformWarning





EDIT: he conseguido que no me de este error actualizando python a la 2.7.12 y todas sus dependencias, ahora si me pilla ;)
Avatar de Usuario
MLopez
Pi Omega
Pi Omega
Mensajes: 61
Registrado: 04 Oct 2016, 17:35
Agradecido: 0
Agradecimiento recibido: 0

si eso tambien es el problema. cudno haces /start al bot se cierra y en modo screen sale eso que pones o parecido... reiniciando el bot ya no salta ese error ya que está iniciado en tu chat y no tienes que volver a iniciar /start para comunicarte con el y todo fucniona normal...

PD: tengo que probar lo de aztualizar la version de python xD a ver si funciona o me dices si el comando /start funciona mejor y no lo cierra

salu2
con una orange pi pc plus con hdd de 2tb a modo de servidor casero y portatil...
Avatar de Usuario
MLopez
Pi Omega
Pi Omega
Mensajes: 61
Registrado: 04 Oct 2016, 17:35
Agradecido: 0
Agradecimiento recibido: 0

buenas estoy aqui de nuevo... resulta que quiero usar el bot en un grupo, casi lo he conseguido pero no se que pasa...
lo añado al grupo y el ID hay que poner nuestro ID pero del grupo, así es como conseguí que el bot funciones y los comandos salen y funciona pero lo que no funciona es que despues de poner el comando al poner el archivo o el link no se descargue y no hace nada... en cambio doy cancelar y cancela y sigue funcionando pero no me gestiona los archivos... solo me lo hace por privado, como puedo ponerlo en el grupo a funcionar?
salu2
con una orange pi pc plus con hdd de 2tb a modo de servidor casero y portatil...
Avatar de Usuario
Kike
Administrador
Administrador
Mensajes: 2311
Registrado: 13 May 2016, 18:53
Ubicación: Islas Baleares - Menorca
Agradecido: 47 veces
Agradecimiento recibido: 175 veces
Contactar:

MLopez escribió:buenas estoy aqui de nuevo... resulta que quiero usar el bot en un grupo, casi lo he conseguido pero no se que pasa...
lo añado al grupo y el ID hay que poner nuestro ID pero del grupo, así es como conseguí que el bot funciones y los comandos salen y funciona pero lo que no funciona es que despues de poner el comando al poner el archivo o el link no se descargue y no hace nada... en cambio doy cancelar y cancela y sigue funcionando pero no me gestiona los archivos... solo me lo hace por privado, como puedo ponerlo en el grupo a funcionar?
salu2
Creo que lo comentó @Charlio99 en su día, es problema de la API no del bot :( si no recuerdo mal dijo que no funcionaba en grupos. A ver si el nos puede confirmar :relax1
Si lo puedes soñar, lo puedes hacer
Avatar de Usuario
MLopez
Pi Omega
Pi Omega
Mensajes: 61
Registrado: 04 Oct 2016, 17:35
Agradecido: 0
Agradecimiento recibido: 0

a la espera pues xD
con una orange pi pc plus con hdd de 2tb a modo de servidor casero y portatil...
Responder