diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a11c048 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM python + +WORKDIR /PSMBot-Virtual-Assistant + +COPY /main.py . +COPY /weather.py . +COPY news.py . + +COPY requirements.txt . +RUN pip install requirements.txt + +CMD [ "python", "main.py" ] \ No newline at end of file diff --git a/__pycache__/news.cpython-38.pyc b/__pycache__/news.cpython-38.pyc new file mode 100644 index 0000000..8b0b243 Binary files /dev/null and b/__pycache__/news.cpython-38.pyc differ diff --git a/__pycache__/weather.cpython-38.pyc b/__pycache__/weather.cpython-38.pyc index 6ecb5dd..a7bd8f5 100644 Binary files a/__pycache__/weather.cpython-38.pyc and b/__pycache__/weather.cpython-38.pyc differ diff --git a/main.py b/main.py index 328bc3f..5fc5c3f 100644 --- a/main.py +++ b/main.py @@ -64,11 +64,6 @@ if __name__ == "__main__": elif 'time' in command: time = datetime.datetime.now().strftime('%I:%M %p') talk('Current time is ' + time) - elif 'search on wikipedia' in command: - search = command.replace('search on wikipedia', '') - info = wikipedia.summary(search, 6) - print('Searching ' + info) - talk(info) elif 'search on google' in command: searchg = command.replace('search on google', '') pywhatkit.search(searchg) diff --git a/news.py b/news.py new file mode 100644 index 0000000..297ce8a --- /dev/null +++ b/news.py @@ -0,0 +1,55 @@ +import pyttsx3 +import requests +import json +import time + +url = ('https://newsapi.org/v2/top-headlines?' + 'country = in&' + 'apiKey =') + +url += 'e3adedf2b3c54560b27338ef2bac6af8' #Your API key here + +engine = pyttsx3.init() + +voices = engine.getProperty('voices') + +engine.setProperty('voice', voices[1].id) + +rate = engine.getProperty('rate') + +engine.setProperty('rate', 150) + +try: + response = requests.get(url) +except: + engine.talk("can't access link, please check your internet ") + +news = json.loads(response.text) + +for new in news['articles']: + # print(str(new['title']), "\n\n") + news_title = (str(new['title'])) + + # print(str(new['description']), "\n\n") + news_description = (str(new['description'])) + time.sleep(2) + +# from urllib.request import urlopen +# from bs4 import BeautifulSoup as soup + + +# def news(): +# try: +# news_url = "https://news.google.com/news/rss" +# Client = urlopen(news_url) +# xml_page = Client.read() +# Client.close() +# soup_page = soup(xml_page, "xml") +# news_list = soup_page.findAll("item") +# li = [] +# for news in news_list[:15]: +# li.append(str(news.title.text.encode('utf-8'))[1:]) +# return li +# except Exception as e: +# print(e) +# return False \ No newline at end of file diff --git a/notes.txt b/notes.txt new file mode 100644 index 0000000..b85de30 --- /dev/null +++ b/notes.txt @@ -0,0 +1,31 @@ +# import news +# from googlemaps import GoogleMaps + + # elif 'news' in command: + # talk(news.news_title) + # print(news.news_title + '\n') + # print('-----------------------------------------------------------------------------------------\n') + # talk(news.news_description) + # print(news.news_description + '\n') + # print('-----------------------------------------------------------------------------------------\n') + + # print(command) + # news_res = command.news() + # talk(f"I have found {len(news_res)} news. You can read it. Let me tell you first 2 of them") + # talk(news_res[0]) + # print(news_res[0]) + # talk(news_res[1]) + # print(news_res[1]) + # print(news_res) + # elif 'open maps' in command: + # command = command.replace('open maps', '') + # gmaps = GoogleMaps(api_key) + # print('Opening Maps...') + # talk('Opening Maps') + # print('What do you want to find?') + # talk('What do you want to find') + # local = gmaps.local_search(destination) + +weather api key = "a4212b9586f6bf848e1c47839ebfc5e9" + +wolframalpha = "JWP25T-Y434EXL697" \ No newline at end of file diff --git a/readme.md b/readme.md index 01b667d..9a7fb9a 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,6 @@ # **Create your own virtual assistant with just a few lines code (Using only PYTHON)** -_`Last Updated: March 13' 2020`_ +_`Last Updated: February 05' 2022`_ Hello & Welcome to this git page. Here I just created my own virtual assistant with just a few lines of code. It is not an @@ -15,6 +15,7 @@ To learn more about how I did it you can watch my YouTube video on this or [click here](https://www.youtube.com/channel/UCz6SDxk2KQqJAD6Ra_YPm6A). ## Pre-Requisites: + 1. Python Interpreter (Like [PyCharm](https://www.jetbrains.com/pycharm/)) 2. Python Environment (Like [Anaconda](https://www.anaconda.com/products/individual)) 3. This [git repo](https://github.com/psavarmattas/PSMBot-Virtual-Assistant.git) @@ -26,8 +27,6 @@ video on this or [click here](https://www.youtube.com/channel/UCz6SDxk2KQqJAD6Ra -> [pywhatkit](https://pypi.org/project/pywhatkit/) --> [wikipedia](https://pypi.org/project/wikipedia/) - -> [pyjokes](https://pypi.org/project/pyjokes/) -> [wolframalpha](https://pypi.org/project/wolframalpha/) @@ -47,21 +46,11 @@ resolved before opening an issues. ## Steps: ### For Windows users: + 1. Open PyCharm & create a new project with your virtual environment ready. -2. Open the terminal and paste the following in sequential order line by line(Execute it one by one): - -`pip install speechRecognistion` - -`pip install pyttsx3` - -`pip install pywhatkit` - -`pip install wikipedia` - -`pip install pyjokes` - -`pip install wolframalpha` +2. Open the terminal and paste the command highlighted below: +`pip install -r requirements.txt ` _Install this if necessary (Only when the code gives error)_ @@ -81,10 +70,10 @@ _(Note: Creating two different files for weather & main you will have to import ## Feature List (v2.0): 1. Play videos on YouTube. -2. Search Wikipedia with your queries. -3. Search google with your queries. -4. Listen to jokes. -5. Ask for the weather (Anywhere in the world). -6. It can solve complex math problems for you. -7. Ask it for today's date & time. -8. Say "thanks" or "thank you" and the assistant will appreciate you. \ No newline at end of file +2. Search google with your queries. +3. Listen to jokes. +4. Ask for the weather (Anywhere in the world). +5. It can solve complex math problems for you. +6. Ask it for today's date & time. +7. Say "thanks" or "thank you" and the assistant will appreciate you. +8. One command requirements install. \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..5f3c27a --- /dev/null +++ b/requirements.txt @@ -0,0 +1,40 @@ +astroid @ file:///C:/ci/astroid_1639044403229/work +beautifulsoup4==4.9.3 +certifi==2021.10.8 +chardet==4.0.0 +colorama @ file:///tmp/build/80754af9/colorama_1607707115595/work +comtypes==1.1.8 +idna==2.10 +isort @ file:///tmp/build/80754af9/isort_1628603791788/work +jaraco.context==4.0.0 +lazy-object-proxy @ file:///C:/ci/lazy-object-proxy_1616529307648/work +mccabe==0.6.1 +more-itertools==8.7.0 +MouseInfo==0.1.3 +Pillow==8.1.2 +platformdirs @ file:///tmp/build/80754af9/platformdirs_1638968569495/work +PyAudio==0.2.11 +PyAutoGUI==0.9.52 +PyGetWindow==0.0.9 +pyjokes==0.6.0 +pylint @ file:///C:/ci/pylint_1639650750934/work +PyMsgBox==1.0.9 +pyperclip==1.8.2 +pypiwin32==223 +PyRect==0.1.4 +PyScreeze==0.1.26 +pyttsx3==2.90 +PyTweening==1.0.3 +pywhatkit==3.9 +pywin32==300 +requests==2.25.1 +six @ file:///tmp/build/80754af9/six_1623709665295/work +soupsieve==2.2 +SpeechRecognition==3.8.1 +toml @ file:///tmp/build/80754af9/toml_1616166611790/work +typing-extensions @ file:///tmp/build/80754af9/typing_extensions_1631814937681/work +urllib3==1.26.3 +wincertstore==0.2 +wolframalpha==5.0.0 +wrapt @ file:///C:/ci/wrapt_1638434029846/work +xmltodict==0.12.0 \ No newline at end of file