Imaginer/src/provider/base.py

56 lines
1.5 KiB
Python
Raw Normal View History

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()