Skip to content

Commit 5a748e1

Browse files
committed
Fix for codeclimate
1 parent bc150d7 commit 5a748e1

File tree

2 files changed

+29
-29
lines changed

2 files changed

+29
-29
lines changed

noipy/utils.py

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -32,53 +32,54 @@ def read_input(message):
3232
return input(message)
3333

3434

35-
def get_ip():
36-
"""Return machine's origin IP address(es).
37-
"""
38-
lst = []
39-
try:
40-
r = requests.get(IP4ONLY_URL)
41-
if r.status_code == 200:
42-
lst.append(r.text.split(',')[1])
43-
except requests.exceptions.ConnectionError:
44-
pass
35+
def _try_request_get_and_store(url, callback):
4536
try:
46-
r = requests.get(IP6ONLY_URL)
37+
r = requests.get(url)
4738
if r.status_code == 200:
48-
lst.append(r.text.split(',')[1])
39+
callback(r)
4940
except requests.exceptions.ConnectionError:
5041
pass
42+
43+
44+
def get_ip():
45+
"""Return machine's origin IP address(es).
46+
"""
47+
48+
lst = []
49+
for url in (IP4ONLY_URL, IP6ONLY_URL):
50+
_try_request_get_and_store(
51+
url,
52+
lambda r: lst.append(r.text.split(',')[1])
53+
)
5154
if not lst:
52-
try:
53-
r = requests.get(HTTPBIN_URL)
54-
if r.status_code == 200:
55-
lst.append(r.json()['origin'])
56-
except requests.exceptions.ConnectionError:
57-
pass
55+
_try_request_get_and_store(
56+
HTTPBIN_URL,
57+
lambda r: lst.append(r.json()['origin'])
58+
)
5859
if not lst:
5960
return None
6061
return ','.join(lst)
6162

6263

63-
def get_dns_ip(dnsname):
64-
"""Return machine's current IP address(es) in DNS.
65-
"""
64+
def _safe_resolve(dnsname, dnstype):
6665
resolver = dns.resolver.Resolver(StringIO("nameserver %s" % COMMON_DNS))
6766

6867
try:
6968
resolve = resolver.resolve
7069
except AttributeError:
7170
resolve = resolver.query
7271

73-
lst = []
74-
try:
75-
lst += [a.address for a in resolve(dnsname, 'A')]
76-
except dns.exception.DNSException:
77-
pass
7872
try:
79-
lst += [a.address for a in resolve(dnsname, 'AAAA')]
73+
return list(resolve(dnsname, dnstype))
8074
except dns.exception.DNSException:
81-
pass
75+
return []
76+
77+
78+
def get_dns_ip(dnsname):
79+
"""Return machine's current IP address(es) in DNS.
80+
"""
81+
82+
lst = [a.address for a in _safe_resolve(dnsname, 'A') + _safe_resolve(dnsname, 'AAAA')]
8283
if not lst:
8384
try:
8485
lst.append(socket.gethostbyname(dnsname))

test/test_noipy.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ def test_get_dns_ip(self):
9494
% ip)
9595

9696

97-
9897
class PluginsTest(unittest.TestCase):
9998

10099
def setUp(self):

0 commit comments

Comments
 (0)