import re
import sys
import time
-
-if sys.version_info >= (3, 0):
- import urllib.request
-else:
- import urllib2
+import urllib.request
variables = {
'dryrun': multiprocessing.Value('b', os.getenv('DRYRUN') is not None),
return None
def open_url(url):
- if sys.version_info >= (3, 0):
- # Specify our own user agent as Cloudflare doesn't seem to like the urllib one
- try:
- request = urllib.request.Request(url, headers={'User-Agent': 'catbot'})
- return urllib.request.urlopen(request)
- except urllib.error.HTTPError as err:
- log.error("Error {0} opening {1}: {2}".format(err.code, url, err.reason))
- return None
- except ValueError as err:
- log.error('Invalid URL {}'.format(url))
- return None
- else:
- sslctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
- # If we're on OSX with OpenSSL 0.9.x, manually specify preferred ciphers so CloudFlare can negotiate successfully
- if platform.system() == 'Darwin' and ssl.OPENSSL_VERSION_INFO[0] < 1:
- sslctx.set_ciphers("ECCdraft:HIGH:!aNULL")
- # Specify our own user agent as Cloudflare doesn't seem to like the urllib one
- try:
- request = urllib2.Request(url, headers={'User-Agent': 'catbot'})
- return urllib2.urlopen(request, context=sslctx)
- except urllib2.HTTPError as err:
- log.error("Error {0} opening {1}: {2}".format(err.code, url, err.reason))
- return None
- except ValueError as err:
- log.error('Invalid URL {}'.format(url))
- return None
+ # Specify our own user agent as Cloudflare doesn't seem to like the urllib one
+ try:
+ request = urllib.request.Request(url, headers={'User-Agent': 'catbot'})
+ return urllib.request.urlopen(request)
+ except urllib.error.HTTPError as err:
+ log.error("Error {0} opening {1}: {2}".format(err.code, url, err.reason))
+ return None
+ except ValueError as err:
+ log.error('Invalid URL {}'.format(url))
+ return None
# Get my idle status.
def status():