mirror of
https://github.com/kmein/niveum
synced 2026-03-21 04:11:07 +01:00
feat: astrological info script
This commit is contained in:
54
packages/scripts/horoscope/horoscope.py
Normal file
54
packages/scripts/horoscope/horoscope.py
Normal file
@@ -0,0 +1,54 @@
|
||||
from datetime import datetime
|
||||
import click
|
||||
from flatlib.datetime import Datetime
|
||||
from flatlib.geopos import GeoPos
|
||||
from flatlib.chart import Chart
|
||||
import flatlib.const
|
||||
|
||||
sign_symbols = {
|
||||
flatlib.const.ARIES: "♈",
|
||||
flatlib.const.TAURUS: "♉",
|
||||
flatlib.const.GEMINI: "♊",
|
||||
flatlib.const.CANCER: "♋",
|
||||
flatlib.const.LEO: "♌",
|
||||
flatlib.const.VIRGO: "♍",
|
||||
flatlib.const.LIBRA: "♎",
|
||||
flatlib.const.SCORPIO: "♏",
|
||||
flatlib.const.SAGITTARIUS: "♐",
|
||||
flatlib.const.CAPRICORN: "♑",
|
||||
flatlib.const.AQUARIUS: "♒",
|
||||
flatlib.const.PISCES: "♓",
|
||||
}
|
||||
|
||||
planet_symbols = {
|
||||
flatlib.const.SUN: "☉",
|
||||
flatlib.const.MOON: "☽",
|
||||
flatlib.const.MERCURY: "☿",
|
||||
flatlib.const.VENUS: "♀",
|
||||
flatlib.const.MARS: "♂",
|
||||
flatlib.const.JUPITER: "♃",
|
||||
flatlib.const.SATURN: "♄",
|
||||
}
|
||||
|
||||
|
||||
def convert_into_stupid_flatlib_format(dt):
|
||||
return Datetime(dt.strftime("%Y/%m/%d"), dt.strftime("%H:%M"))
|
||||
|
||||
|
||||
@click.command()
|
||||
@click.option("--latitude", type=click.FLOAT, required=True)
|
||||
@click.option("--longitude", type=click.FLOAT, required=True)
|
||||
@click.option("--date", type=click.DateTime(), default=datetime.now())
|
||||
def main(latitude: float, longitude: float, date: datetime):
|
||||
flatlib_datetime = convert_into_stupid_flatlib_format(date)
|
||||
position = GeoPos(latitude, longitude)
|
||||
chart = Chart(flatlib_datetime, position)
|
||||
for planet in planet_symbols.keys():
|
||||
planet_position = chart.getObject(planet)
|
||||
print(
|
||||
planet_symbols[planet],
|
||||
sign_symbols[planet_position.sign],
|
||||
"℞" if planet_position.movement() == flatlib.const.RETROGRADE else "",
|
||||
end="",
|
||||
)
|
||||
print()
|
||||
Reference in New Issue
Block a user