Exemplo n.º 1
0
def article_edit(article_id):
    """Takes in an article ID and displays that article for playback and edit purposes"""
    user_id_value = session.get("user_id")
    article_object = Article.get_article_by_article_id(article_id)
    if user_id_value:
        if int(user_id_value) == article_object.user_id:
            return render_template("article_edit.html",
                                   article_object=article_object)
    else:
        return redirect("/login")
Exemplo n.º 2
0
def read_text():
    """Takes in nothing, and returns an audio stream in chunks"""
    user_id_value = session.get("user_id")
    if user_id_value:
        # finds credentials associated with adminuser profile
        boto_session = BotoSession(aws_access_key_id=environ['ACCESS_KEY'],
                                   aws_secret_access_key=environ['SECRET_KEY'],
                                   region_name=environ['AWS_DEFAULT_REGION'])
        polly = boto_session.client("polly")

        # get the text from database using article ID rather than sending it via the request to route
        text = request.args.get("text")
        voice_id = request.args.get("voice")
        article_id = request.args.get("article_id")
        article_object = Article.get_article_by_article_id(int(article_id))

        text_sequences = segment_text(text)

        audio_stream_sequences = []

        for sequence in text_sequences:
            if int(user_id_value) == article_object.user_id:
                response = polly.synthesize_speech(Text=sequence,
                                                   VoiceId=voice_id,
                                                   OutputFormat='mp3')

                audio_stream = response.get("AudioStream")
                audio_stream_sequences.append(audio_stream)
        for stream in audio_stream_sequences:
            print "streamtype"
            print type(stream)

            if "user_id" in session:
                session_user_id = session["user_id"]
                if article_object.user_id == session_user_id:
                    article_object.read_status = True
                    article_object.last_listened = datetime.now()
                    db.session.commit()

            def generate():
                index = 0
                while index < len(audio_stream_sequences):
                    data = audio_stream_sequences[index].read(1024)
                    while data:
                        yield data
                        data = audio_stream.read(1024)
                    index += 1

            return Response(generate(), mimetype='audio/mpeg')
        else:
            return redirect("user-articles/" + str(user_id_value))
    else:
        return redirect("/login")
Exemplo n.º 3
0
def article_closeup(article_id):
    """Takes in an article ID and displays that article for playback and edit purposes"""
    user_id_value = session.get("user_id")
    article_id = int(article_id)
    article_object = Article.get_article_by_article_id(article_id)
    if user_id_value:
        if article_object.user_id == int(user_id_value):
            #using credentials for adminuser
            boto_session = BotoSession(
                aws_access_key_id=environ['ACCESS_KEY'],
                aws_secret_access_key=environ['SECRET_KEY'],
                region_name=environ['AWS_DEFAULT_REGION'])
            polly = boto_session.client("polly")
            response = polly.describe_voices()
            all_voices = response.get('Voices')
            return render_template("article_closeup.html",
                                   article_object=article_object,
                                   all_voices=all_voices)
        else:
            return redirect("user-articles/" + str(user_id_value))
    else:
        return redirect("/login")
Exemplo n.º 4
0
def delete_article(article_id):
    """Takes in an article id via URL and deletes article with that article id"""
    user_id = session.get("user_id")
    Article.get_article_by_article_id(article_id)
    Tagging.delete_taggings_with_article_id(article_id)
    return redirect("/user-articles/" + str(user_id))