def fetch():
global soup
- url = ('http://yppedia.puzzlepirates.com/%s_Ocean' %
- urllib.quote(ocean,''))
+ if opts.chart:
+ url_base = 'index.php?title=Template:Map:%s_Ocean&action=edit'
+ else:
+ url_base = '%s_Ocean'
+ url = ('http://yppedia.puzzlepirates.com/' +
+ (url_base % urllib.quote(ocean,'')))
debug('fetching',url)
dataf = urllib2.urlopen(url)
debug('fetched',dataf)
if o is None: return False
return o == ocean
-def parse():
+def parse_chart():
+ ta = soup.find('textarea')
+ debug('ta',ta)
+ s = ta.string
+ debug('s',s)
+ s = regexp.sub(r'\<\;', '<', s)
+ s = regexp.sub(r'\>\;', '>', s)
+ s = regexp.sub(r'\"\;', '"', s)
+ s = regexp.sub(r'\&\;', '&', s)
+ debug('s',s)
+ return s
+
+def parse_ocean():
firstarch = soup.find('a', attrs = {'title': title_arch_ok})
debug('fa',firstarch)
global opts
pa = OptionParser(
- '''usage: .../yppedia-ocean-scraper [--debug] OCEAN''')
+'''usage: .../yppedia-ocean-scraper [--debug] [--chart] OCEAN''')
ao = pa.add_option
+
+ ao('--chart', action='store_true', dest='chart',
+ help='print chart source rather than arch/island info')
ao('--debug', action='count', dest='debug', default=0,
help='enable debugging output')
ocean = args[0]
fetch()
- parse()
- output()
+ if opts.chart:
+ print parse_chart()
+ else:
+ parse_ocean()
+ output()
main()