diff --git a/cfedge.py b/cfedge.py index fdc9a85..5e7462d 100644 --- a/cfedge.py +++ b/cfedge.py @@ -5,11 +5,6 @@ import requests import os import argparse -class CFSite: - def __init__(self, url, plan): - self.url = url - self.plan = plan - parser = argparse.ArgumentParser(description='Check Cloudflare Edge Locations and post to Misskey.') parser.add_argument('--dry-run', action='store_true', help='Run without posting to Misskey') args = parser.parse_args() @@ -20,18 +15,13 @@ else: print("config.py not found") exit(1) -test_sites = [ - CFSite('misskey.io', 'Enterprise'), - CFSite('misskey.systems', 'Pro'), - CFSite('ohtrmi.cbrx.io', 'Free'), -] - result_txt = [] result_txt.append('Cloudflare Edge Location Check') result_txt.append('') # read from /cdn-cgi/trace -for site in test_sites: +for site in config.test_sites: + planstr = f' ({site.plan})' if site.plan else '' try: response = requests.get(f"https://{site.url}/cdn-cgi/trace", timeout=5) response.raise_for_status() @@ -40,9 +30,9 @@ for site in test_sites: if colo_line: colo = colo_line.split('=')[1] if colo in config.expected_edge_locations: - result_txt.append(f'- {site.url} ({site.plan}) : {colo}✅️') + result_txt.append(f'- {site.url}{planstr} : {colo}✅️') else: - result_txt.append(f'- {site.url} ({site.plan}) : {colo}⚠') + result_txt.append(f'- {site.url}{planstr} : {colo}⚠') else: print(f"Could not find 'colo' in the trace info for {site.url}") except requests.RequestException as e: diff --git a/classes.py b/classes.py new file mode 100644 index 0000000..f14b3a2 --- /dev/null +++ b/classes.py @@ -0,0 +1,4 @@ +class CFSite: + def __init__(self, url, plan = None): + self.url = url + self.plan = plan \ No newline at end of file diff --git a/config.example.py b/config.example.py index b3335a4..34bc849 100644 --- a/config.example.py +++ b/config.example.py @@ -1,3 +1,5 @@ +from classes import CFSite + # URL of Misskey instance misskey_url = 'https://your-misskey-instance.com' @@ -5,6 +7,14 @@ misskey_url = 'https://your-misskey-instance.com' # API token with notes:write permission is required misskey_token = 'your-misskey-token' +# List of test sites +# If you don't want to display the plan, set plan to None +test_sites = [ + CFSite(url = 'example1.com', plan = None), + CFSite(url = 'example2.com', plan = 'Pro'), + CFSite(url = 'example3.com', plan = 'Business'), +] + # Expected locations # Default is 4 locations in Japan # For location codes you want to add, see https://www.feitsui.com/en/article/26