コード例 #1
0
 def test_send_all(self):
     subscriber = Subscriber.objects.create(sms_number="2096223425")
     subscriber.save()
     texter = Texter()
     ret = texter.send_todays_texts()
     assert ret[0]["action"] == "showertext"
     assert TextSend.objects.count() == 1
コード例 #2
0
 def test_send_all(self):
     subscriber = Subscriber.objects.create(sms_number='2096223425')
     subscriber.save()
     texter = Texter()
     ret = texter.send_todays_texts()
     assert ret[0]['action'] == 'showertext'
     assert TextSend.objects.count() == 1
コード例 #3
0
def subscribe(sms_number):
    if not sms_number:
        return 'You sent nothing yo.'
    sms_number = filter(str.isdigit, str(sms_number))
    subscriber, created = Subscriber.objects.get_or_create(
        sms_number=sms_number)
    texter = Texter()
    if not created:
        if subscriber.expired:
            # yay! a renewal
            subscriber.renew()
            subscriber.save()
            thought = get_todays_thought()
            try:
                texter.send_text(subscriber, thought.thought_text,
                                 thought.post_id)
            except TwilioRestException as e:
                subscriber.active = False
                subscriber.save()
                logging.error('Exception sending number to: ' +
                              subscriber.sms_number + ' - ' + str(e))
                return 'I couldn\'t send a text to that number! (' + str(
                    e.msg) + ')'
            except DuplicateTextException:
                # no prob, they already got todays message
                pass
            return 'Welcome back! Check your phone!'
        elif not subscriber.active:
            # technically they could be blacklisted, but i can't do anything about that
            return 'Did you reply STOP? Reply START and try again.'
        else:
            return 'You\'re already subscribed, yo.'
    try:
        message = "Cool! Welcome to ShowerTexts.com! You'll start receiving Shower Texts daily. " \
                  "Reply STOP at any time if you get sick of them. " \
                  "Your first one will follow..."
        texter.send_text(subscriber, message, 'initial')
    except TwilioRestException as e:
        logging.error('Exception sending number to: ' + subscriber.sms_number +
                      ' - ' + str(e))
        return 'I couldn\'t send a text to that number! (' + str(e.msg) + ')'
    except DuplicateTextException:
        logging.warning('Duplicate welcome text.')
    thought = get_todays_thought()
    try:
        texter.send_text(subscriber, thought.thought_text, thought.post_id)
    except TwilioRestException as e:
        logging.error('Exception sending number to: ' + subscriber.sms_number +
                      ' - ' + str(e))
        return 'I couldn\'t send a text to that number! (' + str(e.msg) + ')'
    except DuplicateTextException:
        logging.error('Duplicate initial thought. Shouldn\'t happen - odd.')
    return 'Cool! Check your phone!'
コード例 #4
0
    def test_expired_subscription(self):
        subscriber = Subscriber.objects.create(sms_number="2096223425")
        expired_date = timezone.now() - datetime.timedelta(days=settings.EXPIRATION_DAYS + 5)
        subscriber.date_created = expired_date
        subscriber.date_renewed = expired_date
        subscriber.save()
        texter = Texter()
        ret = texter.send_todays_texts()

        assert subscriber.expired
        assert ret[0]["action"] == "expiration"
        assert len(ret) == 1
        assert TextSend.objects.count() == 1

        welcome_message = subscribe("2096223425")
        assert "Welcome back!" in welcome_message

        subscriber = Subscriber.objects.get(sms_number="2096223425")
        assert not subscriber.expired
        assert TextSend.objects.count() == 2
コード例 #5
0
    def test_expired_subscription(self):
        subscriber = Subscriber.objects.create(sms_number='2096223425')
        expired_date = timezone.now() - datetime.timedelta(
            days=settings.EXPIRATION_DAYS + 5)
        subscriber.date_created = expired_date
        subscriber.date_renewed = expired_date
        subscriber.save()
        texter = Texter()
        ret = texter.send_todays_texts()

        assert subscriber.expired
        assert ret[0]['action'] == 'expiration'
        assert len(ret) == 1
        assert TextSend.objects.count() == 1

        welcome_message = subscribe('2096223425')
        assert 'Welcome back!' in welcome_message

        subscriber = Subscriber.objects.get(sms_number='2096223425')
        assert not subscriber.expired
        assert TextSend.objects.count() == 2
コード例 #6
0
ファイル: subscription.py プロジェクト: ben174/showertexts
def subscribe(sms_number):
    if not sms_number:
        return 'You sent nothing yo.'
    sms_number = filter(str.isdigit, str(sms_number))
    subscriber, created = Subscriber.objects.get_or_create(sms_number=sms_number)
    texter = Texter()
    if not created:
        if subscriber.expired:
            # yay! a renewal
            subscriber.renew()
            subscriber.save()
            thought = get_todays_thought()
            try:
                texter.send_text(subscriber, thought.thought_text, thought.post_id)
            except TwilioRestException as e:
                subscriber.active = False
                subscriber.save()
                logging.error('Exception sending number to: ' + subscriber.sms_number + ' - ' + str(e))
                return 'I couldn\'t send a text to that number! (' + str(e.msg) + ')'
            except DuplicateTextException:
                # no prob, they already got todays message
                pass
            return 'Welcome back! Check your phone!'
        elif not subscriber.active:
            # technically they could be blacklisted, but i can't do anything about that
            return 'Did you reply STOP? Reply START and try again.'
        else:
            return 'You\'re already subscribed, yo.'
    try:
        message = "Cool! Welcome to ShowerTexts.com! You'll start receiving Shower Texts daily. " \
                  "Reply STOP at any time if you get sick of them. " \
                  "Your first one will follow..."
        texter.send_text(subscriber, message, 'initial')
    except TwilioRestException as e:
        logging.error('Exception sending number to: ' + subscriber.sms_number + ' - ' + str(e))
        return 'I couldn\'t send a text to that number! (' + str(e.msg) + ')'
    except DuplicateTextException:
        logging.warning('Duplicate welcome text.')
    thought = get_todays_thought()
    try:
        texter.send_text(subscriber, thought.thought_text, thought.post_id)
    except TwilioRestException as e:
        logging.error('Exception sending number to: ' + subscriber.sms_number + ' - ' + str(e))
        return 'I couldn\'t send a text to that number! (' + str(e.msg) + ')'
    except DuplicateTextException:
        logging.error('Duplicate initial thought. Shouldn\'t happen - odd.')
    return 'Cool! Check your phone!'
コード例 #7
0
ファイル: views.py プロジェクト: trentwalsh2/showertexts
def trigger(request):
    """ A URL which invokes a trigger to send out today's texts. """
    texter = Texter()
    ret = texter.send_todays_texts()
    return HttpResponse(ret, 'text/plain')
コード例 #8
0
ファイル: send_texts.py プロジェクト: trentwalsh2/showertexts
 def handle(self, *args, **options):
     texter = Texter()
     texter.send_todays_texts()