provider: add about to openai
This commit is contained in:
parent
c65f3b4c11
commit
11b3e79234
|
@ -39,7 +39,6 @@ from tempfile import NamedTemporaryFile
|
||||||
|
|
||||||
from .provider import PROVIDERS
|
from .provider import PROVIDERS
|
||||||
|
|
||||||
|
|
||||||
class BavarderApplication(Adw.Application):
|
class BavarderApplication(Adw.Application):
|
||||||
"""The main application singleton class."""
|
"""The main application singleton class."""
|
||||||
|
|
||||||
|
@ -153,7 +152,7 @@ class BavarderApplication(Adw.Application):
|
||||||
)
|
)
|
||||||
|
|
||||||
about.add_acknowledgement_section(
|
about.add_acknowledgement_section(
|
||||||
_("Special thanks to"),
|
"Special thanks to",
|
||||||
[
|
[
|
||||||
"Telegraph https://apps.gnome.org/app/io.github.fkinoshita.Telegraph",
|
"Telegraph https://apps.gnome.org/app/io.github.fkinoshita.Telegraph",
|
||||||
],
|
],
|
||||||
|
|
|
@ -34,6 +34,6 @@ class Preferences(Adw.PreferencesWindow):
|
||||||
def setup_providers(self):
|
def setup_providers(self):
|
||||||
for provider in self.app.providers.values():
|
for provider in self.app.providers.values():
|
||||||
try:
|
try:
|
||||||
self.provider_group.add(provider.preferences())
|
self.provider_group.add(provider.preferences(self))
|
||||||
except TypeError: # no prefs
|
except TypeError: # no prefs
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
|
|
||||||
|
from gi.repository import Gtk, Adw
|
||||||
|
|
||||||
class BavarderProvider:
|
class BavarderProvider:
|
||||||
name = None
|
name = None
|
||||||
slug = None
|
slug = None
|
||||||
|
@ -47,11 +49,27 @@ class BavarderProvider:
|
||||||
def hide_banner(self):
|
def hide_banner(self):
|
||||||
self.win.banner.set_revealed(False)
|
self.win.banner.set_revealed(False)
|
||||||
|
|
||||||
def about(self):
|
def about(self, *args):
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
def no_preferences(self):
|
def no_preferences(self, win):
|
||||||
pass
|
self.pref_win = win
|
||||||
|
|
||||||
|
self.expander = Adw.ExpanderRow()
|
||||||
|
self.expander.props.title = self.name
|
||||||
|
|
||||||
|
about_button = Gtk.Button()
|
||||||
|
about_button.set_label("About")
|
||||||
|
about_button.connect("clicked", self.about)
|
||||||
|
about_button.set_valign(Gtk.Align.CENTER)
|
||||||
|
self.expander.add_action(about_button) # TODO: in Adw 1.4, use add_suffix
|
||||||
|
|
||||||
|
|
||||||
|
self.no_pref_row = Adw.ActionRow()
|
||||||
|
self.no_pref_row.props.title = "No preferences available"
|
||||||
|
self.expander.add_row(self.no_pref_row)
|
||||||
|
|
||||||
|
return self.expander
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
|
@ -10,10 +10,12 @@ class BaseOpenAIProvider(BavarderProvider):
|
||||||
name = None
|
name = None
|
||||||
slug = None
|
slug = None
|
||||||
model = None
|
model = None
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
def __init__(self, win, app, *args, **kwargs):
|
def __init__(self, win, app, *args, **kwargs):
|
||||||
super().__init__(win, app, *args, **kwargs)
|
super().__init__(win, app, *args, **kwargs)
|
||||||
self.chat = openai.ChatCompletion
|
self.chat = openai.ChatCompletion
|
||||||
|
self.pref_win = None
|
||||||
|
|
||||||
def ask(self, prompt):
|
def ask(self, prompt):
|
||||||
try:
|
try:
|
||||||
|
@ -41,10 +43,19 @@ class BaseOpenAIProvider(BavarderProvider):
|
||||||
def require_api_key(self):
|
def require_api_key(self):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def preferences(self):
|
def preferences(self, win):
|
||||||
|
self.pref_win = win
|
||||||
|
|
||||||
self.expander = Adw.ExpanderRow()
|
self.expander = Adw.ExpanderRow()
|
||||||
self.expander.props.title = self.name
|
self.expander.props.title = self.name
|
||||||
|
|
||||||
|
about_button = Gtk.Button()
|
||||||
|
about_button.set_label("About")
|
||||||
|
about_button.connect("clicked", self.about)
|
||||||
|
about_button.set_valign(Gtk.Align.CENTER)
|
||||||
|
self.expander.add_action(about_button) # TODO: in Adw 1.4, use add_suffix
|
||||||
|
|
||||||
|
|
||||||
self.api_row = Adw.PasswordEntryRow()
|
self.api_row = Adw.PasswordEntryRow()
|
||||||
self.api_row.connect("apply", self.on_apply)
|
self.api_row.connect("apply", self.on_apply)
|
||||||
self.api_row.props.title = "API Key"
|
self.api_row.props.title = "API Key"
|
||||||
|
@ -59,16 +70,17 @@ class BaseOpenAIProvider(BavarderProvider):
|
||||||
print(api_key)
|
print(api_key)
|
||||||
openai.api_key = api_key
|
openai.api_key = api_key
|
||||||
|
|
||||||
def about(self):
|
def about(self, *args):
|
||||||
about = Adw.AboutWindow(
|
about = Adw.AboutWindow(
|
||||||
transient_for=self.props.active_window,
|
transient_for=self.pref_win,
|
||||||
application_name=self.name,
|
application_name=self.name,
|
||||||
developer_name="OpenAI",
|
developer_name="OpenAI",
|
||||||
developers=["0xMRTT https://github.com/0xMRTT"],
|
developers=["0xMRTT https://github.com/0xMRTT"],
|
||||||
license_type=Gtk.License.GPL_3_0,
|
license_type=Gtk.License.GPL_3_0,
|
||||||
version=version,
|
version=self.version,
|
||||||
copyright="© 2023 0xMRTT",
|
copyright="© 2023 0xMRTT",
|
||||||
)
|
)
|
||||||
|
about.present()
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
return {"api_key": openai.api_key}
|
return {"api_key": openai.api_key}
|
||||||
|
|
Loading…
Reference in a new issue