From d30162560bbb22398caa765f599daa06f4627e8f Mon Sep 17 00:00:00 2001 From: Sanket758 Date: Wed, 13 May 2020 23:22:33 +0530 Subject: [PATCH] inital upload --- Quotes Web App/QuoteApp.py | 147 ++ Quotes Web App/QuoteWebApp.ipynb | 1681 +++++++++++++++++ Quotes Web App/quotes.csv | 109 ++ Quotes Web App/static/images/hand.png | Bin 0 -> 8157 bytes .../static/images/inspire-header-me.png | Bin 0 -> 39778 bytes Quotes Web App/static/images/moon.png | Bin 0 -> 2544 bytes Quotes Web App/static/images/sun.png | Bin 0 -> 3594 bytes Quotes Web App/templates/quote.html | 153 ++ 8 files changed, 2090 insertions(+) create mode 100644 Quotes Web App/QuoteApp.py create mode 100644 Quotes Web App/QuoteWebApp.ipynb create mode 100644 Quotes Web App/quotes.csv create mode 100644 Quotes Web App/static/images/hand.png create mode 100644 Quotes Web App/static/images/inspire-header-me.png create mode 100644 Quotes Web App/static/images/moon.png create mode 100644 Quotes Web App/static/images/sun.png create mode 100644 Quotes Web App/templates/quote.html diff --git a/Quotes Web App/QuoteApp.py b/Quotes Web App/QuoteApp.py new file mode 100644 index 0000000..9f1d25c --- /dev/null +++ b/Quotes Web App/QuoteApp.py @@ -0,0 +1,147 @@ +from flask import Flask, render_template, request, url_for, Markup +import os +import pandas as pd +import numpy as np +from random import randrange + +import nltk +nltk.download('vader_lexicon') + +from nltk.sentiment.vader import SentimentIntensityAnalyzer + +app = Flask(__name__) + +# load quotes in memory +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) + +# declare global variable +quotes = None + + +@app.before_request +def prepare_sentiment_quote_stash(): + global quotes + + # load the quote stash + quotes = pd.read_csv(os.path.join(BASE_DIR, 'quotes.csv')) + + sid = SentimentIntensityAnalyzer() + + all_compounds = [] + for sentence in quotes['quote']: + ss = sid.polarity_scores(sentence) + for k in sorted(ss): + if k == 'compound': + all_compounds.append(ss[k]) + + + # add sentiment to the data + quotes['sentiment_score'] = all_compounds + + # create ladder index + quotes = quotes.sort_values('sentiment_score') + quotes['index'] = [ix for ix in range(0, len(quotes))] + + + +def gimme_a_quote(direction = None, current_index = None, max_index_value = 0): + rand_index = randrange(max_index_value) + darker = None + brighter = None + + + # New session visit + if current_index is None: + brighter = rand_index + + if direction == 'brighter': + brighter = current_index + else: + darker = current_index + + if darker is not None: + try: + current_index = int(darker) + except ValueError: + # somebody is gaming the system + current_index = rand_index + + + if current_index > 0: + # try for a lesser value than current one + rand_index = randrange(0, current_index) + else: + # already at lowest point so assign a new random of full set + rand_index = rand_index + + + elif brighter is not None: + try: + current_index = int(brighter) + except ValueError: + # somebody is gaming the system + current_index = rand_index + + # try for a higher value than current one + if current_index < max_index_value -1: + rand_index = randrange(current_index, max_index_value) + else: + # already at highest point so assign a new random of full set + rand_index = rand_index + else: + # grab a random value + rand_index = rand_index + + return (rand_index) + + +@app.route("/") +def quote_me(): + quote_stash_tmp = quotes.copy() + max_index_value = np.max(quote_stash_tmp['index'].values) + rand_index_value = randrange(max_index_value) + + darker = request.args.get("darker") + brighter = request.args.get("brighter") + + if darker is not None: + + try: + current_index = int(darker) + except ValueError: + # somebody is gaming the system + current_index = randrange(max_index_value) + + new_index = gimme_a_quote(direction = 'darker', current_index = current_index, max_index_value = max_index_value) + + elif brighter is not None: + + try: + current_index = int(brighter) + except ValueError: + # somebody is gaming the system + current_index = rand_index_value + + new_index = gimme_a_quote(direction = 'brighter', current_index = current_index, max_index_value = max_index_value) + + + else: + # grab a random value + new_index = randrange(max_index_value) + + random_quote = quote_stash_tmp.iloc[new_index] + + + # get a random integer between 0 and max_index_value + quote=random_quote['quote'] + author = random_quote['author'] + current_id = random_quote['index'] + + return render_template("quote.html", + quote=quote, + author=author, + current_id=current_id,) + + +if __name__ == '__main__': + app.run() diff --git a/Quotes Web App/QuoteWebApp.ipynb b/Quotes Web App/QuoteWebApp.ipynb new file mode 100644 index 0000000..86b6b97 --- /dev/null +++ b/Quotes Web App/QuoteWebApp.ipynb @@ -0,0 +1,1681 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "QuoteWebApp", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "2t1a8MWjSDSD", + "colab_type": "code", + "colab": {} + }, + "source": [ + "import pandas as pd\n", + "import numpy as np" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "oWR70jAjStJW", + "colab_type": "code", + "outputId": "1a664ceb-3604-4b95-939f-c87e903b80b2", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + } + }, + "source": [ + "quotes = pd.read_csv('quote_data.csv')\n", + "quotes.head()" + ], + "execution_count": 24, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
quoteauthor
0Pain is inevitable, but misery is optional.Tim Hansel
1To avoid criticism, do nothing, say nothing, b...Elbert Hubbard
2Believe and act as if it were impossible to fail.Charles Kettering
3Never get out of the boat. Absolutely goddamn ...Captain Willard
4Nobody can make you feel inferior without your...Eleanor Roosevelt
\n", + "
" + ], + "text/plain": [ + " quote author\n", + "0 Pain is inevitable, but misery is optional. Tim Hansel\n", + "1 To avoid criticism, do nothing, say nothing, b... Elbert Hubbard\n", + "2 Believe and act as if it were impossible to fail. Charles Kettering\n", + "3 Never get out of the boat. Absolutely goddamn ... Captain Willard\n", + "4 Nobody can make you feel inferior without your... Eleanor Roosevelt" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 24 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "G8oKA_w4S2vX", + "colab_type": "code", + "outputId": "43e4b151-4ddc-45f7-c9f5-972556d035f2", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + } + }, + "source": [ + "quotes = quotes.drop_duplicates(subset='quote', keep='last')\n", + "quotes.head()" + ], + "execution_count": 25, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
quoteauthor
0Pain is inevitable, but misery is optional.Tim Hansel
1To avoid criticism, do nothing, say nothing, b...Elbert Hubbard
2Believe and act as if it were impossible to fail.Charles Kettering
3Never get out of the boat. Absolutely goddamn ...Captain Willard
4Nobody can make you feel inferior without your...Eleanor Roosevelt
\n", + "
" + ], + "text/plain": [ + " quote author\n", + "0 Pain is inevitable, but misery is optional. Tim Hansel\n", + "1 To avoid criticism, do nothing, say nothing, b... Elbert Hubbard\n", + "2 Believe and act as if it were impossible to fail. Charles Kettering\n", + "3 Never get out of the boat. Absolutely goddamn ... Captain Willard\n", + "4 Nobody can make you feel inferior without your... Eleanor Roosevelt" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 25 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rwhSCux9T6Ov", + "colab_type": "code", + "outputId": "e61547eb-83b4-49ea-863e-f3a5a884b32f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "quotes.shape" + ], + "execution_count": 26, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(108, 2)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 26 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gDBgqe0vUABr", + "colab_type": "code", + "colab": {} + }, + "source": [ + "quotes.to_csv('quotes.csv',index=None)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "pKGS4yrOX9am", + "colab_type": "code", + "outputId": "7317fa8f-c29a-4488-fb3b-100ff259fb64", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "import nltk\n", + "nltk.download('vader_lexicon')" + ], + "execution_count": 28, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[nltk_data] Downloading package vader_lexicon to /root/nltk_data...\n", + "[nltk_data] Package vader_lexicon is already up-to-date!\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "True" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 28 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Xz7T_XIYUNDH", + "colab_type": "code", + "outputId": "f7832b93-f21a-4086-b949-db9e42b39bd0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "from nltk.sentiment.vader import SentimentIntensityAnalyzer\n", + "analyzer = SentimentIntensityAnalyzer()\n", + "\n", + "all_compounds = []\n", + "for sentence in quotes['quote']:\n", + " print(sentence)\n", + " sentimentscore = analyzer.polarity_scores(sentence)\n", + " for k in sorted(sentimentscore):\n", + " print('{}: {}'.format(k, sentimentscore[k]), end='')\n", + " print()\n", + "\n", + " if k == 'compound':\n", + " all_compounds.append(sentimentscore[k])" + ], + "execution_count": 29, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Pain is inevitable, but misery is optional.\n", + "compound: -0.802\n", + "neg: 0.59\n", + "neu: 0.41\n", + "pos: 0.0\n", + "To avoid criticism, do nothing, say nothing, be nothing.\n", + "compound: -0.6249\n", + "neg: 0.421\n", + "neu: 0.579\n", + "pos: 0.0\n", + "Believe and act as if it were impossible to fail.\n", + "compound: -0.5423\n", + "neg: 0.28\n", + "neu: 0.72\n", + "pos: 0.0\n", + "Never get out of the boat. Absolutely goddamn right. Unless you were goin' all the way.\n", + "compound: -0.5256\n", + "neg: 0.184\n", + "neu: 0.816\n", + "pos: 0.0\n", + "Nobody can make you feel inferior without your consent.\n", + "compound: -0.5213\n", + "neg: 0.384\n", + "neu: 0.616\n", + "pos: 0.0\n", + "What we fear doing most is usually what we most need to do.\n", + "compound: -0.4939\n", + "neg: 0.211\n", + "neu: 0.789\n", + "pos: 0.0\n", + "Everything you’ve ever wanted is on the other side of fear.\n", + "compound: -0.4939\n", + "neg: 0.242\n", + "neu: 0.758\n", + "pos: 0.0\n", + "Success is going from failure to failure without losing your enthusiasm.\n", + "compound: -0.4805\n", + "neg: 0.431\n", + "neu: 0.287\n", + "pos: 0.282\n", + "If there is no struggle, there is no progress.\n", + "compound: -0.4404\n", + "neg: 0.462\n", + "neu: 0.345\n", + "pos: 0.193\n", + "There are no short cuts to any place worth going.\n", + "compound: -0.3612\n", + "neg: 0.331\n", + "neu: 0.526\n", + "pos: 0.143\n", + "In each business, we have two strands: the day-to-day, and the future group thinking, 'How do I disrupt myself?' The people running it can't be the same ones thinking about its disruption.\n", + "compound: -0.3612\n", + "neg: 0.077\n", + "neu: 0.923\n", + "pos: 0.0\n", + "No person will have occasion to complain of the want of time who never loses any.\n", + "compound: -0.3481\n", + "neg: 0.235\n", + "neu: 0.601\n", + "pos: 0.163\n", + "The most common form of despair is not being who you are.\n", + "compound: -0.3182\n", + "neg: 0.173\n", + "neu: 0.827\n", + "pos: 0.0\n", + "There are no traffic jams along the extra mile.\n", + "compound: -0.296\n", + "neg: 0.216\n", + "neu: 0.784\n", + "pos: 0.0\n", + "Do it trembling if you must, but do it!\n", + "compound: -0.2598\n", + "neg: 0.203\n", + "neu: 0.797\n", + "pos: 0.0\n", + "Money is, in some respects, like fire. It is a very excellent servant, but a terrible master.\n", + "compound: -0.2391\n", + "neg: 0.269\n", + "neu: 0.46\n", + "pos: 0.271\n", + "If you don't go after what you want, you'll never have it. If you don't ask, the answer is always no. If you don't step forward, you're always in the same place.\n", + "compound: -0.2263\n", + "neg: 0.066\n", + "neu: 0.896\n", + "pos: 0.039\n", + "And it is awfully hard to come up with those ideas if you don't have any time to think.\n", + "compound: -0.1761\n", + "neg: 0.086\n", + "neu: 0.914\n", + "pos: 0.0\n", + "You miss 100% of the shots you don’t take.\n", + "compound: -0.1531\n", + "neg: 0.167\n", + "neu: 0.833\n", + "pos: 0.0\n", + "Every next level of your life will demand a different version of you.\n", + "compound: -0.128\n", + "neg: 0.12\n", + "neu: 0.88\n", + "pos: 0.0\n", + "Every strike brings me closer to the next home run.\n", + "compound: -0.128\n", + "neg: 0.143\n", + "neu: 0.857\n", + "pos: 0.0\n", + "Obsessed is just a word the lazy use to describe the dedicated.\n", + "compound: -0.0516\n", + "neg: 0.276\n", + "neu: 0.526\n", + "pos: 0.197\n", + "Be who you are and say what you feel, because those who mind don't matter, and those who matter don't mind.\n", + "compound: -0.0382\n", + "neg: 0.102\n", + "neu: 0.898\n", + "pos: 0.0\n", + "Change your thoughts and you change your world.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "If you aren’t going all the way, why go at all?\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "The dreamers are the saviors of the world.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "One thing modeling taught me is that the spotlight can change everything.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "It’s not whether you get knocked down, it’s whether you get up.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Very often a change of self is needed more than a change of scene.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "You must do what others don't to achieve what others won't.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "I don't know who my grandfather was; I am much more concerned to know what his grandson will be.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "If you have everything under control, you’re not moving fast enough.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "You've got to bumble forward into the unknown.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "How Everyone you Will Ever Meet Knows Something that You Don't.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Don’t wait. The time will never be just right.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Learn from yesterday, live for today, look to tomorrow, rest this afternoon.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "The power of imagination makes us infinite.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Forever is composed of nows.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Don’t count the days, make the days count.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Always make a total effort, even when the odds are against you.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "If you can’t outplay them, outwork them.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "When you come to a roadblock, take a detour.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Believe you can and you’re halfway there.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Do what you can, where you are, with what you have.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Even if you’re on the right track, you’ll get run over if you just sit there.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Life is 10% what happens to you and 90% how you react to it.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Life's simple. You make choices and you don't look back.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Light tomorrow with today.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "I will go anywhere as long as it is forward.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "The difference between ordinary and extraordinary is that little extra.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "Don't live the same day over and over again and call that a life.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "When you talk, you are only repeating what you already know. But if you listen, you may learn something new.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "If you have some power, then your job is to empower somebody else.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "It is never too late to be what you might have been.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "The price of anything is the amount of life you exchange for it.\n", + "compound: 0.0\n", + "neg: 0.0\n", + "neu: 1.0\n", + "pos: 0.0\n", + "It does not do to leave a live dragon out of your calculations, if you live near him.\n", + "compound: 0.0382\n", + "neg: 0.0\n", + "neu: 0.933\n", + "pos: 0.067\n", + "Tough times never last, but tough people do.\n", + "compound: 0.0785\n", + "neg: 0.142\n", + "neu: 0.681\n", + "pos: 0.177\n", + "The more I want to get something done, the less I call it work.\n", + "compound: 0.1513\n", + "neg: 0.0\n", + "neu: 0.874\n", + "pos: 0.126\n", + "A person who is nice to you, but rude to the waiter, is not a nice person.\n", + "compound: 0.1531\n", + "neg: 0.185\n", + "neu: 0.556\n", + "pos: 0.259\n", + "It does not matter how slowly you go as long as you do not stop.\n", + "compound: 0.2057\n", + "neg: 0.067\n", + "neu: 0.814\n", + "pos: 0.118\n", + "Try not. Do, or do not. There is no try.\n", + "compound: 0.2235\n", + "neg: 0.0\n", + "neu: 0.827\n", + "pos: 0.173\n", + "Our dreams feel real while we're in them. It's only when we wake we realize things were strange\n", + "compound: 0.2263\n", + "neg: 0.088\n", + "neu: 0.78\n", + "pos: 0.132\n", + "The gateway skill to good time management is when you ask not just what you need to do, but how long it will take.\n", + "compound: 0.2382\n", + "neg: 0.0\n", + "neu: 0.922\n", + "pos: 0.078\n", + "Life is not a problem to be solved, but a reality to be experienced.\n", + "compound: 0.2912\n", + "neg: 0.0\n", + "neu: 0.759\n", + "pos: 0.241\n", + "Every moment is a fresh beginning.\n", + "compound: 0.3182\n", + "neg: 0.0\n", + "neu: 0.635\n", + "pos: 0.365\n", + "Waking up this morning, I smile. 24 brand new hours are before me. I vow to live fully in each moment.\n", + "compound: 0.3612\n", + "neg: 0.0\n", + "neu: 0.878\n", + "pos: 0.122\n", + "Sell a man a fish, he eats for a day. Teach a man how to fish, you ruin a wonderful business opportunity.\n", + "compound: 0.4019\n", + "neg: 0.156\n", + "neu: 0.576\n", + "pos: 0.267\n", + "You must be the change you wish to see in the world.\n", + "compound: 0.4019\n", + "neg: 0.0\n", + "neu: 0.803\n", + "pos: 0.197\n", + "A year from now you may wish you had started today.\n", + "compound: 0.4019\n", + "neg: 0.0\n", + "neu: 0.769\n", + "pos: 0.231\n", + "If you don’t build your dreams, someone will hire you to build theirs.\n", + "compound: 0.4019\n", + "neg: 0.0\n", + "neu: 0.816\n", + "pos: 0.184\n", + "You must be the person you have never had the courage to be. Gradually, you will discover that you are that person, but until you can see this clearly, you must pretend and invent.\n", + "compound: 0.4163\n", + "neg: 0.088\n", + "neu: 0.803\n", + "pos: 0.108\n", + "The road to Easy Street goes through the sewer.\n", + "compound: 0.4404\n", + "neg: 0.0\n", + "neu: 0.734\n", + "pos: 0.266\n", + "The harder I work, the luckier I get.\n", + "compound: 0.4404\n", + "neg: 0.0\n", + "neu: 0.633\n", + "pos: 0.367\n", + "Just keep going. Everybody gets better if they keep at it.\n", + "compound: 0.4404\n", + "neg: 0.0\n", + "neu: 0.775\n", + "pos: 0.225\n", + "'What day is it?' asked Pooh. 'It’s today,' squeaked Piglet. 'My favorite day,' said Pooh.\n", + "compound: 0.4588\n", + "neg: 0.0\n", + "neu: 0.824\n", + "pos: 0.176\n", + "The competitor to be feared is one who never bothers about you at all, but goes on making his own business better all the time.\n", + "compound: 0.4671\n", + "neg: 0.072\n", + "neu: 0.752\n", + "pos: 0.176\n", + "People love to buy, they don't like to be sold.\n", + "compound: 0.4749\n", + "neg: 0.147\n", + "neu: 0.559\n", + "pos: 0.294\n", + "Few \"great\" ideas come from an individual; instead, they’re gradually expanded on and improved by a team or network of individuals.\n", + "compound: 0.4767\n", + "neg: 0.0\n", + "neu: 0.86\n", + "pos: 0.14\n", + "It takes courage to grow up and become who you really are.\n", + "compound: 0.4939\n", + "neg: 0.0\n", + "neu: 0.775\n", + "pos: 0.225\n", + "Keep your face to the sunshine and you can never see the shadow.\n", + "compound: 0.4939\n", + "neg: 0.0\n", + "neu: 0.789\n", + "pos: 0.211\n", + "Look at everything always as though you were seeing it either for the first or last time: Thus is your time on earth filled with glory.\n", + "compound: 0.5423\n", + "neg: 0.0\n", + "neu: 0.877\n", + "pos: 0.123\n", + "Don’t downgrade your dream just to fit your reality.\n", + "compound: 0.5423\n", + "neg: 0.0\n", + "neu: 0.609\n", + "pos: 0.391\n", + "The trick is to enjoy life. Don't wish away your days, waiting for better ones ahead.\n", + "compound: 0.5635\n", + "neg: 0.16\n", + "neu: 0.557\n", + "pos: 0.283\n", + "Action is the foundational key to all success.\n", + "compound: 0.5719\n", + "neg: 0.0\n", + "neu: 0.654\n", + "pos: 0.346\n", + "There is only one success: to be able to spend your life in your own way.\n", + "compound: 0.5719\n", + "neg: 0.0\n", + "neu: 0.802\n", + "pos: 0.198\n", + "Life is beautiful, as long as it consumes you.\n", + "compound: 0.5994\n", + "neg: 0.0\n", + "neu: 0.672\n", + "pos: 0.328\n", + "Make each day your masterpiece.\n", + "compound: 0.6249\n", + "neg: 0.0\n", + "neu: 0.494\n", + "pos: 0.506\n", + "Never let your memories be greater than your dreams.\n", + "compound: 0.6369\n", + "neg: 0.0\n", + "neu: 0.574\n", + "pos: 0.426\n", + "Write it on your heart that every day is the best day in the year.\n", + "compound: 0.6369\n", + "neg: 0.0\n", + "neu: 0.769\n", + "pos: 0.231\n", + "The best way to predict the future is to invent it.\n", + "compound: 0.6369\n", + "neg: 0.0\n", + "neu: 0.704\n", + "pos: 0.296\n", + "The best time to plant a tree was twenty years ago, the second-best time is right now.\n", + "compound: 0.6369\n", + "neg: 0.0\n", + "neu: 0.781\n", + "pos: 0.219\n", + "I think laziness is a cardinal sin -- not in the sense that you should always keep busy, but in the sense that if you have the potential to create something that can be useful to others, then you should do everything you can to make it happen.\n", + "compound: 0.6369\n", + "neg: 0.044\n", + "neu: 0.83\n", + "pos: 0.125\n", + "Do what you love and the money will follow.\n", + "compound: 0.6369\n", + "neg: 0.0\n", + "neu: 0.656\n", + "pos: 0.344\n", + "Champions keep playing until they get it right.\n", + "compound: 0.6369\n", + "neg: 0.0\n", + "neu: 0.536\n", + "pos: 0.464\n", + "The best way out is always through.\n", + "compound: 0.6369\n", + "neg: 0.0\n", + "neu: 0.588\n", + "pos: 0.412\n", + "Every morning, I imagine creating a new business that needs to be sold by the end of the day. I better hustle today!\n", + "compound: 0.6588\n", + "neg: 0.0\n", + "neu: 0.769\n", + "pos: 0.231\n", + "The highest profits are made in trades that show a profit right from the start.\n", + "compound: 0.7003\n", + "neg: 0.0\n", + "neu: 0.674\n", + "pos: 0.326\n", + "Fact is, no one cares about your marketing goals. But everyone likes a good story.\n", + "compound: 0.7579\n", + "neg: 0.105\n", + "neu: 0.478\n", + "pos: 0.416\n", + "It is much more difficult to judge oneself than to judge others. If you succeed in judging yourself rightly, then you are indeed a man of true wisdom.\n", + "compound: 0.7655\n", + "neg: 0.079\n", + "neu: 0.654\n", + "pos: 0.267\n", + "The first principle is that you must not fool yourself and you are the easiest person to fool.\n", + "compound: 0.7658\n", + "neg: 0.0\n", + "neu: 0.663\n", + "pos: 0.337\n", + "The best dreams happen when you’re awake.\n", + "compound: 0.7845\n", + "neg: 0.0\n", + "neu: 0.42\n", + "pos: 0.58\n", + "Remember that sometimes not getting what you want is a wonderful stroke of luck.\n", + "compound: 0.7906\n", + "neg: 0.0\n", + "neu: 0.556\n", + "pos: 0.444\n", + "I'm sure the universe is full of intelligent life. It's just been too intelligent to come here.\n", + "compound: 0.8074\n", + "neg: 0.0\n", + "neu: 0.628\n", + "pos: 0.372\n", + "Don’t wish it were easier, wish you were better.\n", + "compound: 0.8779\n", + "neg: 0.0\n", + "neu: 0.311\n", + "pos: 0.689\n", + "Out yonder there was this huge world, which exists independently of us human beings and which stands before us like a great, eternal riddle, at least partially accessible to our inspection and thinking. The contemplation of this world beckoned like a liberation…\n", + "compound: 0.8939\n", + "neg: 0.0\n", + "neu: 0.754\n", + "pos: 0.246\n", + "Life is beautiful, so long as it is consuming you. When it is rushing through you, destroying you, life is glorious. It is best to roar away, like a fire with a great draught, white-hot to the last bit.\n", + "compound: 0.9313\n", + "neg: 0.109\n", + "neu: 0.546\n", + "pos: 0.344\n", + "I offer you peace. I offer you love. I offer you friendship. I see your beauty. I hear your need. I feel your feelings.\n", + "compound: 0.9371\n", + "neg: 0.0\n", + "neu: 0.493\n", + "pos: 0.507\n", + "When we are mindful, deeply in touch with the present moment, our understanding of what is going on deepens, and we begin to be filled with acceptance, joy, peace and love.\n", + "compound: 0.9382\n", + "neg: 0.0\n", + "neu: 0.651\n", + "pos: 0.349\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "XDYaKeFCXyw5", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#Compound score -1 for most negative and +1 for most positive\n", + "# positive sentiment: compound score >= 0.05\n", + "# neutral sentiment: compound score > -0.05 and compound score < 0.05\n" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "lvhQdZK_ZHU3", + "colab_type": "code", + "outputId": "efa6bffc-f976-47d9-d849-66b6dbcb3697", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 187 + } + }, + "source": [ + "all_compounds[:10]" + ], + "execution_count": 30, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[-0.802,\n", + " -0.6249,\n", + " -0.5423,\n", + " -0.5256,\n", + " -0.5213,\n", + " -0.4939,\n", + " -0.4939,\n", + " -0.4805,\n", + " -0.4404,\n", + " -0.3612]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 30 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "mmtePZYHZgEi", + "colab_type": "code", + "outputId": "aa0d62a7-9189-4609-adbe-cf984a7cdc1a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 281 + } + }, + "source": [ + "import matplotlib.pyplot as plt\n", + "plt.plot(sorted(all_compounds))\n", + "plt.title('Overall sentiment in Quotes')\n", + "plt.show()" + ], + "execution_count": 31, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rIV9l2CwZy5l", + "colab_type": "code", + "outputId": "3285d74f-8e0a-4461-c0ea-54eaf057ab6a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + } + }, + "source": [ + "quotes['sentimentscore'] = all_compounds\n", + "quotes.head()" + ], + "execution_count": 32, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
quoteauthorsentimentscore
0Pain is inevitable, but misery is optional.Tim Hansel-0.8020
1To avoid criticism, do nothing, say nothing, b...Elbert Hubbard-0.6249
2Believe and act as if it were impossible to fail.Charles Kettering-0.5423
3Never get out of the boat. Absolutely goddamn ...Captain Willard-0.5256
4Nobody can make you feel inferior without your...Eleanor Roosevelt-0.5213
\n", + "
" + ], + "text/plain": [ + " quote ... sentimentscore\n", + "0 Pain is inevitable, but misery is optional. ... -0.8020\n", + "1 To avoid criticism, do nothing, say nothing, b... ... -0.6249\n", + "2 Believe and act as if it were impossible to fail. ... -0.5423\n", + "3 Never get out of the boat. Absolutely goddamn ... ... -0.5256\n", + "4 Nobody can make you feel inferior without your... ... -0.5213\n", + "\n", + "[5 rows x 3 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 32 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6_xxBCeWaFyZ", + "colab_type": "code", + "outputId": "7f5653ad-2c21-4c80-bb81-1c09e30adb75", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "minss = np.min(quotes['sentimentscore'])\n", + "maxss = np.max(quotes['sentimentscore'])\n", + "minss, maxss" + ], + "execution_count": 33, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(-0.802, 0.9382)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 33 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Z7hZiWZqacCf", + "colab_type": "code", + "outputId": "9d8eac76-4a3e-48bd-c87a-74ad9b3b6370", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 80 + } + }, + "source": [ + "quotes[quotes['sentimentscore'] == np.min(quotes['sentimentscore'])]" + ], + "execution_count": 34, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
quoteauthorsentimentscore
0Pain is inevitable, but misery is optional.Tim Hansel-0.802
\n", + "
" + ], + "text/plain": [ + " quote author sentimentscore\n", + "0 Pain is inevitable, but misery is optional. Tim Hansel -0.802" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 34 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "9PMuopnZas-x", + "colab_type": "code", + "outputId": "6b0c835c-7ce1-4bde-a1dc-84d2be5a4a5f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 80 + } + }, + "source": [ + "quotes[quotes['sentimentscore'] == np.max (quotes['sentimentscore'])]" + ], + "execution_count": 35, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
quoteauthorsentimentscore
107When we are mindful, deeply in touch with the ...Thich Nhat Hanh0.9382
\n", + "
" + ], + "text/plain": [ + " quote ... sentimentscore\n", + "107 When we are mindful, deeply in touch with the ... ... 0.9382\n", + "\n", + "[1 rows x 3 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 35 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "iI0mb1NdbJT4", + "colab_type": "code", + "outputId": "375ef0c3-2d93-4255-9107-31031fa20fb3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 419 + } + }, + "source": [ + "import numpy as np\n", + "from random import randrange\n", + "from nltk.sentiment.vader import SentimentIntensityAnalyzer\n", + "\n", + "quotes = []\n", + "\n", + "def prepare_sentiment_quotes(quotes_path):\n", + " global quotes\n", + "\n", + " quotes = pd.read_csv(quotes_path)\n", + "\n", + " analyzer = SentimentIntensityAnalyzer()\n", + "\n", + " all_compounds = []\n", + " for sentence in quotes['quote']:\n", + " sentscore = analyzer.polarity_scores(sentence)\n", + " for k in sorted(sentscore):\n", + " if k == 'compound':\n", + " all_compounds.append(sentscore[k])\n", + " \n", + " quotes['sentiment_score'] = all_compounds\n", + "\n", + " quotes = quotes.sort_values('sentiment_score')\n", + " quotes['index'] = [ix for ix in range(0, len(quotes))]\n", + "\n", + " return quotes\n", + "\n", + "prepare_sentiment_quotes('quotes.csv')\n" + ], + "execution_count": 36, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
quoteauthorsentiment_scoreindex
0Pain is inevitable, but misery is optional.Tim Hansel-0.80200
1To avoid criticism, do nothing, say nothing, b...Elbert Hubbard-0.62491
2Believe and act as if it were impossible to fail.Charles Kettering-0.54232
3Never get out of the boat. Absolutely goddamn ...Captain Willard-0.52563
4Nobody can make you feel inferior without your...Eleanor Roosevelt-0.52134
...............
103Don’t wish it were easier, wish you were better.Jim Rohn0.8779103
104Out yonder there was this huge world, which ex...Albert Einstein0.8939104
105Life is beautiful, so long as it is consuming ...D.H. Lawrence0.9313105
106I offer you peace. I offer you love. I offer y...Mahatma Gandhi0.9371106
107When we are mindful, deeply in touch with the ...Thich Nhat Hanh0.9382107
\n", + "

108 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " quote ... index\n", + "0 Pain is inevitable, but misery is optional. ... 0\n", + "1 To avoid criticism, do nothing, say nothing, b... ... 1\n", + "2 Believe and act as if it were impossible to fail. ... 2\n", + "3 Never get out of the boat. Absolutely goddamn ... ... 3\n", + "4 Nobody can make you feel inferior without your... ... 4\n", + ".. ... ... ...\n", + "103 Don’t wish it were easier, wish you were better. ... 103\n", + "104 Out yonder there was this huge world, which ex... ... 104\n", + "105 Life is beautiful, so long as it is consuming ... ... 105\n", + "106 I offer you peace. I offer you love. I offer y... ... 106\n", + "107 When we are mindful, deeply in touch with the ... ... 107\n", + "\n", + "[108 rows x 4 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 36 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "4XOEhRvEcbas", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "outputId": "4aced69e-2157-4266-fe22-63f7375ffaab" + }, + "source": [ + "quotes.head()" + ], + "execution_count": 37, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
quoteauthorsentiment_scoreindex
0Pain is inevitable, but misery is optional.Tim Hansel-0.80200
1To avoid criticism, do nothing, say nothing, b...Elbert Hubbard-0.62491
2Believe and act as if it were impossible to fail.Charles Kettering-0.54232
3Never get out of the boat. Absolutely goddamn ...Captain Willard-0.52563
4Nobody can make you feel inferior without your...Eleanor Roosevelt-0.52134
\n", + "
" + ], + "text/plain": [ + " quote ... index\n", + "0 Pain is inevitable, but misery is optional. ... 0\n", + "1 To avoid criticism, do nothing, say nothing, b... ... 1\n", + "2 Believe and act as if it were impossible to fail. ... 2\n", + "3 Never get out of the boat. Absolutely goddamn ... ... 3\n", + "4 Nobody can make you feel inferior without your... ... 4\n", + "\n", + "[5 rows x 4 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 37 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "H3EzD-m7hGXc", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "f276c9ba-981f-43e2-daae-91145c3e8284" + }, + "source": [ + "max_ind = np.max(quotes['index'].values)\n", + "\n", + "def starting_quote(direction = None, current_ind=None):\n", + " rand_ind = randrange(max_ind)\n", + " darker = None\n", + " brighter = None\n", + "\n", + " if current_ind is None:\n", + " brighter = rand_ind\n", + "\n", + " if direction == 'brighter':\n", + " brighter = current_ind\n", + " else:\n", + " darker = current_ind\n", + " \n", + " if darker is not None:\n", + " current_ind = rand_ind\n", + "\n", + " try:\n", + " current_ind = int(darker)\n", + " except ValueError:\n", + " current_ind = rand_ind\n", + " \n", + " if current_ind > 0:\n", + " rand_ind = randrange(0, current_ind)\n", + " print('darker')\n", + " else:\n", + " rand_ind =rand_ind\n", + " \n", + " elif brighter is not None:\n", + " # currect_ind = rand_ind\n", + " try:\n", + " current_ind = int(brighter)\n", + " except ValueError:\n", + " current_ind = rand_ind\n", + " \n", + " if current_ind < max_ind-1:\n", + " rand_ind = randrange(current_ind, max_ind)\n", + " print('brighter')\n", + " else:\n", + " rand_ind =rand_ind\n", + " \n", + " else:\n", + " rand_ind = rand_ind\n", + " return rand_ind\n", + "\n", + "starting_quote('darker', 20)" + ], + "execution_count": 39, + "outputs": [ + { + "output_type": "stream", + "text": [ + "darker\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "14" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 39 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "3Na47mmClAqs", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 97 + }, + "outputId": "2ec693e5-0810-4354-b2f1-753340a0c423" + }, + "source": [ + "quotes[quotes['index'] == starting_quote('darker',8)]" + ], + "execution_count": 47, + "outputs": [ + { + "output_type": "stream", + "text": [ + "darker\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
quoteauthorsentiment_scoreindex
3Never get out of the boat. Absolutely goddamn ...Captain Willard-0.52563
\n", + "
" + ], + "text/plain": [ + " quote ... index\n", + "3 Never get out of the boat. Absolutely goddamn ... ... 3\n", + "\n", + "[1 rows x 4 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 47 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nSOXSeqiutNu", + "colab_type": "text" + }, + "source": [ + "Now we have every thing we need, lets put this into flask.\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "kHkxg77ou2qV", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/Quotes Web App/quotes.csv b/Quotes Web App/quotes.csv new file mode 100644 index 0000000..fd3f5df --- /dev/null +++ b/Quotes Web App/quotes.csv @@ -0,0 +1,109 @@ +quote,author,sentiment_score,index +"Pain is inevitable, but misery is optional.",Tim Hansel,-0.802,0 +"To avoid criticism, do nothing, say nothing, be nothing.",Elbert Hubbard,-0.6249,1 +Believe and act as if it were impossible to fail.,Charles Kettering,-0.5423,2 +Never get out of the boat. Absolutely goddamn right. Unless you were goin' all the way.,Captain Willard,-0.5256,3 +Nobody can make you feel inferior without your consent.,Eleanor Roosevelt,-0.5213,4 +What we fear doing most is usually what we most need to do.,Tim Ferriss,-0.4939,5 +Everything you’ve ever wanted is on the other side of fear.,George Addair,-0.4939,6 +Success is going from failure to failure without losing your enthusiasm.,Winston Churchill,-0.4805,7 +"If there is no struggle, there is no progress.",Frederick Douglass,-0.4404,8 +There are no short cuts to any place worth going.,Beverly Sills,-0.3612,9 +"In each business, we have two strands: the day-to-day, and the future group thinking, 'How do I disrupt myself?' The people running it can't be the same ones thinking about its disruption.",Martin Reeves,-0.3612,10 +No person will have occasion to complain of the want of time who never loses any.,Thomas Jefferson,-0.3481,11 +The most common form of despair is not being who you are.,Kurt Vonnegut,-0.3182,12 +There are no traffic jams along the extra mile.,Roger Staubach,-0.296,13 +"Do it trembling if you must, but do it!",Emmet Fox,-0.2598,14 +"Money is, in some respects, like fire. It is a very excellent servant, but a terrible master.",P. T. Barnum,-0.2391,15 +"If you don't go after what you want, you'll never have it. If you don't ask, the answer is always no. If you don't step forward, you're always in the same place.",Nora Roberts,-0.2263,16 +And it is awfully hard to come up with those ideas if you don't have any time to think.,Paul B. Brown,-0.1761,17 +You miss 100% of the shots you don’t take.,Wayne Gretzky,-0.1531,18 +Every next level of your life will demand a different version of you.,Unknown,-0.128,19 +Every strike brings me closer to the next home run.,Babe Ruth,-0.128,20 +Obsessed is just a word the lazy use to describe the dedicated.,Russell Warren,-0.0516,21 +"Be who you are and say what you feel, because those who mind don't matter, and those who matter don't mind.",Bernard M. Baruch,-0.0382,22 +"When you come to a roadblock, take a detour.",Mary Kay Ash,0.0,23 +Believe you can and you’re halfway there.,Theodore Roosevelt,0.0,24 +"Do what you can, where you are, with what you have.",Teddy Roosevelt,0.0,25 +"Even if you’re on the right track, you’ll get run over if you just sit there.",Will Rogers,0.0,26 +Life is 10% what happens to you and 90% how you react to it.,Charles R. Swindoll,0.0,27 +Life's simple. You make choices and you don't look back.,Han,0.0,28 +I will go anywhere as long as it is forward.,David Livingston,0.0,29 +"If you can’t outplay them, outwork them.",Ben Hogan,0.0,30 +The difference between ordinary and extraordinary is that little extra.,Jimmy Johnson,0.0,31 +Don't live the same day over and over again and call that a life.,Germany Kent,0.0,32 +"When you talk, you are only repeating what you already know. But if you listen, you may learn something new.",The Dalai Lama,0.0,33 +"If you have some power, then your job is to empower somebody else.",Toni Morrison,0.0,34 +The price of anything is the amount of life you exchange for it.,Henry David Thoreau,0.0,35 +Light tomorrow with today.,Elizabeth Barrett Browning,0.0,36 +"Always make a total effort, even when the odds are against you.",Arnold Palmer,0.0,37 +It is never too late to be what you might have been.,George Eliot,0.0,38 +Forever is composed of nows.,Emily Dickinson,0.0,39 +The power of imagination makes us infinite.,John Muir,0.0,40 +"Learn from yesterday, live for today, look to tomorrow, rest this afternoon.",Charles M. Schulz,0.0,41 +Don’t wait. The time will never be just right.,Napoleon Hill,0.0,42 +How Everyone you Will Ever Meet Knows Something that You Don't.,Bill Nye,0.0,43 +You've got to bumble forward into the unknown.,Frank Gehry,0.0,44 +"If you have everything under control, you’re not moving fast enough.",Mario Andretti,0.0,45 +I don't know who my grandfather was; I am much more concerned to know what his grandson will be.,Abraham Lincoln,0.0,46 +You must do what others don't to achieve what others won't.,Les Brown,0.0,47 +Very often a change of self is needed more than a change of scene.,Arthur Christopher Benson,0.0,48 +"It’s not whether you get knocked down, it’s whether you get up.",Vince Lombardi,0.0,49 +One thing modeling taught me is that the spotlight can change everything.,Liya Kebede,0.0,50 +The dreamers are the saviors of the world.,James Allen,0.0,51 +"If you aren’t going all the way, why go at all?",Joe Namath,0.0,52 +"Don’t count the days, make the days count.",Muhammad Ali,0.0,53 +Change your thoughts and you change your world.,Norman Vincent Peale,0.0,54 +"It does not do to leave a live dragon out of your calculations, if you live near him.","J.R.R. Tolkien, The Hobbit or There and Back Again",0.0382,55 +"Tough times never last, but tough people do.",Dr. Robert Schuller,0.0785,56 +"The more I want to get something done, the less I call it work.",Richard Bach,0.1513,57 +"A person who is nice to you, but rude to the waiter, is not a nice person.",Dave Barry,0.1531,58 +It does not matter how slowly you go as long as you do not stop.,Confucius,0.2057,59 +"Try not. Do, or do not. There is no try.",Yoda,0.2235,60 +Our dreams feel real while we're in them. It's only when we wake we realize things were strange,"Cobb, Inception",0.2263,61 +"The gateway skill to good time management is when you ask not just what you need to do, but how long it will take.",Julie Morgenstern,0.2382,62 +"Life is not a problem to be solved, but a reality to be experienced.",Soren Kierkegaard,0.2912,63 +Every moment is a fresh beginning.,T.S. Eliot,0.3182,64 +"Waking up this morning, I smile. 24 brand new hours are before me. I vow to live fully in each moment.",Thich Nhat Hanh,0.3612,65 +"Sell a man a fish, he eats for a day. Teach a man how to fish, you ruin a wonderful business opportunity.",Karl Marx,0.4019,66 +You must be the change you wish to see in the world.,Gandhi,0.4019,67 +A year from now you may wish you had started today.,Karen Lamb,0.4019,68 +"If you don’t build your dreams, someone will hire you to build theirs.",Tony Gaskins,0.4019,69 +"You must be the person you have never had the courage to be. Gradually, you will discover that you are that person, but until you can see this clearly, you must pretend and invent.",Paulo Coelho,0.4163,70 +"The harder I work, the luckier I get.",Gary Player,0.4404,71 +Just keep going. Everybody gets better if they keep at it.,Ted Williams,0.4404,72 +The road to Easy Street goes through the sewer.,John Madden,0.4404,73 +"'What day is it?' asked Pooh. 'It’s today,' squeaked Piglet. 'My favorite day,' said Pooh.",A.A. Milne,0.4588,74 +"The competitor to be feared is one who never bothers about you at all, but goes on making his own business better all the time.",Henry Ford,0.4671,75 +"People love to buy, they don't like to be sold.",Matthew Pollard,0.4749,76 +"Few ""great"" ideas come from an individual; instead, they’re gradually expanded on and improved by a team or network of individuals.",Jayson DeMers,0.4767,77 +It takes courage to grow up and become who you really are.,E.E. Cummings,0.4939,78 +Keep your face to the sunshine and you can never see the shadow.,Helen Keller,0.4939,79 +Don’t downgrade your dream just to fit your reality.,Stuart Scott,0.5423,80 +Look at everything always as though you were seeing it either for the first or last time: Thus is your time on earth filled with glory.,Betty Smith,0.5423,81 +"The trick is to enjoy life. Don't wish away your days, waiting for better ones ahead.",Marjorie Pay Hinckley,0.5635,82 +Action is the foundational key to all success.,Pablo Picasso,0.5719,83 +There is only one success: to be able to spend your life in your own way.,Christopher Morley,0.5719,84 +"Life is beautiful, as long as it consumes you.",Socrates,0.5994,85 +Make each day your masterpiece.,John Wooden,0.6249,86 +Do what you love and the money will follow.,Marsha Sinetar,0.6369,87 +The best way out is always through.,Robert Frost,0.6369,88 +Champions keep playing until they get it right.,Billie Jean King,0.6369,89 +"The best time to plant a tree was twenty years ago, the second-best time is right now.",Chinese Proverb,0.6369,90 +The best way to predict the future is to invent it.,Alan Kay,0.6369,91 +Write it on your heart that every day is the best day in the year.,Ralph Waldo Emerson,0.6369,92 +Never let your memories be greater than your dreams.,Doug Ivester,0.6369,93 +"I think laziness is a cardinal sin -- not in the sense that you should always keep busy, but in the sense that if you have the potential to create something that can be useful to others, then you should do everything you can to make it happen.",François Chollet,0.6369,94 +"Every morning, I imagine creating a new business that needs to be sold by the end of the day. I better hustle today!","Manuel Amuantegui, Finding Motivation in Unusual Places",0.6588,95 +The highest profits are made in trades that show a profit right from the start.,Jesse Livermore,0.7003,96 +"Fact is, no one cares about your marketing goals. But everyone likes a good story.",Shane Snow,0.7579,97 +"It is much more difficult to judge oneself than to judge others. If you succeed in judging yourself rightly, then you are indeed a man of true wisdom.",Antoine de Saint-Exupéry,0.7655,98 +The first principle is that you must not fool yourself and you are the easiest person to fool.,Richard Feynman,0.7658,99 +The best dreams happen when you’re awake.,Cherie Gilderbloom,0.7845,100 +Remember that sometimes not getting what you want is a wonderful stroke of luck.,Dalai Lama,0.7906,101 +I'm sure the universe is full of intelligent life. It's just been too intelligent to come here.,Arthur C. Clarke,0.8074,102 +"Don’t wish it were easier, wish you were better.",Jim Rohn,0.8779,103 +"Out yonder there was this huge world, which exists independently of us human beings and which stands before us like a great, eternal riddle, at least partially accessible to our inspection and thinking. The contemplation of this world beckoned like a liberation…",Albert Einstein,0.8939,104 +"Life is beautiful, so long as it is consuming you. When it is rushing through you, destroying you, life is glorious. It is best to roar away, like a fire with a great draught, white-hot to the last bit.",D.H. Lawrence,0.9313,105 +I offer you peace. I offer you love. I offer you friendship. I see your beauty. I hear your need. I feel your feelings.,Mahatma Gandhi,0.9371,106 +"When we are mindful, deeply in touch with the present moment, our understanding of what is going on deepens, and we begin to be filled with acceptance, joy, peace and love.",Thich Nhat Hanh,0.9382,107 diff --git a/Quotes Web App/static/images/hand.png b/Quotes Web App/static/images/hand.png new file mode 100644 index 0000000000000000000000000000000000000000..4de4953e548bd816af13a0c28334cb50080205df GIT binary patch literal 8157 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 literal 0 HcmV?d00001 diff --git a/Quotes Web App/static/images/inspire-header-me.png b/Quotes Web App/static/images/inspire-header-me.png new file mode 100644 index 0000000000000000000000000000000000000000..6fff99104c3f64ea70d38f1a7e0d8937c10a2c36 GIT binary patch literal 39778 zcmZ^~1yCH!vM9W`!vYBs7I!BQB)EHUcL?t8?k>S0xVyW%yDl!l9fI4RobR4{&R_4n zt=g@T_U`HFnW+tvlMzEf{DcSq08k{vg%tn*$UjX$1U&4YU+h@oVE_P`%1lT|PC`hC zNY38I*v!%h01yvLRE1NDAHmA(A|ocwfdR&1xMLQGCx6laK$Q4L#X@69h9U^`N7K<% zV<`z&=a!L#SHi>&1b5JdcQA%iQJom{z>cPq`SS8ybljYOy?^goYjL=6u`%9%f$}x~ zph-3=yZ{)+*bmJMc*Tv!jK|4G<%gw`gXNeub|53^DlWDK7(KjRT)$!Q8(y3^*Q)Ww zysOF|T$6zSu~eao%@{IR{ULyEZ4MGUR6rnsDSJjDsecN*I^?&{Wbieq$VJrE>BvP? zw#{plY-tE~%m7IxHqD=~zTuJBq{;EHyTu8DmW;m;1A**9rxV+CEkHDWZVFmjJOgFg z&mhG)MfkiiD@qHm~_HGb<;jPt>nM~H9d@2;9S1|)0n5CAdlz2i;%c96+ut1?u0bvU*wEIDxE8B

s9#}Gl#{Q$oSI=Gk0YOVb(nY~ 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 SfzWXP>`{_em8+C73;hompLd7= literal 0 HcmV?d00001 diff --git a/Quotes Web App/static/images/moon.png b/Quotes Web App/static/images/moon.png new file mode 100644 index 0000000000000000000000000000000000000000..b7759f79db399853e1daf49d296ac81e9b8ca236 GIT binary patch literal 2544 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 QcmMzZ07*qoM6N<$f~dr_-v9sr literal 0 HcmV?d00001 diff --git a/Quotes Web App/templates/quote.html b/Quotes Web App/templates/quote.html new file mode 100644 index 0000000..b3be0db --- /dev/null +++ b/Quotes Web App/templates/quote.html @@ -0,0 +1,153 @@ + + +W3.CSS Template + + + + + + + + + + + + + + + + + + + + +

+ + + + +
+ +
+
+ {{quote}}


― {{author}} +
+
+ + +
+
+
+ + + +
+
+
+ + + + + + +