mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-27 20:42:26 +00:00
little refactor for degiro company news
This commit is contained in:
@@ -82,13 +82,53 @@ class DegiroController(BaseController):
|
||||
prog="companynews",
|
||||
)
|
||||
parser.add_argument(
|
||||
"isin",
|
||||
"-s",
|
||||
"--symbol",
|
||||
type=str,
|
||||
help="ISIN code of the company.",
|
||||
required="-h" not in other_args,
|
||||
action="store",
|
||||
dest="symbol",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-l",
|
||||
"--limit",
|
||||
type=int,
|
||||
default=10,
|
||||
help="Number of news to display.",
|
||||
required=False,
|
||||
action="store",
|
||||
dest="limit",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-o",
|
||||
"--offset",
|
||||
type=int,
|
||||
default=0,
|
||||
help="Offset of news to display.",
|
||||
required=False,
|
||||
action="store",
|
||||
dest="offset",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-lang",
|
||||
"--languages",
|
||||
type=str,
|
||||
default="en,fr",
|
||||
help="Languages of news to display.",
|
||||
required=False,
|
||||
action="store",
|
||||
dest="languages",
|
||||
)
|
||||
ns_parser = self.parse_known_args_and_warn(parser, other_args)
|
||||
|
||||
self.__degiro_view.companynews(ns_parser=ns_parser)
|
||||
if ns_parser:
|
||||
self.__degiro_view.companynews(
|
||||
symbol=ns_parser.symbol,
|
||||
limit=ns_parser.limit,
|
||||
offset=ns_parser.offset,
|
||||
languages=ns_parser.languages,
|
||||
)
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def call_create(self, other_args: List[str]):
|
||||
|
||||
@@ -177,20 +177,27 @@ class DegiroModel:
|
||||
return self.__trading_api.delete_order(order_id=order_id)
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def companynews(self, isin: str) -> NewsByCompany:
|
||||
def companynews(
|
||||
self, symbol: str, limit: int = 10, offset: int = 0, languages: str = "en,fr"
|
||||
) -> NewsByCompany:
|
||||
trading_api = self.__trading_api
|
||||
request = NewsByCompany.Request(
|
||||
isin=isin,
|
||||
limit=10,
|
||||
offset=0,
|
||||
languages="en,fr",
|
||||
isin=symbol,
|
||||
limit=limit,
|
||||
offset=offset,
|
||||
languages=languages,
|
||||
)
|
||||
|
||||
# FETCH DATA
|
||||
news = trading_api.get_news_by_company(
|
||||
request=request,
|
||||
raw=False,
|
||||
)
|
||||
try:
|
||||
news = trading_api.get_news_by_company(
|
||||
request=request,
|
||||
raw=False,
|
||||
)
|
||||
except Exception as e:
|
||||
e_str = str(e)
|
||||
console.print(f"[red]{e_str}[/red]")
|
||||
return
|
||||
|
||||
return news
|
||||
|
||||
|
||||
@@ -98,15 +98,20 @@ class DegiroView:
|
||||
console.print(f"Following `Order` cancellation failed : {order_id}")
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def companynews(self, ns_parser: Namespace):
|
||||
def companynews(
|
||||
self, symbol: str, limit: int = 10, offset: int = 0, languages: str = "en,fr"
|
||||
):
|
||||
# GET ATTRIBUTES
|
||||
degiro_model = self.__degiro_model
|
||||
|
||||
# FETCH DATA
|
||||
news_by_company = degiro_model.companynews(isin=ns_parser.isin)
|
||||
news_by_company = degiro_model.companynews(
|
||||
symbol=symbol, limit=limit, offset=offset, languages=languages
|
||||
)
|
||||
|
||||
# DISPLAY DATA
|
||||
DegiroView.__companynews_display(news_by_company=news_by_company)
|
||||
if news_by_company:
|
||||
DegiroView.__companynews_display(news_by_company=news_by_company)
|
||||
|
||||
@staticmethod
|
||||
@log_start_end(log=logger)
|
||||
|
||||
Reference in New Issue
Block a user