25
25
import re
26
26
import requests
27
27
import feedparser
28
+ import urllib
29
+ import ssl
30
+ from sys import platform
28
31
29
32
from exe .engine .idevice import Idevice
30
33
from exe .engine .field import TextAreaField
31
34
from exe .engine .translate import lateTranslate
32
35
33
36
37
+ class UrlOpener (urllib .FancyURLopener ):
38
+ """
39
+ Set a distinctive User-Agent, so Wikipedia.org knows we're not spammers
40
+ """
41
+
42
+ urllib ._urlopener = UrlOpener ()
43
+
34
44
# ===========================================================================
35
45
class RssIdevice (Idevice ):
36
46
"""
@@ -100,10 +110,15 @@ def loadRss(self, url):
100
110
try :
101
111
rssDic = []
102
112
headers = {'User-Agent' :'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0' }
103
- response = requests .get (url , timeout = 10 , headers = headers )
104
- statuscode = response .status_code
105
- if statuscode == 200 :
106
- rssDic = feedparser .parse (response .text )
113
+ #response = requests.get(url, timeout=10, headers=headers, verify='cacert.pem')
114
+ if (platform == 'darwin' and hasattr (sys , 'frozen' )):
115
+ response = urllib .urlopen (url , context = ssl .create_default_context (cafile = 'cacert.pem' ))
116
+ if platform == 'darwin' :
117
+ response = urllib .urlopen (url , context = ssl .create_default_context (cafile = 'cacert.pem' ))
118
+ else :
119
+ response = urllib .urlopen (url )
120
+ #rssDic = feedparser.parse(response.text)
121
+ rssDic = feedparser .parse (response .read ())
107
122
length = len (rssDic ['entries' ])
108
123
if length > 0 :
109
124
content += "<ul>"
@@ -112,8 +127,10 @@ def loadRss(self, url):
112
127
rssDic ['entries' ][i ].link , rssDic ['entries' ][i ].title )
113
128
content += "</ul>"
114
129
except Exception , error :
115
- log .error (unicode (error ))
116
- content += _ (u"Unable to load RSS feed from %s <br/>Please check the spelling and connection and try again." ) % url
130
+ content += _ (u"Unable to load RSS feed from %s <br/>Please check the spelling and connection and try again. " ) % url
131
+ content += _ (u"Error: %s" ) % unicode (error )
132
+ # import traceback
133
+ # content += _(u"Traceback: %s") % unicode(traceback.format_exc())
117
134
118
135
if content == "" :
119
136
content += _ (u"Unable to load RSS feed from %s <br/>Please check the spelling and connection and try again." ) % url
0 commit comments