2022-06-16 20:22:48 +02:00
import psutil
2022-06-18 17:26:52 +02:00
import requests
2022-06-16 20:22:48 +02:00
import random
import pyfiglet
import socket
import threading
import datetime
import telebot
import time
import ast
import ffmpeg
import os
import python_weather
import asyncio
import json
2022-06-17 16:21:59 +02:00
import goslate
2022-06-20 09:35:44 +02:00
import logging
import deepl
2022-06-20 22:20:31 +02:00
import spotipy
2022-06-22 20:24:57 +02:00
import pyshorteners
2022-06-23 16:14:08 +02:00
import pdf2docx
2022-06-24 13:49:34 +02:00
import PyPDF2
2022-06-24 14:29:17 +02:00
import urllib
2022-06-24 19:37:59 +02:00
from currency_converter import CurrencyConverter
2022-06-24 13:49:34 +02:00
from googletrans import Translator
2022-06-24 10:51:09 +02:00
from random import randint
from random import random
2022-06-24 10:16:56 +02:00
from fileinput import filename
2022-06-23 16:14:08 +02:00
from pdf2docx import Converter , parse
2022-06-20 22:20:31 +02:00
from spotipy . oauth2 import SpotifyClientCredentials
from youtube_search import YoutubeSearch
2022-06-18 11:58:15 +02:00
from dotenv import load_dotenv
2022-06-16 20:22:48 +02:00
from yt_dlp import YoutubeDL
from platform import system
from tqdm . auto import tqdm
from importlib . metadata import files
from dataclasses import dataclass
from jmespath import search
from telebot import types , telebot
from pytube import YouTube
from bs4 import BeautifulSoup
from gc import callbacks
2022-06-20 22:20:31 +02:00
import logging
import sys
logging . basicConfig (
level = logging . INFO ,
format = " %(asctime)s [ %(levelname)s ] %(message)s " ,
handlers = [
logging . FileHandler ( " debug.log " ) ,
logging . StreamHandler ( sys . stdout )
]
)
2022-06-16 20:22:48 +02:00
2022-06-18 11:58:15 +02:00
load_dotenv ( )
API_TOKEN = os . getenv ( ' BOT_TOKEN ' )
2022-06-16 20:22:48 +02:00
bot = telebot . TeleBot ( API_TOKEN )
2022-06-22 20:32:58 +02:00
#Start bot
2022-06-20 22:20:31 +02:00
logging . info ( " Il bot si è avviato con successo! " )
2022-06-16 20:22:48 +02:00
#Command /start
@bot.message_handler ( commands = [ ' start ' ] )
def send_welcome ( message ) :
2022-06-18 12:02:15 +02:00
chat_id = message . chat . id
2022-06-20 22:20:31 +02:00
logging . info ( " Triggered command START. " )
2022-06-18 12:02:15 +02:00
bot . send_photo ( chat_id , photo = ' https://i.imgur.com/6YPJBze.png ' )
2022-06-19 11:15:36 +02:00
messageText = " ✋ Benvenuto su <b>RetniNet!</b> \n \n <b>RetniNet</b> è un bot privato per <b>automatizzare</b> e <b>semplificare</b> cose che facciamo quotidianamente. \n \n 👨💻 Creato & sviluppato da @Stef58_Official "
2022-06-20 22:20:31 +02:00
bot . send_message ( chat_id , messageText , parse_mode = " HTML " )
2022-06-16 20:22:48 +02:00
#Command /music
2022-06-20 22:20:31 +02:00
2022-06-16 20:22:48 +02:00
@bot.message_handler ( commands = [ ' music ' ] )
def select_music ( pm ) :
2022-06-20 22:20:31 +02:00
logging . info ( " Triggered command MUSIC. " )
2022-06-16 20:22:48 +02:00
sent_msg = bot . send_message ( pm . chat . id , " Inserisci il link della canzone: " )
bot . register_next_step_handler ( sent_msg , music_step )
2022-06-20 22:20:31 +02:00
2022-06-16 20:22:48 +02:00
2022-06-17 16:21:59 +02:00
def music_step ( pm ) :
2022-06-22 20:32:58 +02:00
text = pm . text
#Check if the link is correct (Youtube and Spotify links only)
if text . startswith ( ' https://www.youtube.com/ ' ) or text . startswith ( ' https://youtu.be/ ' ) :
2022-06-19 12:33:15 +02:00
ytdl_opts = {
2022-06-20 22:20:31 +02:00
' format ' : ' bestaudio/best ' ,
' outtmpl ' : ' music_cache/ %(title)s . %(ext)s ' ,
' postprocessors ' : [ {
' key ' : ' FFmpegExtractAudio ' ,
' preferredcodec ' : ' mp3 ' ,
' preferredquality ' : ' 192 ' ,
} ] ,
}
2022-06-22 20:32:58 +02:00
with YoutubeDL ( ytdl_opts ) as ydl :
url = pm . text
info = ydl . extract_info ( url , download = False )
name = info . get ( ' title ' )
id = info . get ( ' id ' )
ydl . download ( [ id ] )
send_message = " 🎶 La canzone <b> " + name + \
" </b> è stata scaricata con successo! "
bot . send_message ( pm . chat . id , send_message , parse_mode = " HTML " )
bot . send_audio ( pm . chat . id , audio = open ( " music_cache/ " + name + ' .mp3 ' , ' rb ' ) )
os . remove ( " music_cache/ " + name + ' .mp3 ' )
#If the link for spotify ends with /album, /user, /playlist ecc.. send a error message
2022-06-20 22:20:31 +02:00
elif pm . text . startswith ( ' https://open.spotify.com/track/ ' ) :
ytdl_opts = {
' format ' : ' bestaudio/best ' ,
' outtmpl ' : ' music_cache/ %(title)s . %(ext)s ' ,
' postprocessors ' : [ {
' key ' : ' FFmpegExtractAudio ' ,
' preferredcodec ' : ' mp3 ' ,
' preferredquality ' : ' 192 ' ,
} ] ,
}
2022-06-19 12:33:15 +02:00
with YoutubeDL ( ytdl_opts ) as ydl :
2022-06-20 22:20:31 +02:00
message = pm . text
sp = spotipy . Spotify ( auth_manager = SpotifyClientCredentials ( client_id = os . getenv ( ' SPOTIFY_ID ' ) , client_secret = os . getenv ( ' SPOTIFY_SECRET ' ) ) )
track = sp . track ( message )
name = track [ " name " ]
artist = track [ " artists " ] [ 0 ] [ " name " ]
results = YoutubeSearch ( artist + " - " + name , max_results = 1 ) . to_json ( )
get_link = json . loads ( results )
link = get_link [ ' videos ' ] [ 0 ] [ ' url_suffix ' ]
print_link = ' https://youtube.com ' + link
url = print_link
2022-06-19 12:33:15 +02:00
info = ydl . extract_info ( url , download = False )
name = info . get ( ' title ' )
id = info . get ( ' id ' )
ydl . download ( [ id ] )
2022-06-20 22:20:31 +02:00
send_message = " 🎶 La canzone <b> " + name + \
" </b> è stata scaricata con successo! "
2022-06-19 12:33:15 +02:00
bot . send_message ( pm . chat . id , send_message , parse_mode = " HTML " )
2022-06-20 22:20:31 +02:00
bot . send_audio ( pm . chat . id , audio = open ( " music_cache/ " + name + ' .mp3 ' , ' rb ' ) )
os . remove ( " music_cache/ " + name + ' .mp3 ' )
logging . info ( " \" " + name + " \" è stato scaricato ed eliminato con successo! " )
2022-06-21 19:16:38 +02:00
2022-06-20 22:20:31 +02:00
elif pm . text . startswith ( ' https://youtube.com/ ' ) or pm . text . startswith ( ' youtube.com/ ' ) :
bot . send_message (
pm . chat . id , " 🚫 <b>Errore</b> \n \n <b>Il link</b> inserito non è valido! " )
2022-06-19 12:33:15 +02:00
else :
2022-06-20 22:20:31 +02:00
try :
with YoutubeDL ( ytdl_opts ) as ydl :
url = pm . text
info = ydl . extract_info ( url , download = False )
name = info . get ( ' title ' )
id = info . get ( ' id ' )
ydl . download ( [ id ] )
send_message = " 🎶 La canzone <b> " + name + \
" </b> è stata scaricata con successo! "
bot . send_message ( pm . chat . id , send_message , parse_mode = " HTML " )
bot . send_audio ( pm . chat . id , audio = open ( " music_cache/ " + name + ' .mp3 ' , ' rb ' ) )
os . remove ( " music_cache/ " + name + ' .mp3 ' )
except :
chat = pm . chat . id
send_msg = " 🚫 Errore! \n \n <b>Errore:</b> <i>Impossibile scaricare la canzone</i> "
bot . send_message ( chat , send_msg , parse_mode = " HTML " )
else :
chat = pm . chat . id
2022-06-21 19:16:38 +02:00
bot . send_message ( chat , pm . chat . id , " 🚫 Devi inserire un <b>link</b> valido! " )
2022-06-20 22:20:31 +02:00
2022-06-16 20:22:48 +02:00
#Command /meteo
@bot.message_handler ( commands = [ ' meteo ' ] )
def meteo ( pm ) :
2022-06-20 22:20:31 +02:00
logging . info ( " Triggered command METEO. " )
2022-06-17 16:21:59 +02:00
sent_msg = bot . send_message ( pm . chat . id , " 🏙️ Inserisci la città: " )
2022-06-16 20:22:48 +02:00
bot . register_next_step_handler ( sent_msg , meteo_step )
2022-06-20 22:20:31 +02:00
2022-06-16 20:22:48 +02:00
def meteo_step ( message ) :
2022-06-20 09:35:44 +02:00
translator = deepl . Translator ( os . getenv ( ' DEEPL_TOKEN ' ) )
2022-06-20 22:20:31 +02:00
result = translator . translate_text ( ' hi ' , target_lang = ' IT ' )
2022-06-20 09:35:44 +02:00
translated_text = result . text
2022-06-16 20:22:48 +02:00
city = message . text
2022-06-18 11:58:15 +02:00
token_weather = os . environ . get ( ' WEATHER_TOKEN ' )
response = requests . get ( " https://api.openweathermap.org/data/2.5/weather?q= " + city + " ,it&APPID= " + token_weather ) . json ( )
2022-06-20 22:20:31 +02:00
weather = response [ ' weather ' ] [ 0 ] [ ' main ' ]
2022-06-16 20:22:48 +02:00
temp = response [ ' main ' ] [ ' temp ' ]
temp = temp - 273.15
2022-06-20 09:35:44 +02:00
weather_translate = translator . translate_text ( weather , target_lang = ' IT ' )
result_weather = weather_translate . text
2022-06-16 20:22:48 +02:00
bot . send_message ( message . chat . id , " 🌡️ La temperatura in " + city + " è di " + str ( temp ) + " °C " )
2022-06-20 09:35:44 +02:00
bot . send_message ( message . chat . id , " 🌧️ La condizione è " + result_weather )
2022-06-16 20:22:48 +02:00
#Command /stats
2022-06-20 22:20:31 +02:00
2022-06-16 20:22:48 +02:00
@bot.message_handler ( commands = [ ' stats ' ] )
def uptime ( message ) :
print ( " Triggered command STATS. " )
cpuUsage = psutil . cpu_percent ( interval = 1 )
2022-06-20 22:20:31 +02:00
ramTotal = int ( psutil . virtual_memory ( ) . total / ( 1024 * 1024 ) ) # GB
ramUsage = int ( psutil . virtual_memory ( ) . used / ( 1024 * 1024 ) ) # GB
ramFree = int ( psutil . virtual_memory ( ) . free / ( 1024 * 1024 ) ) # GB
2022-06-16 20:22:48 +02:00
ramUsagePercent = psutil . virtual_memory ( ) . percent
msg = '''
CPU & RAM Info
2022-06-17 16:21:59 +02:00
🟩 Utilizzo CPU = { } %
2022-06-16 20:22:48 +02:00
RAM
Totale = { } MB
Usato = { } MB
Libero = { } MB
2022-06-20 22:20:31 +02:00
In uso = { } % \n ''' .format(cpuUsage, ramTotal, ramUsage, ramFree, ramUsagePercent)
bot . send_message ( message . chat . id , msg )
2022-06-16 20:22:48 +02:00
2022-06-17 16:21:59 +02:00
#Command /pastebin
2022-06-20 22:20:31 +02:00
2022-06-17 16:21:59 +02:00
@bot.message_handler ( commands = [ ' pastebin ' ] )
def pastebin ( message ) :
2022-06-20 22:20:31 +02:00
logging . info ( " Triggered command PASTEBIN. " )
2022-06-17 16:21:59 +02:00
sent_msg = bot . send_message ( message . chat . id , " 📋 Inserisci il testo: " )
bot . register_next_step_handler ( sent_msg , pastebin_step )
2022-06-20 22:20:31 +02:00
2022-06-17 16:21:59 +02:00
def pastebin_step ( message ) :
chat = message . chat . id
text = message . text
site = ' https://pastebin.com/api/api_post.php '
2022-06-18 11:58:15 +02:00
dev_key = os . environ . get ( ' PASTEBIN_TOKEN ' )
2022-06-20 22:20:31 +02:00
code = text
our_data = urllib . parse . urlencode (
{ " api_dev_key " : dev_key , " api_option " : " paste " , " api_paste_code " : code } )
our_data = our_data . encode ( )
2022-06-17 16:21:59 +02:00
resp = urllib . request . urlopen ( site , our_data )
resp = resp . read ( )
2022-06-20 22:20:31 +02:00
send_msg = " 📋 Il tuo <b>codice</b> è stato inviato con successo! \n \n <b>Link:</b> " + \
str ( resp )
bot . send_message ( chat , send_msg , parse_mode = " HTML " )
2022-06-17 16:21:59 +02:00
2022-06-18 17:26:52 +02:00
#Command /epicgames
2022-06-20 22:20:31 +02:00
2022-06-18 17:26:52 +02:00
@bot.message_handler ( commands = [ ' epicgames ' ] )
def epicgames ( message ) :
text = message . text
2022-06-20 22:20:31 +02:00
bot . send_message (
message . chat . id , " 🎮 Vuoi vedere il gioco disponibile al momento o quello futuro? (disponibile/futuro) " )
2022-06-18 17:26:52 +02:00
bot . register_next_step_handler ( message , epicgames_step )
2022-06-20 22:20:31 +02:00
2022-06-18 17:26:52 +02:00
def epicgames_step ( message ) :
text = message . text
2022-06-20 22:20:31 +02:00
if text == ' disponibile ' or text == ' Disponibile ' :
logging . info ( " Triggered command EPICGAMES DISPONIBILE. " )
# URL API
2022-06-18 17:26:52 +02:00
url = " https://api.plenusbot.xyz/epic_games?country=IT "
response = requests . get ( url ) . json ( )
2022-06-20 22:20:31 +02:00
# Title of current games
2022-06-18 17:26:52 +02:00
current_games = response [ ' currentGames ' ] [ 0 ] [ ' title ' ]
2022-06-20 22:20:31 +02:00
# Image current games
2022-06-18 17:26:52 +02:00
image_currentgames = response [ ' currentGames ' ] [ 0 ] [ ' keyImages ' ] [ 0 ] [ ' url ' ]
2022-06-20 22:20:31 +02:00
# Description current games
2022-06-18 17:26:52 +02:00
current_games_description = response [ ' currentGames ' ] [ 0 ] [ ' description ' ]
2022-06-20 22:20:31 +02:00
# Token for translate
2022-06-20 09:35:44 +02:00
translator = deepl . Translator ( os . getenv ( ' DEEPL_TOKEN ' ) )
2022-06-20 22:20:31 +02:00
# Translate description current games
description_translate = translator . translate_text (
current_games_description , target_lang = ' IT ' )
2022-06-20 09:35:44 +02:00
result_description = description_translate . text
2022-06-18 17:26:52 +02:00
send_img = bot . send_photo ( message . chat . id , image_currentgames )
2022-06-21 19:16:38 +02:00
sent_msg = bot . send_message ( message . chat . id , " 🎮 Il gioco gratis di oggi è " + current_games + " \n \n " + result_description )
2022-06-18 17:26:52 +02:00
else :
2022-06-20 22:20:31 +02:00
logging . info ( " Triggered command EPICGAMES FUTURO. " )
# URL API
2022-06-18 17:26:52 +02:00
url = " https://api.plenusbot.xyz/epic_games?country=IT "
response = requests . get ( url ) . json ( )
2022-06-20 22:20:31 +02:00
# Title of future games
2022-06-18 17:26:52 +02:00
future_games1 = response [ ' nextGames ' ] [ 0 ] [ ' title ' ]
2022-06-20 22:20:31 +02:00
# Image future games
2022-06-18 17:26:52 +02:00
image_futuregames1 = response [ ' nextGames ' ] [ 0 ] [ ' keyImages ' ] [ 0 ] [ ' url ' ]
2022-06-20 22:20:31 +02:00
# Description future games
2022-06-18 17:26:52 +02:00
future_games_description1 = response [ ' nextGames ' ] [ 0 ] [ ' description ' ]
2022-06-20 22:20:31 +02:00
# Token for translate
2022-06-20 09:35:44 +02:00
translator = deepl . Translator ( os . getenv ( ' DEEPL_TOKEN ' ) )
2022-06-21 19:16:38 +02:00
description_translate1 = translator . translate_text ( future_games_description1 , target_lang = ' IT ' )
2022-06-20 09:35:44 +02:00
result_description1 = description_translate1 . text
2022-06-18 17:26:52 +02:00
send_img = bot . send_photo ( message . chat . id , image_futuregames1 )
2022-06-21 19:16:38 +02:00
sent_msg = bot . send_message ( message . chat . id , " 🎮 Il gioco futuro è " + future_games1 + " \n \n " + result_description1 )
2022-06-20 22:20:31 +02:00
# Title of future games
2022-06-18 17:26:52 +02:00
future_games2 = response [ ' nextGames ' ] [ 1 ] [ ' title ' ]
2022-06-20 22:20:31 +02:00
# Image future games
2022-06-18 17:26:52 +02:00
image_futuregames2 = response [ ' nextGames ' ] [ 1 ] [ ' keyImages ' ] [ 0 ] [ ' url ' ]
2022-06-20 22:20:31 +02:00
# Description future games
2022-06-18 17:26:52 +02:00
future_games_description2 = response [ ' nextGames ' ] [ 1 ] [ ' description ' ]
2022-06-20 22:20:31 +02:00
# Traslate description future games
2022-06-21 19:16:38 +02:00
description_translate2 = translator . translate_text ( future_games_description2 , target_lang = ' IT ' )
2022-06-20 09:35:44 +02:00
result_description2 = description_translate2 . text
2022-06-18 17:26:52 +02:00
send_img = bot . send_photo ( message . chat . id , image_futuregames2 )
2022-06-21 19:16:38 +02:00
sent_msg = bot . send_message ( message . chat . id , " 🎮 Il gioco futuro è " + future_games2 + " \n \n " + result_description2 )
2022-06-20 22:20:31 +02:00
2022-06-22 20:24:57 +02:00
#Command /shutdown
@bot.message_handler ( commands = [ ' shutdown ' ] )
def shutdown ( message ) :
2022-06-24 11:29:58 +02:00
logging . ingo ( " Triggered SHUTDOWN " )
2022-06-22 20:24:57 +02:00
text = message . text
sent_msg = bot . send_message ( message . chat . id , " Sei sicuro di voler spegnere il pc? " )
bot . register_next_step_handler ( sent_msg , shutdown_step )
def shutdown_step ( message ) :
id = message . from_user . id
text = message . text
id_owner = os . getenv ( ' USER_ID ' )
2022-06-23 16:14:08 +02:00
if id == 771375637 :
2022-06-22 20:24:57 +02:00
if text == " si " or text == " Si " or text == " y " or text == " Y " or text == " Yes " or text == " yes " :
bot . send_message ( message . chat . id , " Il computer è stato spento con successo! " )
logging . info ( " Triggered Shutdown " )
url = os . getenv ( " PASSWORD " )
requests . get ( url )
else :
bot . send_message ( message . chat . id , " ⚠️ Hai annullato l ' operazione! " )
#Command /shortlink
@bot.message_handler ( commands = [ ' shortlink ' ] )
def shortlink ( message ) :
2022-06-24 11:29:58 +02:00
logging . info ( " Triggered SHORTLINK " )
2022-06-22 20:24:57 +02:00
text = message . text
sent_msg = bot . send_message ( message . chat . id , " Inserisci il link: " )
bot . register_next_step_handler ( sent_msg , shortlink_step )
def shortlink_step ( message ) :
text = message . text
type_tiny = pyshorteners . Shortener ( )
short_url = type_tiny . tinyurl . short ( text )
bot . send_message ( message . chat . id , " Ecco a te lo shortlink: " + short_url )
#Command /uptime
@bot.message_handler ( commands = [ ' uptime ' ] )
def uptime ( message ) :
logging . info ( " Triggered UPTIME " )
sent_msg = bot . send_message ( message . chat . id , " Manda il link del sito che vuoi controllare. " )
bot . register_next_step_handler ( sent_msg , uptime_step )
def uptime_step ( message ) :
text = message . text
2022-06-24 14:25:21 +02:00
try :
x = requests . get ( text )
if x . status_code == 200 :
bot . send_message ( message . chat . id , " Il sito è online, puoi festeggiare adesso! :tada: " )
except requests . exceptions . ConnectionError :
bot . send_message ( message . chat . id , " Il sito non esiste oppure è offline, sad... " )
# status_code = urllib.request.urlopen(url).getcode()
# website_is_up = status_code == 200
# try
# if website_is_up == True:
# bot.send_message(message.chat.id, "Il sito è online!")
# except:
# bot.send_message(message.chat.id, "Si è verificato un errore")
2022-06-19 11:15:36 +02:00
2022-06-23 16:14:08 +02:00
#Command /convert
2022-06-24 19:37:59 +02:00
@bot.message_handler ( commands = [ " convertpdf " ] )
2022-06-23 16:14:08 +02:00
def addfile ( message ) :
2022-06-24 11:29:58 +02:00
logging . info ( " Triggered CONVERT " )
2022-06-23 16:14:08 +02:00
sent_msg = bot . send_message ( message . chat . id , " Manda il file pdf che vuoi convertire in docx " )
bot . register_next_step_handler ( sent_msg , convert )
def convert ( message ) :
file_name = message . document . file_name
file_info = bot . get_file ( message . document . file_id )
downloaded_file = bot . download_file ( file_info . file_path )
with open ( file_name , ' wb ' ) as new_file :
new_file . write ( downloaded_file )
docx_file = file_name + ' .docx '
pdf_file = file_name
cv = Converter ( pdf_file )
cv . convert ( docx_file )
cv . close ( )
html_doc = open ( docx_file , ' rb ' )
sent_msg = bot . send_message ( message . chat . id , " Il file è stato convertito con successo! " )
bot . send_document ( message . chat . id , html_doc )
os . remove ( pdf_file )
#Command /cloud
@bot.message_handler ( commands = [ " cloud " ] )
def cloud ( message ) :
2022-06-24 11:29:58 +02:00
logging . info ( " Triggered CLOUD " )
2022-06-23 16:14:08 +02:00
sent_msg = bot . send_message ( message . chat . id , " Invia il file che vuoi caricare " )
bot . register_next_step_handler ( sent_msg , cloud_step )
def cloud_step ( message ) :
2022-06-24 11:24:26 +02:00
id = message . from_user . id
2022-06-23 16:14:08 +02:00
file_name = message . document . file_name
file_info = bot . get_file ( message . document . file_id )
downloaded_file = bot . download_file ( file_info . file_path )
2022-06-24 10:51:09 +02:00
if file_name == file_name :
with open ( file_name , ' wb ' ) as new_file :
new_file . write ( downloaded_file )
value = randint ( 1 , 9999 )
old_name = file_name
new_name = str ( value ) + file_name
os . rename ( old_name , new_name )
2022-06-24 13:49:34 +02:00
os . replace ( new_name , ' storage/ ' + new_name )
2022-06-24 10:51:09 +02:00
else :
with open ( file_name , ' wb ' ) as new_file :
new_file . write ( downloaded_file )
2022-06-24 13:49:34 +02:00
os . replace ( file_name , ' storage/ ' + file_name )
2022-06-24 10:51:09 +02:00
bot . send_message ( message . chat . id , " Il tuo file è stato caricato con successo! Ecco l ' id del tuo file " + new_name )
bot . send_message ( message . chat . id , " Se vuoi scaricare il file fai /cloud download + l ' id del file " )
2022-06-24 11:24:26 +02:00
dic_exm = {
" filename " : new_name ,
" user_id " : id ,
2022-06-24 11:29:58 +02:00
2022-06-24 11:24:26 +02:00
}
with open ( ' data.json ' , ' a ' ) as f :
json . dump ( dic_exm , f , indent = 2 )
f . write ( ' \n ' )
2022-06-23 16:14:08 +02:00
2022-06-24 13:49:34 +02:00
@bot.message_handler ( commands = [ " translatepdf " ] )
def translatepdf ( message ) :
logging . info ( " Triggered TRANSLATE PDF " )
sent_msg = bot . send_message ( message . chat . id , " Scrivi il messaggio che vuoi tradurre. " )
bot . register_next_step_handler ( sent_msg , translatepdf_step )
def translatepdf_step ( message ) :
id = message . from_user . id
file_name = message . document . file_name
file_info = bot . get_file ( message . document . file_id )
downloaded_file = bot . download_file ( file_info . file_path )
with open ( file_name , ' wb ' ) as new_file :
new_file . write ( downloaded_file )
input_file = file_name
text_file = file_name + ' .txt '
os . replace ( input_file , ' storage/ ' + input_file )
input_file_position = ' storage/ ' + input_file
with open ( input_file_position , " rb " ) as pdf_file :
read_pdf = PyPDF2 . PdfFileReader ( pdf_file )
number_of_pages = read_pdf . getNumPages ( )
page = read_pdf . pages [ 0 ]
page_content = page . extractText ( )
with open ( text_file , ' w ' ) as f :
f . write ( page_content )
os . replace ( text_file , ' storage/ ' + text_file )
text_file_position = ' storage/ ' + text_file
f = open ( text_file_position )
contents = f . read ( )
translator = Translator ( )
translated_text = translator . translate ( contents , dest = ' it ' )
bot . send_message ( message . chat . id , translated_text . text )
os . remove ( input_file_position )
2022-06-24 19:37:59 +02:00
#Command /convertmoney
@bot.message_handler ( commands = [ " convertmoney " ] )
def convertmoney ( message ) :
logging . info ( " Triggered CONVERT MONEY " )
text = message . text
sent_msg = bot . send_message ( message . chat . id , " In che valuta vuoi convertire? " )
bot . register_next_step_handler ( sent_msg , convertmoney_step )
def convertmoney_step ( message ) :
text = message . text
c = CurrencyConverter ( )
second = text
sent_msg = bot . send_message ( message . chat . id , " Inserisci quanto vuoi convertire? " )
bot . register_next_step_handler ( sent_msg , convertmoney_step2 , second )
def convertmoney_step2 ( message , second ) :
many = message . text
c = CurrencyConverter ( )
example = c . convert ( many , ' EUR ' , second )
bot . send_message ( message . chat . id , str ( example ) )
2022-06-25 10:57:54 +02:00
#Plenus is off or on?
while True :
try :
x = requests . get ( ' https://plenusbot.xyz ' )
if x . status_code == 200 :
logging . info ( " Plenus ON! " )
time . sleep ( 3600 )
except requests . exceptions . ConnectionError :
bot . send_message ( 771375637 , " Plenus è OFF! " )
time . sleep ( 3600 )
except KeyboardInterrupt :
logging . info ( " Il bot è stato spento con successo! " )
break
2022-06-22 20:24:57 +02:00
bot . polling ( )