diff options
author | montezdesousa <79287829+montezdesousa@users.noreply.github.com> | 2023-05-31 11:42:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-31 10:42:56 +0000 |
commit | 76fcaf77daea26bbd4a4adf9330f2434d7092d42 (patch) | |
tree | bb91117096ab6b91d25a945913537d6cfe12a27f | |
parent | 1b5c05460bc8a415ccb2e8c00e75608b9838f5c4 (diff) |
Upload routine to hub on stop (#5077)
* upload routine to hub on stop
* write cassette
* write cassette
* remove .openb from name
---------
Co-authored-by: James Maslek <jmaslek11@gmail.com>
11 files changed, 17198 insertions, 16585 deletions
diff --git a/openbb_terminal/account/account_controller.py b/openbb_terminal/account/account_controller.py index b788e6f9aac..72c5903bba1 100644 --- a/openbb_terminal/account/account_controller.py +++ b/openbb_terminal/account/account_controller.py @@ -331,7 +331,7 @@ class AccountController(BaseController): else: if ns_parser: routine = read_routine(file_name=" ".join(ns_parser.file)) - if routine: + if routine is not None: description = " ".join(ns_parser.description) name = ( diff --git a/openbb_terminal/core/session/hub_model.py b/openbb_terminal/core/session/hub_model.py index bbadd9a9d0a..1167f9b551a 100644 --- a/openbb_terminal/core/session/hub_model.py +++ b/openbb_terminal/core/session/hub_model.py @@ -402,7 +402,7 @@ def upload_routine( description: str = "", routine: str = "", override: bool = False, - base_url=BASE_URL, + base_url: str = BASE_URL, timeout: int = TIMEOUT, ) -> Optional[requests.Response]: """Send a routine to the server. diff --git a/openbb_terminal/parent_classes.py b/openbb_terminal/parent_classes.py index a0691a149fe..ece1a7e9f14 100644 --- a/openbb_terminal/parent_classes.py +++ b/openbb_terminal/parent_classes.py @@ -25,7 +25,9 @@ from rich.markdown import Markdown import openbb_terminal.core.session.local_model as Local from openbb_terminal.core.completer.choices import build_controller_choice_map from openbb_terminal.core.config.paths import HIST_FILE_PATH +from openbb_terminal.core.session import hub_model as Hub from openbb_terminal.core.session.current_user import get_current_user, is_local +from openbb_terminal.core.session.routines_handler import read_routine from openbb_terminal.cryptocurrency import cryptocurrency_helpers from openbb_terminal.custom_prompt_toolkit import NestedCompleter from openbb_terminal.decorators import log_start_end @@ -692,6 +694,31 @@ class BaseController(metaclass=ABCMeta): f"[green]Your routine has been recorded and saved here: {routine_file}[/green]\n" ) + if not is_local(): + routine = read_routine(file_name=routine_file) + if routine is not None: + name = SESSION_RECORDED_NAME.split(sep=".openbb", maxsplit=-1)[0] + response = Hub.upload_routine( + auth_header=current_user.profile.get_auth_header(), + name=name, + routine=routine, + ) + if response is not None and response.status_code == 409: + i = console.input( + "A routine with the same name already exists, " + "do you want to replace it? (y/n): " + ) + console.print("") + if i.lower() in ["y", "yes"]: + response = Hub.upload_routine( + auth_header=current_user.profile.get_auth_header(), + name=name, + routine=routine, + override=True, + ) + else: + console.print("[info]Aborted.[/info]") + # Clear session to be recorded again RECORD_SESSION = False SESSION_RECORDED = list() diff --git a/tests/openbb_terminal/common/cassettes/test_ultima_newsmonitor_view/test_display_news[AAPL].yaml b/tests/openbb_terminal/common/cassettes/test_ultima_newsmonitor_view/test_display_news[AAPL].yaml index ed63cab613f..440271ca4e4 100644 --- a/tests/openbb_terminal/common/cassettes/test_ultima_newsmonitor_view/test_display_news[AAPL].yaml +++ b/tests/openbb_terminal/common/cassettes/test_ultima_newsmonitor_view/test_display_news[AAPL].yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:86.0) Gecko/20100101 Firefox/86.0 + - Mozilla/5.0 (Windows NT 10.0; WOW64; rv:86.0) Gecko/20100101 Firefox/86.0 method: GET uri: https://api.ultimainsights.ai/v1/supportedTickers response: @@ -58,7 +58,7 @@ interactions: Content-Type: - text/html; charset=utf-8 Date: - - Thu, 25 May 2023 17:35:54 GMT + - Mon, 29 May 2023 17:46:12 GMT Server: - nginx/1.18.0 (Ubuntu) Transfer-Encoding: @@ -76,7 +76,7 @@ interactions: Connection: - keep-alive User-Agent: - - Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.10; rv:83.0) Gecko/20100101 Firefox/83.0 + - Mozilla/5.0 (Windows NT 10.0; WOW64; rv:86.0) Gecko/20100101 Firefox/86.0 method: GET uri: https://api.ultimainsights.ai/v1/supportedTickers response: @@ -125,7 +125,7 @@ interactions: Content-Type: - text/html; charset=utf-8 Date: - - Thu, 25 May 2023 17:35:54 GMT + - Mon, 29 May 2023 17:46:12 GMT Server: - nginx/1.18.0 (Ubuntu) Transfer-Encoding: @@ -143,7 +143,7 @@ interactions: Connection: - keep-alive User-Agent: - - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:86.1) Gecko/20100101 Firefox/86.1 + - Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.10; rv:86.1) Gecko/20100101 Firefox/86.1 method: GET uri: https://api.ultimainsights.ai/v1/getCompanyInfo/AAPL response: @@ -163,7 +163,7 @@ interactions: Content-Type: - text/html; charset=utf-8 Date: - - Thu, 25 May 2023 17:35:54 GMT + - Mon, 29 May 2023 17:46:12 GMT Server: - nginx/1.18.0 (Ubuntu) Transfer-Encoding: @@ -191,327 +191,325 @@ interactions: response: body: string: !!binary | - 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 |