Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
    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))
Exemplo n.º 4
0
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()
Exemplo n.º 5
0
    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))