annotate python/tld.py @ 912:5d9c08d2a090 default tip

nvm
author Jeff Hammel <k0scist@gmail.com>
date Wed, 01 May 2024 14:39:53 -0700
parents 0bc7c1a5eb83
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
117
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
1 #!/usr/bin/env python
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
2
812
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
3 """
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
4 Top-Level Domain names (TLDs), country codes only
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
5 """
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
6
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
7 import argparse
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
8 import sys
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
9 import urllib2
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
10
117
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
11 URL = 'http://www.palosverdes.com/jesse/irc/country.txt'
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
12
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
13
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
14 def codes():
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
15 f = urllib2.urlopen(URL)
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
16 codes = {}
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
17 for line in f.readlines():
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
18 line = line.strip()
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
19 if not line:
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
20 continue
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
21 key, value = line.split(None, 1)
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
22 codes[key.lower()] = value
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
23 return codes
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
24 codes = codes()
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
25
812
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
26
117
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
27 def get(code):
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
28 code = code.lstrip('.').lower()
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
29 return codes.get(code)
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
30
812
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
31 def main(args=sys.argv[1:]):
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
32 """CLI"""
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
33
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
34 # parse command line
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
35 parser = argparse.ArgumentParser(description=__doc__)
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
36 parser.add_argument('tld', nargs='+',
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
37 help="country-code TLD to look up")
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
38 options = parser.parse_args(args)
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
39
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
40 # lookup + output
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
41 for arg in options.tld:
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
42 print ('{}: {}'.format(arg, get(arg)))
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
43
117
c7edd15d7f8b add a function to get a TLD from a webservice
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
44 if __name__ == '__main__':
812
0bc7c1a5eb83 make into an almost real CLI
Jeff Hammel <k0scist@gmail.com>
parents: 117
diff changeset
45 main()