old_contents: #!/usr/bin/env python
  
  import codecs
  
  import _pathfix
  
  from mhapi.db import MHDB
  from mhapi import rewards
  
  
  def get_utf8_writer(writer):
      return codecs.getwriter("utf8")(writer)
  
  
  if __name__ == '__main__':
      import sys
      import os
      import os.path
  
      if len(sys.argv) != 2:
          print("Usage: %s 'item name'" % sys.argv[0])
          sys.exit(os.EX_USAGE)
  
      item_name = " ".join(sys.argv[1].lower().split()).title()
  
      out = get_utf8_writer(sys.stdout)
      err_out = get_utf8_writer(sys.stderr)
  
      db = MHDB(_pathfix.db_path)
  
      item_row = rewards.find_item(db, item_name, err_out)
      if item_row is None:
          sys.exit(os.EX_DATAERR)
      ir = rewards.ItemRewards(db, item_row)
      ir.print_all(out)
  
new_contents: #!/usr/bin/env python
  
  import _pathfix
  
  from mhapi.db import MHDB
  from mhapi import rewards
  from mhapi.util import get_utf8_writer
  
  
  def print_rewards(item_name):
      out = get_utf8_writer(sys.stdout)
      err_out = get_utf8_writer(sys.stderr)
  
      db = MHDB(_pathfix.db_path)
  
      # TODO: implement fuzzy search like in mhrewards using difflib
      #item_names = db.get_item_names(rewards.ITEM_TYPES)
  
      item_row = rewards.find_item(db, item_name, err_out)
      if item_row is None:
          sys.exit(os.EX_DATAERR)
      ir = rewards.ItemRewards(db, item_row)
      ir.print_all(out)
  
  
  _ITEM_NAME_SPECIAL = {
      "welldonesteak":	"Well-done Steak",
      "lrgelderdragonbone":	"Lrg ElderDragon Bone",
      "highqualitypelt":	"High-quality Pelt",
      "kingsfrill":   	"King's Frill",
      "btetsucabrahardclaw":	"B.TetsucabraHardclaw",
      "heartstoppingbeak":	"Heart-stopping Beak",
      "dsqueenconcentrate":	"D.S.QueenConcentrate",
      "dahrenstone":  	"Dah'renstone",
      "championsweapon":	"Champion's Weapon",
      "championsarmor":	"Champion's Armor",
      "popeyedgoldfish":	"Pop-eyed Goldfish",
      "100mwantedposter":	"100m+ Wanted Poster",
      "goddesssmelody":	"Goddess's Melody",
      "goddesssembrace":	"Goddess's Embrace",
      "capcommhspissue":	"Capcom MH Sp. Issue",
      "goddesssfire": 	"Goddess's Fire",
      "huntersticket":	"Hunter's Ticket",
      "herosseal":    	"Hero's Seal",
      "thetaleofpoogie":	"The Tale of Poogie",
      "goddesssgrace":	"Goddess's Grace",
      "conquerorsseal":	"Conqueror's Seal",
      "conquerorssealg":	"Conqueror's Seal G",
      "questersticket":	"Quester's Ticket",
      "instructorsticket":"Instructor's Ticket",
      "veticket":         "VE Ticket",
      "vedeluxeticket":	"VE Deluxe Ticket",
      "vebronzeticket":	"VE Bronze Ticket",
      "vesilverticket":	"VE Silver Ticket",
      "vegoldenticket":	"VE Golden Ticket",
      "vecosmicticket":	"VE Cosmic Ticket",
  }
  
  
  def item_name_key(item_name):
      return item_name.translate(None, " .-'+").lower()
  
  
  def canonical_item_name(item_name):
      key = item_name_key(item_name)
      if key in _ITEM_NAME_SPECIAL:
          return _ITEM_NAME_SPECIAL[key]
      else:
          return " ".join(item_name.lower().split()).title()
  
  
  if __name__ == '__main__':
      import sys
      import os
      import os.path
  
      if len(sys.argv) != 2:
          print("Usage: %s 'item name'" % sys.argv[0])
          sys.exit(os.EX_USAGE)
  
      item_name = canonical_item_name(sys.argv[1])
  
      print_rewards(item_name)
  
subject: handle item names that aren't title case