rozsireni o predpovidani posilani
This commit is contained in:
@@ -21,6 +21,7 @@ from zoneinfo import ZoneInfo
|
||||
|
||||
from croniter import croniter
|
||||
from db import get_db, init_db, log_operation
|
||||
from forecast import fires_in_window, format_upcoming, window_for
|
||||
from random_times import compute_fire_times, minutes_to_hhmm, parse_window
|
||||
|
||||
WORKSPACE = Path(__file__).resolve().parent.parent.parent.parent
|
||||
@@ -430,6 +431,23 @@ def cmd_delivered(args: argparse.Namespace) -> int:
|
||||
conn.close()
|
||||
|
||||
|
||||
def cmd_upcoming(args: argparse.Namespace) -> int:
|
||||
"""List scheduled fires in a time window (the plan, not deliveries — see `delivered`)."""
|
||||
_ensure_db()
|
||||
conn = get_db(DB_PATH)
|
||||
try:
|
||||
now = datetime.now(PRAGUE).replace(tzinfo=None)
|
||||
start, end = window_for(now, args.date, args.days)
|
||||
for line in format_upcoming(fires_in_window(conn, start, end)):
|
||||
print(line)
|
||||
return 0
|
||||
except ValueError as exc:
|
||||
print(json.dumps({"error": str(exc)}), file=sys.stderr)
|
||||
return 1
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description="CRUD for reminders (SQLite backed)")
|
||||
sub = parser.add_subparsers(dest="command", required=True)
|
||||
@@ -474,6 +492,10 @@ def main() -> None:
|
||||
delivered_p = sub.add_parser("delivered", help="List reminders delivered to the user (default: today)")
|
||||
delivered_p.add_argument("--since", metavar="YYYY-MM-DD", help="List deliveries on/after this date instead of today")
|
||||
|
||||
upcoming_p = sub.add_parser("upcoming", help="List scheduled fires in a window (default: rest of today)")
|
||||
upcoming_p.add_argument("--date", metavar="YYYY-MM-DD", help="Show fires for this whole day")
|
||||
upcoming_p.add_argument("--days", type=int, metavar="N", help="Show fires for the next N calendar days (incl. today)")
|
||||
|
||||
args = parser.parse_args()
|
||||
dispatch = {
|
||||
"list": cmd_list,
|
||||
@@ -483,6 +505,7 @@ def main() -> None:
|
||||
"enable": cmd_enable,
|
||||
"disable": cmd_disable,
|
||||
"delivered": cmd_delivered,
|
||||
"upcoming": cmd_upcoming,
|
||||
}
|
||||
return dispatch[args.command](args)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user