Advertisement
jose103

TELEGRAM1

Jan 19th, 2025
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.29 KB | Haiku | 0 0
  1.   from selenium import webdriver
  2. from selenium.webdriver.chrome.service import Service
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.chrome.options import Options
  5. from webdriver_manager.chrome import ChromeDriverManager
  6. import requests
  7. import schedule
  8. import time
  9. from datetime import datetime
  10.  
  11. # Función para verificar la conexión a Internet
  12. def check_internet_connection():
  13.     try:
  14.         requests.get("https://www.google.com", timeout=5)
  15.         return True
  16.     except requests.ConnectionError:
  17.         return False
  18.  
  19. # Función para obtener el número
  20. def get_number_from_website(url):
  21.     while True:
  22.         if check_internet_connection():
  23.             try:
  24.                 print(f"Iniciando extracción del número para {url}...")
  25.                 options = Options()
  26.                 options.add_argument('--headless')  # Ejecutar en segundo plano
  27.                 driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
  28.  
  29.                 driver.get(url)
  30.                 # Usar el selector adecuado para el elemento que contiene el número
  31.                 number_element = driver.find_element(By.XPATH, '//*[@id="caja-resultado"]')
  32.                 number = number_element.text
  33.                 driver.quit()
  34.  
  35.                 print(f"Número extraído: {number}")
  36.                 return number
  37.             except Exception as e:
  38.                 print(f"Error extrayendo el número de {url}: {e}")
  39.                 return None
  40.         else:
  41.             print("No hay conexión a Internet. Reintentando cuando se restablezca...")
  42.             time.sleep(10)  # Esperar antes de reintentar
  43.  
  44. # Función para enviar un mensaje a través de la API de Telegram
  45. def send_message_to_telegram(chat_id, token, message):
  46.     url = f'https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}&text={message}'
  47.     response = requests.get(url)
  48.     if response.status_code == 200:
  49.         print(f"Mensaje enviado: {message}")
  50.     else:
  51.         print(f"Error al enviar mensaje: {response.status_code}")
  52.  
  53. # Función para enviar el número por Telegram al grupo
  54. def send_telegram_message(chat_id, token, url, message):
  55.     try:
  56.         print(f"Iniciando envío de mensaje por Telegram para {url}...")
  57.         number = get_number_from_website(url)
  58.  
  59.         if number:
  60.             # Enviar el mensaje con el número extraído por Telegram al grupo
  61.             send_message_to_telegram(chat_id, token, f"{message}: {number}")
  62.             print(f"Mensaje enviado al grupo con el número {number}.")
  63.         else:
  64.             print(f"No se pudo extraer el número de {url}.")
  65.     except Exception as e:
  66.         print(f"Error enviando el mensaje por Telegram para {url}: {e}")
  67.  
  68. # Función para programar tareas basadas en el día de la semana
  69. def schedule_tasks():
  70.     # Reemplaza estos valores con tu token y chat_id de Telegram
  71.     chat_id = '-1002190523360'  # El chat_id del grupo
  72.     token = '8065563525:AAGS6T78DKdBHv301eMtpoTvblzbVknM11o'  # Token de tu bot
  73.  
  74.     today = datetime.now().strftime('%A')  # Obtiene el día de la semana actual
  75.  
  76.     tasks = []
  77.  
  78.     # Tareas para el lunes
  79.     if today == 'Monday':
  80.         tasks.extend([
  81.             {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico de hoy'},
  82.             {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '15:27', 'message': 'Resultado Dorado-tarde de hoy'},
  83.             {'url': 'https://www.astroluna.co/cundinamarca', 'time': '22:45', 'message': 'Resultado Cundinamarca hoy'},
  84.             {'url': 'https://www.astroluna.co/tolima', 'time': '22:45', 'message': 'Resultado Tolima hoy'},
  85.             {'url': 'https://www.astroluna.co/chontico-noche', 'time': '19:02', 'message': 'Resultado de Chontico de noche'}
  86.         ])
  87.  
  88.     # Tareas para el martes
  89.     if today == 'Tuesday':
  90.         tasks.extend([
  91.             {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico dia de hoy'},
  92.             {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '15:27', 'message': 'Resultado Dorado-tarde de hoy'},
  93.             {'url': 'https://www.astroluna.co/cruz-roja', 'time': '23:02', 'message': 'Resultado Cruz Roja'},
  94.             {'url': 'https://www.astroluna.co/huila', 'time': '23:02', 'message': 'Resultado Huila'},
  95.             {'url': 'https://www.astroluna.co/chontico-noche', 'time': '21:30', 'message': 'Resultado de Chontico de noche'}
  96.         ])
  97.  
  98.     # Tareas para el miércoles
  99.     if today == 'Wednesday':
  100.         tasks.extend([
  101.             {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico de hoy'},
  102.             {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '15:27', 'message': 'Resultado Dorado-tarde de hoy'},
  103.             {'url': 'https://www.astroluna.co/valle', 'time': '23:22', 'message': 'Resultado Valle Hoy'},
  104.             {'url': 'https://www.astroluna.co/manizales', 'time': '23:22', 'message': 'Resultado Manizales hoy'},
  105.             {'url': 'https://www.astroluna.co/chontico-noche', 'time': '19:10', 'message': 'Resultado de Chontico de noche'}
  106.         ])
  107.  
  108.     # Tareas para el jueves
  109.     if today == 'Thursday':
  110.         tasks.extend([
  111.             {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico de hoy'},
  112.             {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '15:27', 'message': 'Resultado Dorado-tarde de hoy'},
  113.             {'url': 'https://www.astroluna.co/bogota', 'time': '23:15', 'message': 'Resultado Bogota hoy'},
  114.             {'url': 'https://www.astroluna.co/quindio', 'time': '23:15', 'message': 'Resultado Quindio hoy'},
  115.             {'url': 'https://www.astroluna.co/chontico-noche', 'time': '19:03', 'message': 'Resultado de Chontico de noche'}
  116.         ])
  117.  
  118.     # Tareas para el viernes
  119.     if today == 'Friday':
  120.         tasks.extend([
  121.             {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico de hoy'},
  122.             {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '15:27', 'message': 'Resultado Dorado-tarde de hoy'},
  123.             {'url': 'https://www.astroluna.co/medellin', 'time': '23:15', 'message': 'Resultado Medellin Hoy'},
  124.             {'url': 'https://www.astroluna.co/risaralda', 'time': '23:15', 'message': 'Resultado Risaralda Hoy'},
  125.             {'url': 'https://www.astroluna.co/chontico-noche', 'time': '19:03', 'message': 'Resultado de Chontico de noche'}
  126.         ])
  127.  
  128.     # Tareas para el sábado
  129.     if today == 'Saturday':
  130.         tasks.extend([
  131.             {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico de hoy'},
  132.             {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '17:33', 'message': 'Resultado Dorado-tarde de hoy'},
  133.             {'url': 'https://www.astroluna.co/chontico-noche', 'time': '16:45', 'message': 'Resultado de Chontico de noche'},
  134.             {'url': 'https://www.astroluna.co/cauca', 'time': '23:15', 'message': 'Resultado Cauca hoy'},
  135.             {'url': 'https://www.astroluna.co/boyaca', 'time': '16:46', 'message': 'Resultado Boyaca hoy'}
  136.         ])
  137.  
  138.     # Tareas para el domingo
  139.     if today == 'Sunday':
  140.         tasks.extend([
  141.             {'url': 'https://www.astroluna.co/chontico-dia', 'time': '13:03', 'message': 'Resultado de Chontico de hoy'},
  142.             {'url': 'https://www.astroluna.co/dorado-tarde', 'time': '15:27', 'message': 'Resultado Dorado-tarde de hoy'},
  143.             {'url': 'https://www.astroluna.co/chontico-noche', 'time': '20:11', 'message': 'Resultado de Chontico de noche'},
  144.             {'url': 'https://www.astroluna.co/guaviare', 'time': '00:26', 'message': 'Resultado Guaviare hoy'},
  145.             {'url': 'https://www.astroluna.co/santander', 'time': '23:00', 'message': 'Resultado Santander hoy'}
  146.         ])
  147.  
  148.     # Programar las tareas
  149.     for task in tasks:
  150.         schedule.every().day.at(task['time']).do(
  151.             send_telegram_message,
  152.             chat_id=chat_id,
  153.             token=token,
  154.             url=task['url'],
  155.             message=task['message']
  156.         )
  157.  
  158. # Iniciar la programación de tareas
  159. schedule_tasks()
  160.  
  161. print("Script en ejecución. Esperando la hora programada...")
  162.  
  163. while True:
  164.     schedule.run_pending()
  165.     time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement