mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-19 04:21:14 +00:00
commit
d7c67ad09d
30
thefuck/rules/whois.py
Normal file
30
thefuck/rules/whois.py
Normal file
@ -0,0 +1,30 @@
|
||||
from urllib.parse import urlparse
|
||||
|
||||
|
||||
def match(command, settings):
|
||||
"""
|
||||
What the `whois` command returns depends on the 'Whois server' it contacted
|
||||
and is not consistent through different servers. But there can be only two
|
||||
types of errors I can think of with `whois`:
|
||||
- `whois https://en.wikipedia.org/` → `whois en.wikipedia.org`;
|
||||
- `whois en.wikipedia.org` → `whois wikipedia.org`.
|
||||
So we match any `whois` command and then:
|
||||
- if there is a slash: keep only the FQDN;
|
||||
- if there is no slash but there is a point: removes the left-most
|
||||
subdomain.
|
||||
|
||||
We cannot either remove all subdomains because we cannot know which part is
|
||||
the subdomains and which is the domain, consider:
|
||||
- www.google.fr → subdomain: www, domain: 'google.fr';
|
||||
- google.co.uk → subdomain: None, domain; 'google.co.uk'.
|
||||
"""
|
||||
return 'whois' in command.script
|
||||
|
||||
|
||||
def get_new_command(command, settings):
|
||||
url = command.script.split()[1]
|
||||
|
||||
if '/' in command.script:
|
||||
return 'whois ' + urlparse(url).netloc
|
||||
elif '.' in command.script:
|
||||
return 'whois ' + '.'.join(urlparse(url).path.split('.')[1:])
|
Loading…
x
Reference in New Issue
Block a user