Nekmo / cinebot

Bot Telegram para consultar la cartelera unificada de tus cines
9 stars 4 forks source link

Cines CineMundo #7

Open GoldraK opened 6 years ago

GoldraK commented 6 years ago

Hola, me a gustado tu bot y realice en un momento un poco de código spagueti, que recupera el nombre de la cartelera, el dia y las horas, para los cines CineMundo de Huesca

import requests
from bs4 import BeautifulSoup

URL = "http://www.cineapolis.es/"
URL_CARTELERA = "{}cine.php?id=1".format(URL)

data = requests.get(URL_CARTELERA)
text = data.text
soup = BeautifulSoup(text, 'html.parser')
pelis = soup.find_all('a', attrs={'class' : 'opacidad'},href=True)
for peli in pelis:
    URL_PELI = peli.get('href')
    data_peli = requests.get(URL+URL_PELI)
    text_peli = data_peli.text
    soup_peli = BeautifulSoup(text_peli, 'html.parser')
    print(soup_peli.find("div", {"id": "titulopelicula"}).text)
    horarios = soup_peli.find_all("div", {"id": "barraotrodia"})
    for horario in horarios:
        dias = horario.find_all("div",{"id": "formatodia"})
        horas = horario.find_all("div",{"id": "posicionhoras"})
        for dia in dias:
            print(dia.text)
            for hora in horas:
                print(hora.text)

Me gustaría integrarlo para tu bot, pero no encuentro el fichero config.json donde poner la API key de bot para levantarlo y hacer las pruebas pertinentes.

Nekmo commented 6 years ago

Buenas, un archivo de configuración de ejemplo sería:

{
  "api_token": "<apitoken>",
  "bot_alias": "<aliasbot>",
  "db_url": "mongodb://localhost:27017",
  "db_name": "cinebot"
}

El archivo tendría que encontrarse en la misma ruta de ejecución. Es necesario además tener un Mongodb instalado.

Hay ejemplos de cómo crear un nuevo cine en el propio proyecto. Si hay demanda, puedo implementarlo yo mismo y separar el módulo de cines del bot.

Un saludo, feliz año nuevo y gracias por el interés en el proyecto :)