projects
/
zzz-dywypi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
9f52f03
)
WWWJDIC: Fallback to non-common words.
author
Eevee
<git@veekun.com>
Thu, 13 May 2010 06:45:48 +0000
(23:45 -0700)
committer
Eevee
<git@veekun.com>
Thu, 13 May 2010 21:52:37 +0000
(14:52 -0700)
plugins/WWWJDIC/plugin.py
patch
|
blob
|
history
diff --git
a/plugins/WWWJDIC/plugin.py
b/plugins/WWWJDIC/plugin.py
index
5e548a3
..
8d727a4
100644
(file)
--- a/
plugins/WWWJDIC/plugin.py
+++ b/
plugins/WWWJDIC/plugin.py
@@
-39,6
+39,10
@@
import urllib2
from BeautifulSoup import BeautifulSoup, NavigableString
from BeautifulSoup import BeautifulSoup, NavigableString
+def urlencode(string):
+ """Encodes some string as URL-encoded UTF-8."""
+ return urllib.quote(string.encode('utf8'))
+
class WWWJDIC(callbacks.Plugin):
"""Add the help for "@plugin help WWWJDIC" here
This should describe *how* to use this plugin."""
class WWWJDIC(callbacks.Plugin):
"""Add the help for "@plugin help WWWJDIC" here
This should describe *how* to use this plugin."""
@@
-79,19
+83,27
@@
class WWWJDIC(callbacks.Plugin):
# back out.
soup = BeautifulSoup(res)
if not soup.pre:
# back out.
soup = BeautifulSoup(res)
if not soup.pre:
- # Nothing found?
- reply = u"Hmm, nothing found -- but I only look for exact " \
- "matches and common words. Try denshi jisho directly: "
+ # Nothing found! Try again but allow non-P words
+ res = urllib2.urlopen(
+ u"http://www.csse.monash.edu.au/~jwb/cgi-bin/wwwjdic.cgi?1ZUQ"
+ + url_thing
+ )
+ soup = BeautifulSoup(res)
+
+ if not soup.pre:
+ # Still nothing. Bail.
+ reply = u"Hmm, I can't figure out what that means. " \
+ "Perhaps try denshi jisho directly: "
jisho_url = u"http://jisho.org/words?jap={jap}&eng={eng}&dict=edict"
if thing[0] in ('@', '#'):
# Prefixes for roomaji
jisho_url = u"http://jisho.org/words?jap={jap}&eng={eng}&dict=edict"
if thing[0] in ('@', '#'):
# Prefixes for roomaji
- reply += jisho_url.format(jap=
thing[1:]
, eng=u'')
+ reply += jisho_url.format(jap=
urlencode(thing[1:])
, eng=u'')
# wtf why is any() overridden
elif filter(lambda c: ord(c) > 256, thing):
# wtf why is any() overridden
elif filter(lambda c: ord(c) > 256, thing):
- reply += jisho_url.format(jap=
thing
, eng=u'')
+ reply += jisho_url.format(jap=
urlencode(thing)
, eng=u'')
else:
else:
- reply += jisho_url.format(jap=u'', eng=
thing
)
+ reply += jisho_url.format(jap=u'', eng=
urlencode(thing)
)
self._reply(irc, reply)
return
self._reply(irc, reply)
return