75 lines
3.1 KiB
Python
Executable File
75 lines
3.1 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""CLI tool for managing configuration."""
|
|
|
|
import argparse
|
|
import asyncio
|
|
from config import Config
|
|
|
|
async def main():
|
|
parser = argparse.ArgumentParser(description="Ollama Notification System Configuration")
|
|
parser.add_argument("--set-ollama-endpoint", help="Set Ollama endpoint URL")
|
|
parser.add_argument("--set-ollama-model", help="Set Ollama model name")
|
|
parser.add_argument("--set-silent-time", nargs=2, metavar=("START", "END"),
|
|
help="Set silent time range (e.g., 20:00 12:00)")
|
|
parser.add_argument("--set-interval-range", nargs=2, type=int, metavar=("MIN", "MAX"),
|
|
help="Set notification interval range in minutes")
|
|
parser.add_argument("--set-bark-url", help="Set Bark API URL")
|
|
parser.add_argument("--set-bark-key", help="Set Bark device key")
|
|
parser.add_argument("--set-ntfy-url", help="Set Ntfy API URL")
|
|
parser.add_argument("--set-ntfy-topic", help="Set Ntfy topic")
|
|
parser.add_argument("--set-ntfy-token", help="Set Ntfy access token")
|
|
parser.add_argument("--show", action="store_true", help="Show current configuration")
|
|
|
|
args = parser.parse_args()
|
|
|
|
config = Config()
|
|
|
|
if args.set_ollama_endpoint:
|
|
config.ollama_endpoint = args.set_ollama_endpoint
|
|
|
|
if args.set_ollama_model:
|
|
config.ollama_model = args.set_ollama_model
|
|
|
|
if args.set_silent_time:
|
|
config.silent_start = args.set_silent_time[0]
|
|
config.silent_end = args.set_silent_time[1]
|
|
|
|
if args.set_interval_range:
|
|
config.min_interval = args.set_interval_range[0]
|
|
config.max_interval = args.set_interval_range[1]
|
|
|
|
if args.set_bark_url:
|
|
config.bark_api_url = args.set_bark_url
|
|
|
|
if args.set_bark_key:
|
|
config.bark_device_key = args.set_bark_key
|
|
|
|
if args.set_ntfy_url:
|
|
config.ntfy_api_url = args.set_ntfy_url
|
|
|
|
if args.set_ntfy_topic:
|
|
config.ntfy_topic = args.set_ntfy_topic
|
|
|
|
if args.set_ntfy_token:
|
|
config.ntfy_access_token = args.set_ntfy_token
|
|
|
|
if any([args.set_ollama_endpoint, args.set_ollama_model, args.set_silent_time,
|
|
args.set_interval_range, args.set_bark_url, args.set_bark_key,
|
|
args.set_ntfy_url, args.set_ntfy_topic, args.set_ntfy_token]):
|
|
config.save()
|
|
print("Configuration saved successfully!")
|
|
|
|
if args.show or not any(vars(args).values()):
|
|
print("Current Configuration:")
|
|
print(f" Ollama Endpoint: {config.ollama_endpoint}")
|
|
print(f" Ollama Model: {config.ollama_model}")
|
|
print(f" Silent Time: {config.silent_start} - {config.silent_end}")
|
|
print(f" Interval Range: {config.min_interval} - {config.max_interval} minutes")
|
|
print(f" Bark API URL: {config.bark_api_url or 'Not set'}")
|
|
print(f" Bark Device Key: {'***' if config.bark_device_key else 'Not set'}")
|
|
print(f" Ntfy API URL: {config.ntfy_api_url or 'Not set'}")
|
|
print(f" Ntfy Topic: {config.ntfy_topic or 'Not set'}")
|
|
print(f" Ntfy Token: {'***' if config.ntfy_access_token else 'Not set'}")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main()) |