import requests
import sys
import re

# Corero username and password
username = ""
password = ""

url = "https://cms.gsl.tools/api/v10/bgp-mitigation/flowspec-routes/entry"

response = requests.get(url, auth=(username, password))

lastline=0

if response.status_code == 200:
    filter_arg = sys.argv[1] if len(sys.argv) > 1 else None

    for item in response.json()["items"]:
        if item["state"] == "active":
            if filter_arg is None:
                print('-' * 120)
                print("Name: " + item["name"] + "\nMatch: " + item["match"] + "\nAction: " + item["action"] + "\nAdded At: " + item["firstAddedTime"] + "\nLast Updated: " + item["lastUpdatedTime"] + "\nActivated At: " + item["activationTime"] + "\nState Reason: " + item["stateReason"] + "\nSource: " + item["source"])
                lastline=1
            else:
                for key, value in item.items():
                    if re.match(filter_arg, value):
                        print('-' * 120)
                        print("Name: " + item["name"] + "\nMatch: " + item["match"] + "\nAction: " + item["action"] + "\nAdded At: " + item["firstAddedTime"] + "\nLast Updated: " + item["lastUpdatedTime"] + "\nActivated At: " + item["activationTime"] + "\nState Reason: " + item["stateReason"] + "\nSource: " + item["source"])
                        lastline=1
else:
    print("Error: Corero API returned a status code of {}".format(response.status_code))

if lastline == 1:
    print('-' * 120)