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 )
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