Refactoring work to make development faster
The input types are too complicated, taking either a URL or a domain, or either.. I have made a single type, defined as a Pydantic type, which is called DomainName but accepts a URL just as well. It will spit out only the domain, it discards the scheme and the path. I think this might be necessary because otherwise a potential attacker can decide a site and the exact path we should connect to, which I think might lead to some problems, such as leaks by the server being allowed access to Greenhost only URLs. Also this way we can decide which checks to run and the input is unified (even for checking something mail related, the user may enter http://domain.tld
which is ridiculous but user friendly.
At the same time I had to refactor tests a bit, so I defined some extra tests for the core files, the types, and did away with some unnecessary complexity. More lines removed than added except for tests.