We have a function

I converted the analysis code into a function that can be called from the rest of the app. I haven't hooked it up into the app yet, but I have been testing from the command line. At first I was having a problem that it would add duplicate tweets to the database, but I added a conditional check in the function to only add the tweet from the search results if the text is unique. In the future this will need to be changed to use the tweet ID rather than the text. I updated the template that displays the tweets to show the date/time of the last time the asset tweets were updated. This needs further formatting (both HTML and string formatting). The next things I would like to do include: - Getting more info from the tweets (user, id, date, etc.) and update our model - Add filtering options to the display page - Show aggregate score for the selected range - Add the asset symbol to the database as well, and update the function to search the asset name and symbol If you are logged in, you can view the assets here: https://sentimentextract.com/assets Then click on the asset button to see the tweets currently in the database.

The Wonderful World of Blueprints

Following the tutorial, I refactored the site to use Flask blueprints. I still need to figure out how to set environment variables that will be picked up when running through the nginx server.

Further troubleshooting of email

I was frustrated that SendGrid wasn't working, so I created a new Gmail account w/o 2fa turned on and tried to set that up to send, but I keep getting an error: (530, b'5.7.0 Authentication Required. Learn more at\n5.7.0 https://support.google.com/mail/?p=WantAuthError l19sm864187qkk.99 - gsmtp', '[redacted]@gmail.com') I'm pretty sure I set it up just like in the tutorial, but I can't get it to work. I even verified that I can see the environment variables from the command line. Anyway, I just set it to "try" to send the email and then to print the exception if it doesn't work. That way that product still seems to function. Again, this feature isn't even important to the functioning of the app.

1 2 3 ... 5