summaryrefslogtreecommitdiff
path: root/main.py
blob: 4a014b98ba259a1070046a4540c3d7eaeca66216 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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)