diff --git a/README.md b/README.md
index 826881e6435..6ce07d4d5f2 100644
--- a/README.md
+++ b/README.md
@@ -65,18 +65,22 @@
Contributing
License
Disclaimer
- Contact
+ Contacts
Acknowledgments
## About The Project
-How it started:
-"Gamestonk Terminal is an awesome stock and crypto market terminal that has been developed for fun, while I saw my GME shares tanking. But hey, I like the stock 💎🙌."
+**How it started:**
-How it's going:
-u/schoen: _(...) I think people have upvoted this so much because it's an initial version of a single person's passion project that manages to put a whole bunch of financial information at your fingertips. With an active community, it could easily grow and grow and grow in functionality._
+Gamestonk Terminal is an awesome stock and crypto market terminal that has been developed for fun, while I saw my GME shares tanking. But hey, I like the stock 💎🙌.
+
+**How it's going:**
+
+Gamestonk Terminal provides a modern Python-based integrated environment for investment research, that allows the average joe retail trader to leverage state-of-the-art Data Science and Machine Learning technologies.
+
+As a modern Python-based environment, GamestonkTerminal opens access to numerous Python data libraries in Data Science (Pandas, Numpy, Scipy, Jupyter), Machine Learning (Pytorch, Tensorflow, Sklearn, Flair), and Data Acquisition (Beautiful Soup, and numerous third-party APIs).
## Getting Started
@@ -258,12 +262,15 @@ Welcome to the club, and feel free to support the developers behind this amazing
Distributed under the MIT License. See [LICENSE](https://github.com/DidierRLopes/GamestonkTerminal/blob/main/LICENSE) for more information.
## Disclaimer
+
"A few things I am not. I am not a cat. I am not an institutional investor, nor am I a hedge fund. I do not have clients and I do not provide personalized investment advice for fees or commissions." DFV
-## Contact
+## Contacts
[Didier Rodrigues Lopes](https://www.linkedin.com/in/didier-lopes/) - dro.lopes@campus.fct.unl.pt
+[Artem Veremy](https://www.linkedin.com/in/veremey/) - artem@veremey.net
+
## Acknowledgments
* [VICE article](https://www.vice.com/en/article/qjp9vp/gamestonk-terminal-is-a-diy-meme-stock-version-of-bloomberg-terminal)
diff --git a/gamestonk_terminal/res_menu.py b/gamestonk_terminal/res_menu.py
index cb6b31c8df3..f887c83e1ae 100644
--- a/gamestonk_terminal/res_menu.py
+++ b/gamestonk_terminal/res_menu.py
@@ -34,11 +34,13 @@ def print_research(s_ticker, s_start, s_interval):
print(" zacks www.zacks.com")
print(" macrotrends www.macrotrends.net")
print(" newsfilter www.newsfilter.io")
+ print(" stockanalysis www.stockanalysis.com")
print("")
print(" resources trading analysis, tips and research")
print("")
+# pylint: disable=too-many-branches
def res_menu(s_ticker, s_start, s_interval):
# Add list of arguments that the research parser accepts
res_parser = argparse.ArgumentParser(add_help=False, prog="discovery")
@@ -66,6 +68,7 @@ def res_menu(s_ticker, s_start, s_interval):
"macrotrends",
"newsfilter",
"resources",
+ "stockanalysis",
],
)
@@ -158,6 +161,9 @@ def res_menu(s_ticker, s_start, s_interval):
elif ns_known_args.cmd == "newsfilter":
webbrowser.open(f"https://newsfilter.io/search?query={s_ticker}")
+ elif ns_known_args.cmd == "stockanalysis":
+ webbrowser.open(f"https://stockanalysis.com/stocks/{s_ticker}")
+
elif ns_known_args.cmd == "resources":
# webbrowser.open(f"https://www.tradinganalysisresources.com/2020/05/free-references-and-resources.html")
webbrowser.open(
diff --git a/gamestonk_terminal/sentiment/reddit_api.py b/gamestonk_terminal/sentiment/reddit_api.py
index 606cf2a637d..0eb640270ad 100644
--- a/gamestonk_terminal/sentiment/reddit_api.py
+++ b/gamestonk_terminal/sentiment/reddit_api.py
@@ -60,6 +60,12 @@ def watchlist(l_args):
password=cfg.API_REDDIT_PASSWORD,
)
+ try:
+ praw_api.user.me()
+ except Exception:
+ print("REDDIT API Keys are incorrect\n")
+ return
+
dt_last_time_market_close = get_last_time_market_was_open(
datetime.now() - timedelta(hours=24)
)
@@ -237,6 +243,12 @@ def popular_tickers(l_args):
password=cfg.API_REDDIT_PASSWORD,
)
+ try:
+ praw_api.user.me()
+ except Exception:
+ print("REDDIT API Keys are incorrect\n")
+ return
+
psaw_api = PushshiftAPI()
for s_sub_reddit in l_sub_reddits:
@@ -400,6 +412,12 @@ def spac_community(l_args):
password=cfg.API_REDDIT_PASSWORD,
)
+ try:
+ praw_api.user.me()
+ except Exception:
+ print("REDDIT API Keys are incorrect\n")
+ return
+
d_submission = {}
d_watchlist_tickers = {}
l_watchlist_links = list()
@@ -523,6 +541,12 @@ def spac(l_args):
password=cfg.API_REDDIT_PASSWORD,
)
+ try:
+ praw_api.user.me()
+ except Exception:
+ print("REDDIT API Keys are incorrect\n")
+ return
+
d_submission = {}
d_watchlist_tickers = {}
l_watchlist_links = list()
@@ -667,6 +691,12 @@ def wsb_community(l_args):
password=cfg.API_REDDIT_PASSWORD,
)
+ try:
+ praw_api.user.me()
+ except Exception:
+ print("REDDIT API Keys are incorrect\n")
+ return
+
d_submission = {}
l_watchlist_links = list()