Skip to content

Commit f12e95b

Browse files
committed
Fix for codeclimate
1 parent bc150d7 commit f12e95b

File tree

2 files changed

+23
-26
lines changed

2 files changed

+23
-26
lines changed

noipy/utils.py

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -35,26 +35,26 @@ def read_input(message):
3535
def get_ip():
3636
"""Return machine's origin IP address(es).
3737
"""
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
45-
try:
46-
r = requests.get(IP6ONLY_URL)
47-
if r.status_code == 200:
48-
lst.append(r.text.split(',')[1])
49-
except requests.exceptions.ConnectionError:
50-
pass
51-
if not lst:
38+
39+
def _try_request_get_and_store(url, callback):
5240
try:
53-
r = requests.get(HTTPBIN_URL)
41+
r = requests.get(url)
5442
if r.status_code == 200:
55-
lst.append(r.json()['origin'])
43+
callback(r)
5644
except requests.exceptions.ConnectionError:
5745
pass
46+
47+
lst = []
48+
for url in (IP4ONLY_URL, IP6ONLY_URL):
49+
_try_request_get_and_store(
50+
url,
51+
lambda r: lst.append(r.text.split(',')[1])
52+
)
53+
if not lst:
54+
_try_request_get_and_store(
55+
HTTPBIN_URL,
56+
lambda r: lst.append(r.json()['origin'])
57+
)
5858
if not lst:
5959
return None
6060
return ','.join(lst)
@@ -70,15 +70,13 @@ def get_dns_ip(dnsname):
7070
except AttributeError:
7171
resolve = resolver.query
7272

73-
lst = []
74-
try:
75-
lst += [a.address for a in resolve(dnsname, 'A')]
76-
except dns.exception.DNSException:
77-
pass
78-
try:
79-
lst += [a.address for a in resolve(dnsname, 'AAAA')]
80-
except dns.exception.DNSException:
81-
pass
73+
def _safe_resolve(dnsname, dnstype):
74+
try:
75+
return list(resolve(dnsname, dnstype))
76+
except dns.exception.DNSException:
77+
return []
78+
79+
lst = [a.address for a in _safe_resolve(dnsname, 'A') + _safe_resolve(dnsname, 'AAAA')]
8280
if not lst:
8381
try:
8482
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)