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)