Exemple #1
0
  def display_image(self, b64):

    # print meat image to console
    meat_img(
      b64 = b64, 
      debug = self.debug, 
      height = self.height, 
      width = self.width,
      gif = self.gif
    )
Exemple #2
0
  def on_message(self, *args):
 
    # parse response and upsert data
    try:
      resp = args[0]
      data = dict(
        message = resp['chat']['value']['message'].encode('utf-8'),
        b64_gif = resp['chat']['value']['media'],
        fingerprint = resp['chat']['value']['fingerprint'].encode('utf-8')
      )

      # optionally parse message to speakable version
      if self.speak:
        
        # replace urls with "link"
        text_to_speak = URLS.sub("...link...", data['message'])
        
        # bro hack!
        text_to_speak = re.sub("[Bb][Rr][Oo]", "broa", text_to_speak)

        # say "gif" for empty message
        if text_to_speak == '':
          text_to_speak = "gif"

        # hack fingerprint to int
        bro =  fingerprint_to_int(data['fingerprint'])

        # assign voice and rate
        voice = VOICES[bro % len(VOICES)]
        rate = RATES[bro % len(RATES)]
      
        # overwrite text_to_speak with optional in-message speech params
        m = SPEAK_ARGS.search(text_to_speak)
        if m:
          voice = m.group(3).title().strip() if m.group(2) is not None else voice
          rate = int(m.group(6).strip()) if m.group(5) is not None else rate
          text_to_speak = SPEECH.sub("", text_to_speak).strip()

      # print meat to console
      meat_img(b64_gif=data['b64_gif'], debug=self.debug)
      sys.stdout.write(data['message'])
      sys.stdout.write("\n\n")
      
      # speak meat!
      if self.speak:
        cmd = 'say -v %s -r %d %s' % (voice, rate, quote(text_to_speak))
        os.system(cmd)
      
    except Exception as e:
      if self.debug:
        sys.stderr.write("ERROR: " + e.message + "\n")
      else:
        pass