Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import colorama
- from colorama import Fore, Back, Style
- import xml.etree.ElementTree as ET
- import re
- import sys, getopt
- import string
- opts, args = getopt.getopt(sys.argv[1:], 'q:')
- for opt, arg in opts:
- if opt == '-q':
- searchSyntax = arg
- colorama.init()
- payload = {'format': 'json', 'action': 'query',
- 'list': 'search', 'srsearch': searchSyntax}
- r = requests.get("http://terraria.gamepedia.com/api.php", params=payload)
- j = r.json()["query"]["search"]
- for result in j:
- print(Fore.RED + result["title"] + Fore.WHITE)
- payload = {'format': 'json', 'action': 'query', 'titles': j[0]["title"],
- 'export': 0, 'redirects': 0, 'exportnowrap': 0}
- r = requests.get("http://terraria.gamepedia.com/api.php", params=payload)
- wikiText = ''.join(filter(lambda x: x in string.printable, r.text))
- wikiText = ET.fromstring(wikiText).find(
- '{http://www.mediawiki.org/xml/export-0.8/}page').find(
- '{http://www.mediawiki.org/xml/export-0.8/}revision').find(
- '{http://www.mediawiki.org/xml/export-0.8/}text').text
- positions = [m.start() for m in re.finditer('(?i)' + searchSyntax, wikiText)]
- remainder = 0
- for pos in positions:
- pos = pos + remainder
- wikiText = wikiText[:pos] + Style.BRIGHT + Fore.YELLOW + \
- wikiText[pos:pos+len(searchSyntax)] + Style.RESET_ALL + \
- wikiText[pos+len(searchSyntax):]
- remainder = remainder + len(Style.BRIGHT) + len(Fore.YELLOW) + len(Style.RESET_ALL)
- print(wikiText)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement