Textbot -- By Andrew Campi

      \       /                \       /               \       /   
       |     |                  |     |                 |     |    
   ____|_____|____          ____|_____|____         ____|_____|____
   |             |          |             |         |             |
   |  ---   ---  |          |  ---   ---  |         |  ---   ---  |
   |  | |   | |  |          |  | |   | |  |         |  | |   | |  |
   |  ---   ---  |          |  ---   ---  |         |  ---   ---  |
   |             |          |             |         |             |
   |  ---------  |          |  ---------  |         |  ---------  |
   |             |          |             |         |             |
   ---------------          ---------------         ---------------


About:
* This project demonstrates advanced knowledge of Python and the ability
  to integrate various APIs into one program.
* Similar to Apple's "Siri" and Amazon's "Alexa", this virtual assistant
  can answer different types of questions or perform tasks based on
  commands. In this version of the project, the user types the command
  or the question and the bot responds with text. In the other version of
  the project, the user speaks the command or the question, and the bot
  will say the response.


Setup:
1. Run the file named "setup.py". This file will install all necessary 
   libraries on your machine so that the bot can function. Make sure
   that all the libraries install successfully.
2. Run the file named "main.py" to communicate with the bot.


Abilities:
* Uses wikipedia to search for descriptions of people.
* Can translate from English to 45 different languages.
* Knows the current time.
* Knows your IP address.
* Can perform basic mathematic calculations.
* Uses wikipedia to find people's date of birth.
* Uses wikipedia to find people's date of death.
* Knows tongue twisters.
* Knows today's date.
* Knows the capitals of countries.
* Knows the capitals of U.S. states.
* Finds definitions words.


Example Commands / Questions:
* Who was George Washington?
* Translate to Russian my name is George Washington.
* What is the time?
* What is my IP address?
* (3*4)+4-9/4
* When was George Washington born?
* When did George Washington die?
* Do a tongue twister.
* What is today's date?
* What is the capital of France?
* What is the capital of Texas?
* What is the definition of general?


APIs and Libraries used in this project:
* wikipedia           =  https://pypi.org/project/wikipedia/
* countryinfo         =  https://pypi.org/project/countryinfo/
* os                  =  https://docs.python.org/3/library/os.html
* datetime            =  https://docs.python.org/3/library/datetime.html?highlight=datetime#module-datetime
* socket              =  https://docs.python.org/3/library/socket.html?highlight=socket#module-socket
* num2words           =  https://pypi.org/project/num2words/
* random              =  https://docs.python.org/3/library/random.html?highlight=random#module-random
* googletrans         =  https://pypi.org/project/googletrans/
* us                  =  https://pypi.org/project/us/
* PyDictionary        =  https://pypi.org/project/PyDictionary/


Future abilities:
* Finds synonyms of words.
* Finds antonyms of words.
* Knows Urban Dictionary definitions.
* Can play Akinator (21 questions)
* Knows the currency of a given country.
* Knows the time zones of a given country.
* Converts foreign currencies.
* Converts units of measurements.
* Plays music from a folder on user's machine.
* Reads poetry by a specific poet.
* Knows boarding countries of certain country.
* Knows what continent a country is located.
* Tells jokes.
* Can identify a song that is playing.
* Can solve a given Sudoku puzzle.
* Knows the weather in given location.
* Knows its location.
* Knows the weather of current location.
* Plays music from a Pandora station.
* Responds too insults with comebacks.
* Plays Tic-Tac-Toe.
* Sets alarms.
* Knows the score of current sporting events.
* Knows the current value of stocks.
* Plays Blackjack.
* Plays Chess.
* Plays Checkers.