#!/usr/bin/env python3

import re
import sys
from typing import List

from alfred_utils import AlfredOutput, print_items


def extract_uuid(text: str) -> List[str]:
    """Extract UUID from text using regex pattern"""
    uuid_pattern = (
        r"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
    )
    matches = re.findall(uuid_pattern, text)
    return matches


def main():
    query = sys.argv[1] if len(sys.argv) > 1 else ""

    uuids = extract_uuid(query)

    items = []

    if uuids:
        for uuid in uuids:
            items.append(
                AlfredOutput(
                    title=uuid,
                    subtitle=f"UUID: {uuid}",
                    arg=uuid,
                    valid=True,
                )
            )
    else:
        items.append(
            AlfredOutput(
                title="No UUID found",
                subtitle="No valid UUID found in the input text",
                valid=False,
            )
        )

    print_items(items)


if __name__ == "__main__":
    main()
