def handle (self, message): parser = Parser(message.text) first_word = parser.next_word() user = get_connection_user(message.connection) if first_word.lower() == 'yay' or first_word.lower() == 'boo': playing = Request.objects.filter(status='P') if not playing: message.respond("There is no playing track to vote on") return True track = playing[0].track if first_word.lower() == 'yay': score = 1 else: score = -1 existing = Vote.objects.filter(request=playing[0], created_by=user) if existing: message.respond("You have already voted on this request") return True Vote.objects.create(request=playing[0], track=track, score=score, created_by=user, modified_by=user) if score == 1: message.respond("Your positive vote has been recorded for %s" % track.name) call(["mpg123", '/Users/nicp/nyaruka/jukebox/yay.mp3']) else: message.respond("Your negative vote has been recorded for %s" % track.name) call(["mpg123", '/Users/nicp/nyaruka/jukebox/boo.mp3']) else: matching = Track.objects.filter(album__artist__name__icontains=message.text).order_by('?') if matching: existing = Request.objects.filter(status__in=['Q', 'P'], track__album__artist=matching[0].album.artist) if not existing: Request.objects.create(track=matching[0], created_by=user, modified_by=user) message.respond("Queuing the track: %s" % matching[0].name) else: message.respond("That artist is already in the queue, please pick something else"); else: message.respond("No matching song found for: %s" % message.text) return True
def handle (self, message): parser = Parser(message.text) first_word = parser.next_word() user = get_connection_user(message.connection) if first_word.lower() == 'yay' or first_word.lower() == 'boo': playing = Request.objects.filter(status='P') if not playing: message.respond("There is no playing track to vote on") return True track = playing[0].track if first_word.lower() == 'yay': score = 1 else: score = -1 existing = Vote.objects.filter(request=playing[0], created_by=user) if existing: message.respond("You have already voted on this request") return True Vote.objects.create(request=playing[0], track=track, score=score, created_by=user, modified_by=user) if score == 1: message.respond("Your positive vote has been recorded for %s" % track.name) call(["mpg123", '/home/precise/Projects/jukebox/jukebox/yay.mp3']) else: message.respond("Your negative vote has been recorded for %s" % track.name) call(["mpg123", '/home/precise/Projects/jukebox/jukebox/boo.mp3']) else: matching = Track.objects.filter(album__artist__name__icontains=message.text).order_by('?') if matching: existing = Request.objects.filter(status__in=['Q', 'P'], track__album__artist=matching[0].album.artist) if not existing: Request.objects.create(track=matching[0], created_by=user, modified_by=user) message.respond("Queuing the track: %s" % matching[0].name) else: message.respond("That artist is already in the queue, please pick something else"); else: message.respond("No matching song found for: %s" % message.text) return True
def handle_message(self, message): """ Messages have the following keywords: 'miles' or 'car' """ parser = Parser(message.text) keyword = parser.next_keyword(KEYWORDS, _('unrecognized', "That message is not recognized, must start with miles or car")) if keyword in ['car', 'c']: return self.handle_car(message, parser) elif keyword in ['miles', 'm']: return self.handle_miles(message, parser)
def handle_message(self, message): """ Messages have the following keywords: 'miles' or 'car' """ parser = Parser(message.text) keyword = parser.next_keyword( KEYWORDS, _('unrecognized', "That message is not recognized, must start with miles or car")) if keyword in ['car', 'c']: return self.handle_car(message, parser) elif keyword in ['miles', 'm']: return self.handle_miles(message, parser)
def handle(self, message): profile = get_sms_profile(message.connection) # handle activating the appropriate SMS language # if this connection has a profile, use that language if profile: translation.activate(profile.language) # otherwise use the default SMS language else: translation.activate(settings.DEFAULT_SMS_LANGUAGE) parser = Parser(message.text) # check whether this is a lang message keyword = parser.next_keyword(['lang']) if keyword: if not profile: message.respond( _('lang-unknown-user', "Sorry, your phone number is not registered.")) return True # just querying the language language = parser.next_word() if not language: message.respond( _('lang-current-lang', "Your language is set to {{ language }}.", dict(language=profile.get_language_display()))) return True else: # lowercase the language they passed us language = language.lower() lang_mapping = dict() for lang in settings.LANGUAGES: code = lang[0].lower() lang_mapping[code] = code parts = code.split('_') if not parts[0] in lang_mapping: lang_mapping[parts[0]] = code # this language doesn't exit if not language.lower() in lang_mapping: message.respond( _( 'lang-unknown-language', "Sorry, the language code '{{ code }}' is not supported.", dict(code=language.lower()))) return True profile.language = lang_mapping[language.lower()] profile.save() # activate the new language translation.activate(profile.language) message.respond( _('lang-set-success', "Success, your language is now set to {{ language }}.", dict(language=profile.get_language_display()))) return True return False
def handle (self, message): """ Tries to look up a profile for the user and set the default language. Also takes care of handing the 'lang' keyword """ profile = get_sms_profile(message.connection) # handle activating the appropriate SMS language # if this connection has a profile, use that language if profile: translation.activate(profile.language) # otherwise use the default SMS language else: translation.activate(settings.DEFAULT_SMS_LANGUAGE) parser = Parser(message.text) # check whether this is a lang message keyword = parser.next_keyword(['lang']) if keyword: if not profile: message.respond(_('lang-unknown-user', "Sorry, your phone number is not registered.")) return True # just querying the language language = parser.next_word() if not language: message.respond(_('lang-current-lang', "Your language is set to {{ language }}.", dict(language=App.get_language_display(profile.language)))) return True else: # lowercase the language they passed us language = language.lower() lang_mapping = dict() for lang in settings.LANGUAGES: code = lang[0].lower() lang_mapping[code] = code parts = code.split('_') if not parts[0] in lang_mapping: lang_mapping[parts[0]] = code # this language doesn't exit if not language.lower() in lang_mapping: message.respond(_('lang-unknown-language', "Sorry, the language code '{{ code }}' is not supported.", dict(code=language.lower()))) return True profile.language = lang_mapping[language.lower()] profile.save() # activate the new language translation.activate(profile.language) message.respond(_('lang-set-success', "Success, your language is now set to {{ language }}.", dict(language=App.get_language_display(profile.language)))) return True return False