I think it is better to give users to add rules using local text.
In each rule in the [rules] tab
text editor:
@[server1] google.com
@[server2] yahoo.com
@[server1] apple.com
in the [servers]
there are server1 = 111.222.333.444:53; server2 = 101.210.300.405:53
when the texts in [rules] are edited/re-saved,
@[xxxx] get converted to the address internally. (and also check it)
if the text cannot be converted, it cannot be saved. (e.g. no server1 in [servers])
In such a way, users no need to assign urls to download hosts file. and they can easily edit it.
If the server hosts are dead, it can easy to change the host addresses.
I think it is better to give users to add rules using local text. In each rule in the [rules] tab text editor: @[server1] google.com @[server2] yahoo.com @[server1] apple.com
in the [servers] there are server1 = 111.222.333.444:53; server2 = 101.210.300.405:53
when the texts in [rules] are edited/re-saved, @[xxxx] get converted to the address internally. (and also check it)
if the text cannot be converted, it cannot be saved. (e.g. no server1 in [servers])
In such a way, users no need to assign urls to download hosts file. and they can easily edit it. If the server hosts are dead, it can easy to change the host addresses.