Generates the app id for a given shortcut. Steam uses app ids as a unique
  identifier for games, but since shortcuts dont have a canonical serverside
  representation they need to be generated on the fly. The important part
  about this function is that it will generate the same app id as Steam does
  for a given shortcut

def shortcut_app_id(shortcut):
  """
  Generates the app id for a given shortcut. Steam uses app ids as a unique
  identifier for games, but since shortcuts dont have a canonical serverside
  representation they need to be generated on the fly. The important part
  about this function is that it will generate the same app id as Steam does
  for a given shortcut
  """
  algorithm = Crc(width = 32, poly = 0x04C11DB7, reflect_in = True, xor_in = 0xffffffff, reflect_out = True, xor_out = 0xffffffff)
  crc_input = ''.join([shortcut.exe,shortcut.name])
  high_32 = algorithm.bit_by_bit(crc_input) | 0x80000000
  full_64 = (high_32 << 32) | 0x02000000
  return str(full_64)