def send_new_subscriber_email(user1, playlist_model): user2 = playlist_model.owner if not user2.send_new_follower_email: return if user2.last_emailed: delta = datetime.now() - user2.last_emailed if delta.seconds < 60: return user1_display_name = get_display_name_for_youtify_user_model(user1) user2_display_name = get_display_name_for_youtify_user_model(user2) user1_profile_url = get_url_for_youtify_user_model(user1) unsubscribe_link = 'http://www.youtify.com/unsubscribe?uid=%s&token=%s' % (user2.key().id(), md5(EMAIL_UNSUBSCRIBE_SALT + str(user2.key().id())).hexdigest()) body = Template(SUBSCRIBE_MAIL_TEMPLATE).substitute({ 'user1_display_name': user1_display_name, 'user2_display_name': user2_display_name, 'user1_profile_url': user1_profile_url, 'playlist_title': playlist_model.title, 'unsubscribe_link': unsubscribe_link, }) subject="%s now subscribes to one of your playlists!" % user1_display_name mail.send_mail(sender="Youtify <*****@*****.**>", to="%s <%s>" % (user2_display_name, user2.google_user2.email()), subject=subject, body=body) user2.last_emailed = datetime.now() user2.save()
def post(self): user = get_current_youtify_user_model() nickname = self.request.get('nickname', user.nickname) first_name = self.request.get('first_name', user.first_name) last_name = self.request.get('last_name', user.first_name) tagline = self.request.get('tagline', user.tagline) if nickname and not re.match('^[A-Za-z0-9_]{1,36}$', nickname): self.error(400) self.response.out.write('Nickname must be 1-36 alphanumerical characters (no whitespace)') return if nickname and nickname in BLOCKED_NICKNAMES: self.error(400) self.response.out.write('That nickname is not allowed.') return for u in YoutifyUser.all().filter('nickname_lower = ', nickname.lower()): if str(u.key().id()) != str(user.key().id()): self.error(409) self.response.out.write('Nickname is already taken') return user.nickname = nickname user.nickname_lower = nickname.lower() user.first_name = first_name user.last_name = last_name user.tagline = tagline user.save() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(get_display_name_for_youtify_user_model(user))
def send_new_follower_email(user1, user2): if not user2.send_new_follower_email: return if user2.last_emailed: delta = datetime.now() - user2.last_emailed if delta.seconds < 60: return user1_display_name = get_display_name_for_youtify_user_model(user1) user2_display_name = get_display_name_for_youtify_user_model(user2) user1_profile_url = get_url_for_youtify_user_model(user1) unsubscribe_link = "http://www.youtify.com/unsubscribe?uid=%s&token=%s" % ( user2.key().id(), md5(EMAIL_UNSUBSCRIBE_SALT + str(user2.key().id())).hexdigest(), ) body = Template(FOLLOW_MAIL_TEMPLATE).substitute( { "user1_display_name": user1_display_name, "user2_display_name": user2_display_name, "user1_profile_url": user1_profile_url, "unsubscribe_link": unsubscribe_link, } ) subject = "%s is now following you on Youtify!" % user1_display_name mail.send_mail( sender="Youtify <*****@*****.**>", to="%s <%s>" % (user2_display_name, user2.google_user2.email()), subject=subject, body=body, ) user2.last_emailed = datetime.now() user2.save()
def post(self): user = get_current_youtify_user_model() nickname = self.request.get('nickname', user.nickname) first_name = self.request.get('first_name', user.first_name) last_name = self.request.get('last_name', user.first_name) tagline = self.request.get('tagline', user.tagline) if nickname and not re.match('^[A-Za-z0-9_]{1,36}$', nickname): self.error(400) self.response.out.write( 'Nickname must be 1-36 alphanumerical characters (no whitespace)' ) return if nickname and nickname in BLOCKED_NICKNAMES: self.error(400) self.response.out.write('That nickname is not allowed.') return for u in YoutifyUser.all().filter('nickname_lower = ', nickname.lower()): if str(u.key().id()) != str(user.key().id()): self.error(409) self.response.out.write('Nickname is already taken') return user.nickname = nickname user.nickname_lower = nickname.lower() user.first_name = first_name user.last_name = last_name user.tagline = tagline user.save() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write(get_display_name_for_youtify_user_model(user))