2023-04-30 14:31:54 +00:00
|
|
|
|
2023-04-29 15:30:07 +00:00
|
|
|
class BavarderProvider:
|
2023-04-30 14:31:54 +00:00
|
|
|
name = None
|
|
|
|
slug = None
|
|
|
|
def __init__(self, win, app, data, *args, **kwargs):
|
2023-04-29 15:30:07 +00:00
|
|
|
self.win = win
|
|
|
|
self.banner = win.banner
|
|
|
|
self.bot_text_view = win.bot_text_view
|
|
|
|
self.app = app
|
|
|
|
self.chat = None
|
2023-04-30 14:31:54 +00:00
|
|
|
self.data = data
|
|
|
|
self.update_response = app.update_response
|
|
|
|
if data:
|
|
|
|
self.load(data)
|
|
|
|
self.no_data = False
|
|
|
|
else:
|
|
|
|
self.no_data = True
|
2023-04-29 15:30:07 +00:00
|
|
|
|
|
|
|
def ask(self, prompt):
|
|
|
|
raise NotImplementedError()
|
|
|
|
|
|
|
|
@property
|
|
|
|
def require_api_key(self):
|
|
|
|
raise NotImplementedError()
|
|
|
|
|
|
|
|
def preferences(self):
|
|
|
|
raise NotImplementedError()
|
|
|
|
|
2023-04-30 19:03:34 +00:00
|
|
|
def no_api_key(self, title=None):
|
|
|
|
if title:
|
|
|
|
self.win.banner.props.title = title
|
|
|
|
else:
|
|
|
|
self.win.banner.props.title = "No API key provided, you can provide one in settings"
|
|
|
|
self.win.banner.props.button_label = "Open settings"
|
|
|
|
self.win.banner.connect("button-clicked", self.app.on_preferences_action)
|
|
|
|
self.win.banner.set_revealed(True)
|
|
|
|
|
|
|
|
def no_connection(self):
|
|
|
|
self.win.banner.props.title = "No network connection"
|
|
|
|
self.win.banner.props.button_label = ""
|
|
|
|
self.win.banner.set_revealed(True)
|
|
|
|
|
|
|
|
def hide_banner(self):
|
|
|
|
self.win.banner.set_revealed(False)
|
|
|
|
|
2023-04-29 15:30:07 +00:00
|
|
|
def about(self):
|
|
|
|
raise NotImplementedError()
|
|
|
|
|
|
|
|
def no_preferences(self):
|
2023-04-30 14:31:54 +00:00
|
|
|
pass
|
|
|
|
|
|
|
|
def save(self):
|
|
|
|
raise NotImplementedError()
|
|
|
|
|
|
|
|
def load(self, data):
|
|
|
|
raise NotImplementedError()
|