Advertisement
Fer22f

Terraria Wiki Collection

Aug 27th, 2015
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.48 KB | None | 0 0
  1. import requests
  2. import colorama
  3. from colorama import Fore, Back, Style
  4. import xml.etree.ElementTree as ET
  5. import re
  6. import sys, getopt
  7. import string
  8.  
  9. opts, args = getopt.getopt(sys.argv[1:], 'q:')
  10. for opt, arg in opts:
  11.    if opt == '-q':
  12.         searchSyntax = arg
  13.  
  14. colorama.init()
  15.  
  16. payload = {'format': 'json', 'action': 'query',
  17.     'list': 'search', 'srsearch': searchSyntax}
  18. r = requests.get("http://terraria.gamepedia.com/api.php", params=payload)
  19. j = r.json()["query"]["search"]
  20.  
  21. for result in j:
  22.     print(Fore.RED + result["title"] + Fore.WHITE)
  23.    
  24. payload = {'format': 'json', 'action': 'query', 'titles': j[0]["title"],
  25.     'export': 0, 'redirects': 0, 'exportnowrap': 0}
  26. r = requests.get("http://terraria.gamepedia.com/api.php", params=payload)
  27.  
  28. wikiText = ''.join(filter(lambda x: x in string.printable, r.text))
  29. wikiText = ET.fromstring(wikiText).find(
  30.     '{http://www.mediawiki.org/xml/export-0.8/}page').find(
  31.     '{http://www.mediawiki.org/xml/export-0.8/}revision').find(
  32.     '{http://www.mediawiki.org/xml/export-0.8/}text').text
  33.  
  34. positions = [m.start() for m in re.finditer('(?i)' + searchSyntax, wikiText)]
  35. remainder = 0
  36. for pos in positions:
  37.     pos = pos + remainder
  38.     wikiText = wikiText[:pos] + Style.BRIGHT + Fore.YELLOW + \
  39.         wikiText[pos:pos+len(searchSyntax)] + Style.RESET_ALL + \
  40.         wikiText[pos+len(searchSyntax):]
  41.     remainder = remainder + len(Style.BRIGHT) + len(Fore.YELLOW) + len(Style.RESET_ALL)
  42.    
  43. print(wikiText)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement