diff options
author | Michaël Ball <git@michaelball.name> | 2021-10-13 13:56:58 +0100 |
---|---|---|
committer | Michaël Ball <git@michaelball.name> | 2021-10-13 13:56:58 +0100 |
commit | d1c5bf514be300931609b5c2213fc3aa630d18fd (patch) | |
tree | eac18a9ceb1f743f8d4d400cb0155350514bdf4a /main.py | |
parent | 1938f5fdbd95630563dc356d6ec473c7e5c0a441 (diff) |
Initial implementation
Diffstat (limited to 'main.py')
-rw-r--r-- | main.py | 47 |
1 files changed, 47 insertions, 0 deletions
@@ -0,0 +1,47 @@ +import argparse +from configparser import ConfigParser +from datetime import datetime, timezone +import sys + +from suntime import Sun, SunTimeException +from xdg import xdg_config_home + + +def get_location(args): + config = ConfigParser() + config_location = xdg_config_home().joinpath("auto-dark-mode", "config") + config.read(config_location) + + if args.latitude and args.longitude: + return latitude, longitude + + try: + latitude = config.getfloat("DEFAULT", "latitude") + longitude = config.getfloat("DEFAULT", "longitude") + except KeyError: + sys.exit(f"Please supply latitude and longitude with the --latitude and --longtide flags, or set them in {config_location}") + + return latitude, longitude + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Check if we're in day (after sunrise but before sunset) or night (after sunset but before sunrise) time") + parser.add_argument("--day", action="store_true", default=False, help="return successfully if it's day") + parser.add_argument("--night", action="store_true", default=True, help="return successfully if it's night (default)") + parser.add_argument("--latitude", type=float, help="specify your latitude") + parser.add_argument("--longitude", type=float, help="specify your longitude") + + args = parser.parse_args() + + latitude, longitude = get_location(args) + sun = Sun(latitude, longitude) + + utc_now = datetime.now(timezone.utc) + + if utc_now > sun.get_sunrise_time() and utc_now < sun.get_sunset_time(): + if not args.day: + sys.exit(1) + + else: + if args.day: + sys.exit(1) |