mirror of
https://github.com/metafy-social/python-scripts.git
synced 2024-12-18 08:10:20 +00:00
60 lines
2.6 KiB
Python
60 lines
2.6 KiB
Python
# Python script to get day-to-day horoscope
|
|
import os
|
|
import requests
|
|
import msvcrt
|
|
from bs4 import BeautifulSoup
|
|
|
|
|
|
def printBanner():
|
|
banner = '''
|
|
|
|
--------------------Read your Day-to-day horoscope------------------------
|
|
██╗ ██╗ ██████╗ ██████╗ ██████╗ ███████╗ ██████╗ ██████╗ ██████╗ ███████╗
|
|
██║ ██║██╔═══██╗██╔══██╗██╔═══██╗██╔════╝██╔════╝██╔═══██╗██╔══██╗██╔════╝
|
|
███████║██║ ██║██████╔╝██║ ██║███████╗██║ ██║ ██║██████╔╝█████╗
|
|
██╔══██║██║ ██║██╔══██╗██║ ██║╚════██║██║ ██║ ██║██╔═══╝ ██╔══╝
|
|
██║ ██║╚██████╔╝██║ ██║╚██████╔╝███████║╚██████╗╚██████╔╝██║ ███████╗
|
|
|
|
|
|
'''
|
|
print(banner)
|
|
|
|
|
|
def read_horoscope(sign: int, day: int) -> str:
|
|
if not isinstance(sign, int) or sign < 1 or sign > 12:
|
|
return "Input a valid number the represents the sign from 1 to 12"
|
|
if day < 1 or day > 3 or not isinstance(day, int):
|
|
return "Input a valid number the represents the day from 1 to 3"
|
|
days = ['yesterday', 'today', 'tomorrow']
|
|
url = (
|
|
f"https://www.horoscope.com/us/horoscopes/general/\
|
|
horoscope-general-daily-{days[day-1]}.aspx?sign={sign}"
|
|
)
|
|
soup = BeautifulSoup(requests.get(url).content, "html.parser")
|
|
return soup.find("div", class_="main-horoscope").p.text
|
|
|
|
|
|
def refresh():
|
|
os.system('cls')
|
|
printBanner()
|
|
|
|
|
|
again = 'y'
|
|
while again == 'y':
|
|
refresh()
|
|
zodiac_sign = int(input(
|
|
"Enter your Zodiac sign:\n\
|
|
[1] Aries\n[2] Taurus\n[3] Gemini\n[4] Cancer\n\
|
|
[5] Leo\n[6] Virgo\n[7] Libra\n[8] Scorpio\n\
|
|
[9] Sagittarius\n[10] Capricorn\n[11] Aquarius\n[12] Pisces\n> "
|
|
))
|
|
refresh()
|
|
print("Choose Day:\n[1] Yesterday\t[2] Today\t[3] Tomorrow:\n> ")
|
|
day = int(str(msvcrt.getch())[2])
|
|
refresh()
|
|
print("Horoscope Reading\n---------------------------------------------\n")
|
|
result = read_horoscope(zodiac_sign, day)
|
|
print(result)
|
|
print('\nDo you want to read horoscope again [y/n] > ')
|
|
again = str(msvcrt.getch())[2].lower()
|