Create rules script

This script is a lightweight example of how to create the same firewall rule on all your domains.
 1import os
 2
 3import dotenv
 4
 5from cf_rules import Cloudflare
 6
 7dotenv.load_dotenv(".env")
 8
 9local_rule_file = "Bad Bots.txt"
10# "Bad Bots.txt" must exist in your expressions folder
11remote_rule_name = "Handle Bad Bots"
12
13cf = Cloudflare("expressions")
14cf.auth_key(os.environ.get("EMAIL"), os.environ.get("KEY"))
15
16# List of domains as objects
17domains = cf.domains
18
19# Update your rule for all domains
20for domain in domains:
21    # WARNING If you have a better plan (pro, business or enterprise), don't forget to set your plan
22    # It will increase your rules limit for the import_rule method
23    cf.set_plan(domain.name)
24    # import_rule is an alias of create_rule
25    c = cf.import_rule(domain, local_rule_file, remote_rule_name, "block")
26    print(c)