#! /usr/bin/env python import optparse import sys import wikipedia from functools import partial version = "0.0.2" def display(o): if isinstance(o, list): output = [] for item in o: output.append(item.encode("utf-8", "replace")) print "'%s'" % "', '".join(output) else: print o.encode("utf-8", "replace") def parse_args(): parser = optparse.OptionParser(usage="!wiki [--search|--url]") parser.add_option("--search", action="store_true") parser.add_option("--url", action="store_true") parser.add_option("-v", "--version", action="store_true") return parser.parse_args() def main(): options, args = parse_args() if options.version: print version sys.exit(0) if args: topic = args[0] if options.search: results = wikipedia.search(topic) if len(results) == 1: display(wikipedia.summary(results[0])) else: display(results) elif options.url: page = wikipedia.page(topic) display(page.url) else: try: display(wikipedia.summary(topic)) except wikipedia.exceptions.DisambiguationError as e: display(e.options) if __name__ == "__main__": main()