fix: filter NOTE: lines from tea output before YAML parsing
Also construct proper Forgejo URLs from repo+index
This commit is contained in:
parent
46c0bcfb42
commit
7bb19ef3fb
1 changed files with 14 additions and 5 deletions
19
bin/argus
19
bin/argus
|
|
@ -152,22 +152,31 @@ def tea_fetch_notifications() -> list:
|
||||||
|
|
||||||
output = tea_cmd(["notifications", "list", "--mine", "-o", "yaml"])
|
output = tea_cmd(["notifications", "list", "--mine", "-o", "yaml"])
|
||||||
|
|
||||||
|
# Filter out "NOTE:" lines that tea prints to stdout (breaks YAML parsing)
|
||||||
|
lines = [l for l in output.split('\n') if not l.startswith('NOTE:')]
|
||||||
|
clean_output = '\n'.join(lines)
|
||||||
|
|
||||||
# Parse YAML output
|
# Parse YAML output
|
||||||
try:
|
try:
|
||||||
notifications = yaml.safe_load(output) or []
|
notifications = yaml.safe_load(clean_output) or []
|
||||||
except:
|
except Exception as e:
|
||||||
# Fallback: parse line by line if yaml fails
|
print(f"Warning: Failed to parse tea output: {e}", file=sys.stderr)
|
||||||
notifications = []
|
notifications = []
|
||||||
|
|
||||||
results = []
|
results = []
|
||||||
for notif in notifications:
|
for notif in notifications:
|
||||||
# tea notifications format differs from gh
|
# tea notifications format differs from gh
|
||||||
|
repo = notif.get("repository", "")
|
||||||
|
index = notif.get("index", "")
|
||||||
|
# Construct URL from repo and issue/PR number
|
||||||
|
url = f"https://forgejo.tail593e12.ts.net/{repo}/issues/{index}" if repo and index else ""
|
||||||
|
|
||||||
results.append({
|
results.append({
|
||||||
"id": str(notif.get("id", "")),
|
"id": str(notif.get("id", "")),
|
||||||
"repo_id": notif.get("repository", ""),
|
"repo_id": repo,
|
||||||
"reason": notif.get("type", "unknown"),
|
"reason": notif.get("type", "unknown"),
|
||||||
"title": notif.get("title", ""),
|
"title": notif.get("title", ""),
|
||||||
"url": "", # tea doesn't provide URL directly
|
"url": url,
|
||||||
"type": notif.get("type", "").lower(),
|
"type": notif.get("type", "").lower(),
|
||||||
})
|
})
|
||||||
return results
|
return results
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue