117 Commits
0.1.1 ... 0.1.4

Author SHA1 Message Date
0xMRTT
ecf33ae506 meson: bump to 0.1.4 2023-05-04 23:39:04 +00:00
0xMRTT
8d106ee69e data: add 0.1.4 2023-05-04 23:38:45 +00:00
9beb360bfd flatpak: add latest version of hgchat 2023-05-05 01:37:34 +02:00
2374531f7b data: update gschema key 2023-05-05 01:15:57 +02:00
aca1434491 provider: add json 2023-05-05 01:15:56 +02:00
48547c53a0 provider(bard): add save 2023-05-05 01:15:56 +02:00
d8cca9f7a2 main: add log 2023-05-05 01:15:55 +02:00
7f860e4ac1 ui: add quit 2023-05-05 01:15:54 +02:00
0xMRTT
64e9d63836 doc: explain the name
Signed-off-by: 0xMRTT <0xmrtt@noreply.codeberg.org>
2023-05-04 22:19:06 +00:00
David Lapshin
2d95d2cd56 Add OMG! Ubuntu fediverse link to SEEN.md 2023-05-05 00:28:38 +03:00
0xMRTT
9ff00cbedc doc: update seen
Signed-off-by: 0xMRTT <0xmrtt@noreply.codeberg.org>
2023-05-04 21:09:49 +00:00
0xMRTT
4429ea2fdb Add 'SEEN.md'
Signed-off-by: 0xMRTT <0xmrtt@noreply.codeberg.org>
2023-05-04 20:57:34 +00:00
keyiflerolsun
669a8ebd2d Translated using Weblate (Turkish)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/tr/
2023-05-04 20:56:31 +00:00
keyiflerolsun
3a297e2b50 Translated using Weblate (Turkish)
Currently translated at 33.3% (10 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/tr/
2023-05-04 20:52:49 +00:00
Anonymous
d7ad7f1886 Translated using Weblate (Turkish)
Currently translated at 33.3% (10 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/tr/
2023-05-04 20:52:49 +00:00
artnay
fc60c0456c Translated using Weblate (Finnish)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fi/
2023-05-04 20:52:04 +00:00
keyiflerolsun
6b7f246195 Added translation using Weblate (Turkish) 2023-05-04 20:52:04 +00:00
daudix-UFO
bd4df4efee fix: Appdata 2023-05-04 23:41:00 +03:00
daudix-UFO
3996d149ee misc: Tweak appdata a bit more 2023-05-04 23:27:34 +03:00
daudix-UFO
1291a29065 misc: Add category tag back 2023-05-04 23:21:58 +03:00
daudix-UFO
386c8ac23a feat: Add more tags to appdata 2023-05-04 23:19:43 +03:00
c4563aa5ca provider: sort providers in alphabetical order (#11 codeberg) 2023-05-04 17:53:43 +02:00
73b6dd33c0 meson: bump to 0.1.2 2023-05-04 14:22:58 +02:00
da8a92acd5 data: uodate appdata 2023-05-04 14:21:41 +02:00
f7442dfe71 fix: add focus on start (#11) 2023-05-04 14:21:15 +02:00
7870cfc843 src: add translators 2023-05-04 14:16:34 +02:00
fc376539f8 ui: remove speak and listen 2023-05-04 14:01:16 +02:00
0xMRTT
a8515fd9a3 doc: add description of imaginer
Signed-off-by: 0xMRTT <0xmrtt@noreply.codeberg.org>
2023-05-03 21:00:16 +00:00
0xMRTT
cb928759ac Doc: add rec for imaginer
Signed-off-by: 0xMRTT <0xmrtt@noreply.codeberg.org>
2023-05-03 20:58:42 +00:00
a546588be1 Translated using Weblate (Hungarian)
Currently translated at 23.3% (7 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/hu/
2023-05-03 19:17:13 +00:00
artnay
8921c25fbb Translated using Weblate (Finnish)
Currently translated at 90.0% (27 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fi/
2023-05-03 19:13:15 +00:00
artnay
874bef8470 Translated using Weblate (Finnish)
Currently translated at 30.0% (9 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fi/
2023-05-03 18:57:45 +00:00
Anonymous
c5b74d4c97 Translated using Weblate (Finnish)
Currently translated at 30.0% (9 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fi/
2023-05-03 18:57:45 +00:00
artnay
d978ed9e67 Added translation using Weblate (Finnish) 2023-05-03 18:57:14 +00:00
5c5c0b2430 Translated using Weblate (Spanish)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2023-05-03 18:52:40 +00:00
thepoladov13
3c4c66dda6 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/az/
2023-05-03 18:51:34 +00:00
deimidis
4cb3e01d37 Translated using Weblate (Spanish)
Currently translated at 96.6% (29 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2023-05-03 18:51:33 +00:00
thepoladov13
5489976256 Translated using Weblate (Azerbaijani)
Currently translated at 16.6% (5 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/az/
2023-05-03 18:22:58 +00:00
Anonymous
19ec1e642f Translated using Weblate (Azerbaijani)
Currently translated at 16.6% (5 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/az/
2023-05-03 18:22:58 +00:00
Morgan Antonsson
e1162292ab Translated using Weblate (Swedish)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/sv/
2023-05-03 18:22:58 +00:00
rene-coty
196a44c268 Translated using Weblate (French)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-05-03 18:22:57 +00:00
thepoladov13
763e30f7e2 Added translation using Weblate (Azerbaijani) 2023-05-03 18:22:09 +00:00
Anonymous
26386b3f71 Translated using Weblate (Hungarian)
Currently translated at 23.3% (7 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/hu/
2023-05-03 15:17:16 +00:00
osiixy
64f67b3f58 Translated using Weblate (Hungarian)
Currently translated at 23.3% (7 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/hu/
2023-05-03 15:17:16 +00:00
osiixy
e43e2c58b7 Added translation using Weblate (Hungarian) 2023-05-03 14:46:57 +00:00
0xMRTT
3baeaab7d4 data: migrate to codeberg 2023-05-03 13:48:40 +00:00
a48d59bf95 Translated using Weblate (German)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-05-03 13:47:25 +00:00
5c8a1f9e04 Translated using Weblate (French)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-05-03 13:44:06 +00:00
galegovski
1d506a67ed Translated using Weblate (Portuguese)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pt/
2023-05-03 13:42:49 +00:00
Anonymous
484c288202 Translated using Weblate (Portuguese)
Currently translated at 26.6% (8 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pt/
2023-05-03 12:27:34 +00:00
galegovski
b078c778c5 Translated using Weblate (Portuguese)
Currently translated at 26.6% (8 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/pt/
2023-05-03 12:27:34 +00:00
muznyo
18b66df198 Translated using Weblate (Czech)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/cs/
2023-05-03 12:23:10 +00:00
muznyo
679376336d Translated using Weblate (French)
Currently translated at 96.6% (29 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-05-03 12:23:10 +00:00
sjdonado
a0a2ff1c6a Translated using Weblate (Spanish)
Currently translated at 83.3% (25 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2023-05-03 12:23:10 +00:00
galegovski
09affee2e0 Added translation using Weblate (Portuguese) 2023-05-03 12:23:10 +00:00
0xMRTT
fc1852569b doc: add flathub
Signed-off-by: 0xMRTT <0xmrtt@noreply.codeberg.org>
2023-05-03 08:57:12 +00:00
0xMRTT
f8d9f28044 doc: remove gh actions
Signed-off-by: 0xMRTT <0xmrtt@noreply.codeberg.org>
2023-05-01 22:32:20 +00:00
c215c33777 provider: bard use googlebardpy 2023-05-01 13:20:31 +02:00
fa998584c7 provider: update bardUA 2023-05-01 12:53:56 +02:00
98a8e86737 provider: add google bard 2023-05-01 11:59:47 +02:00
85147ae859 provider: add about to catgpt 2023-05-01 11:22:47 +02:00
11b3e79234 provider: add about to openai 2023-05-01 11:22:43 +02:00
Anonymous
c65f3b4c11 Translated using Weblate (Czech)
Currently translated at 86.6% (26 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/cs/
2023-05-01 08:57:15 +00:00
Anonymous
ee60be4956 Translated using Weblate (Italian)
Currently translated at 23.3% (7 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/it/
2023-05-01 08:57:15 +00:00
Daudix_UFO
6cafd698e1 Translated using Weblate (Russian)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ru/
2023-05-01 08:57:15 +00:00
Anonymous
ee7bec5ac7 Translated using Weblate (Russian)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ru/
2023-05-01 08:57:15 +00:00
ed2997f223 Translated using Weblate (French)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-05-01 08:57:15 +00:00
Anonymous
20f11281bf Translated using Weblate (French)
Currently translated at 100.0% (30 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-05-01 08:57:15 +00:00
Anonymous
e022bbe822 Translated using Weblate (Spanish)
Currently translated at 23.3% (7 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/es/
2023-05-01 08:57:15 +00:00
Anonymous
0988fd4154 Translated using Weblate (German)
Currently translated at 80.0% (24 of 30 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-05-01 08:57:15 +00:00
112e9384c3 hf: add 403 and !=200 status code support 2023-05-01 02:03:40 +02:00
Codeberg Translate
9271f1976c Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/
2023-04-30 23:51:54 +00:00
muznyo
c0d4a3a951 Translated using Weblate (Czech)
Currently translated at 100.0% (25 of 25 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/cs/
2023-04-30 23:51:53 +00:00
26b45cdd0d po: update pot 2023-05-01 01:51:17 +02:00
65166a967e po: update pot 2023-05-01 01:46:02 +02:00
5a855e3236 format: with ruff and black 2023-05-01 01:45:31 +02:00
f47b690f5b provider: add google flan u12 2023-05-01 01:17:49 +02:00
6ef07107fe provider: add dialogpt 2023-05-01 01:17:40 +02:00
5e5c689743 provider: add google flan t5 xxl 2023-05-01 00:31:29 +02:00
0f7910eb6a provider: add hugging face base 2023-05-01 00:31:18 +02:00
71ec315941 provider: openai add require api key 2023-05-01 00:30:58 +02:00
127350cd95 provider: add alpaca 2023-05-01 00:30:43 +02:00
Daudix_UFO
886b18491c Translated using Weblate (Russian)
Currently translated at 100.0% (25 of 25 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/ru/
2023-04-30 21:37:33 +00:00
a942965a45 data: disable davinci 2023-04-30 23:17:57 +02:00
fdb908793e data: add openaitextdavinci003 to gschema 2023-04-30 23:09:19 +02:00
67e83a4fb5 src: add provider notify 2023-04-30 21:03:34 +02:00
ab7010a8db flatpak: add openai 2023-04-30 21:02:40 +02:00
9505d22f66 provider: add support for providers 2023-04-30 16:31:54 +02:00
088ee95a52 src: fix glib warning 2023-04-30 16:30:50 +02:00
08152e750d ci: remove aarch 2023-04-30 12:17:38 +02:00
28d6e5b8fc doc: add codeberg mirror 2023-04-29 18:55:36 +02:00
045a325fbf Translated using Weblate (German)
Currently translated at 88.0% (22 of 25 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/de/
2023-04-29 16:26:45 +00:00
349a67da19 ci: fix gh actions 2023-04-29 17:47:21 +02:00
b4d839ab8a src: fix BAIChat 2023-04-29 17:42:45 +02:00
264358a2b2 ci: fix github actions 2023-04-29 17:41:06 +02:00
c3f2210d5a Translated using Weblate (French)
Currently translated at 100.0% (25 of 25 strings)

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/fr/
2023-04-29 15:33:59 +00:00
Codeberg Translate
653fa25836 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: Bavarder/Bavarder
Translate-URL: https://translate.codeberg.org/projects/bavarder/bavarder/
2023-04-29 15:32:39 +00:00
81a793886e doc: change description 2023-04-29 17:32:14 +02:00
bf3facb551 po: update pot 2023-04-29 17:30:39 +02:00
781aed2132 providers: wip add providers 2023-04-29 17:30:07 +02:00
8abbc26560 main: begin add tts 2023-04-29 17:29:45 +02:00
377469256c win: add new ui components 2023-04-29 17:28:58 +02:00
ef35df04b5 flatpak: add hgchat and gtts 2023-04-29 17:28:47 +02:00
9a376e126a ui: fix spinners 2023-04-29 17:28:31 +02:00
4647be9b03 flatpak: use runtime 44 2023-04-29 17:27:51 +02:00
f9fdb42c60 meson: update conf 2023-04-29 11:31:18 +02:00
2f4297c344 doc: update flatpak messages
Signed-off-by: 0xMRTT <0xMRTT@proton.me>
2023-04-29 11:21:47 +02:00
441f510c0b ui: add listen and speak buttons 2023-04-29 11:16:50 +02:00
81aca51a7e meson: bump 0.1.2
Signed-off-by: 0xMRTT <0xMRTT@proton.me>
2023-04-27 23:38:09 +02:00
dd286e39d7 feat: Add release tags to appdata (#10) 2023-04-27 23:37:37 +02:00
daudix-UFO
af1c9e96c8 fix: Dates
Not these sugary dates
2023-04-28 00:23:19 +03:00
David Lapshin
db9b82589f Merge branch 'Bavarder:main' into main 2023-04-28 00:19:59 +03:00
daudix-UFO
392c5c5411 feat: Add release tags to appdata 2023-04-28 00:19:50 +03:00
53133da37b misc: Update screenshot (#9) 2023-04-27 22:43:07 +02:00
b64d7e1772 Merge branch 'main' into main 2023-04-27 22:42:56 +02:00
David Lapshin
92ea983372 Merge branch 'Bavarder:main' into main 2023-04-27 23:35:57 +03:00
daudix-UFO
5af2e8dd7c misc: Update screenshot 2023-04-27 23:33:18 +03:00
51 changed files with 2567 additions and 272 deletions

View File

@@ -10,11 +10,11 @@ jobs:
name: Flatpak
runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:gnome-nightly
image: bilelmoussaoui/flatpak-github-actions:gnome-44
options: --privileged
strategy:
matrix:
arch: [x86_64, aarch64]
arch: [x86_64]
fail-fast: false
steps:
- name: Checkout
@@ -29,7 +29,7 @@ jobs:
platforms: arm64
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
repository-name: gnome-nightly
repository-name: gnome-44
bundle: bavarder.flatpak
manifest-path: build-aux/flatpak/io.github.Bavarder.Bavarder.json
cache-key: flatpak-builder-${{ github.sha }}

View File

@@ -6,12 +6,12 @@
</h1>
<p align="center">
<strong>Chit-chat with GPT</strong>
<strong>Chit-chat with an AI</strong>
</p>
<p align="center">
<a href="https://flathub.org/apps/details/io.github.Bavarder.Bavarder">
<img width="200" alt="Download on Flathub" src="https://dl.flathub.org/assets/badges/flathub-badge-i-en.svg"/>
<img width="200" alt="Download on Flathub" src="https://dl.flathub.org/assets/badges/flathub-badge-en.svg"/>
</a>
<br>
</p>
@@ -22,9 +22,6 @@
<a href="https://translate.codeberg.org/engage/bavarder/">
<img src="https://translate.codeberg.org/widgets/bavarder/-/svg-badge.svg" alt="Translation status" />
</a>
<a href="https://github.com/Bavarder/Bavarder/actions/workflows/build.yml">
<img alt="Build status" src="https://github.com/GradienceTeam/Gradience/actions/workflows/build.yml/badge.svg"/>
</a>
<a href="https://repology.org/project/bavarder/versions">
<img alt="Packaging status" src="https://repology.org/badge/tiny-repos/bavarder.svg">
</a>
@@ -40,18 +37,32 @@
<img src="./data/screenshots/quantum-computing.png" alt="Preview"/>
</p>
## About the name
Bavarder is a french word, the definiton of Bavarder is "Parler abondamment de choses sans grande portée" (Talking a lot about things that don't matter) (Larousse) which can be translated by Chit-Chat (informal conversation about matters that are not important). For non-french speakers, Bavarder can be hard to speak, it's prounouced as [bavaʀde]. Hear [here](https://youtu.be/9Qoogwxo5YA)
## Installation
### Flatpak
#### Flathub
You can either use your GNOME Software and search for "Bavarder" or you can run
``` shell
flatpak install io.github.Bavarder.Bavarder
```
#### Latest build
You can download the latest Flatpak build from [Github Actions](https://github.com/Bavarder/Bavarder/actions/workflows/build.yml). Click on the latest job and download the artifact.
#### From Source
Clone the repo and run `flatpak-builder`
```
git clone https://github.com/Bavarder/Bavarder
``` shell
git clone https://codeberg.org/Bavarder/Bavarder # or https://github.com/Bavarder/Bavarder
cd Bavarder
flatpak-builder --install --user --force-clean repo/ build-aux/flatpak/io.github.Bavarder.Bavarder.json
```
@@ -67,3 +78,12 @@ The [GNOME Code of Conduct](https://wiki.gnome.org/Foundation/CodeOfConduct) is
</a>
You can translate Bavarder using Codeberg Translate
## See also
### Imaginer : Imagine with AI
A tool for generating pictures with AI (GNOME app)
- https://github.com/ImaginerApp/Imaginer
- https://codeberg.org/Imaginer/Imaginer

20
SEEN.md Normal file
View File

@@ -0,0 +1,20 @@
# Where Bavarder has been saw
## Press
- https://www.omgubuntu.co.uk/2023/05/bavarder-chatgpt-linux-app
- https://gnulinux.ch/bavarder-chatgpt-ohne-account
## Youtube
- https://youtu.be/dtAi2ejMwrk
## Fediverse
- https://bassam.social/notice/AVII4g9FPM0sD1bMWW
- https://pleroma.destroyallmachines.net/notice/AVHg9tnvMACshmHJL6
- https://floss.social/@omgubuntu/110304976747139717
## Misc
- https://alternativeto.net/software/bavarder/

View File

@@ -5,7 +5,7 @@
xmlns="http://usefulinc.com/ns/doap#">
<name xml:lang="en">Bavarder</name>
<shortdesc xml:lang="en">Chit-chat with GPT</shortdesc>
<shortdesc xml:lang="en">Chit-chat with an AI</shortdesc>
<homepage rdf:resource="https://github.com/Bavarder/Bavarder" />
<bug-database rdf:resource="https://github.com/Bavarder/Bavarder/issues"/>
<programming-language>Python</programming-language>

View File

@@ -1,7 +1,7 @@
{
"app-id" : "io.github.Bavarder.Bavarder",
"runtime" : "org.gnome.Platform",
"runtime-version" : "master",
"runtime-version" : "44",
"sdk" : "org.gnome.Sdk",
"command" : "bavarder",
"finish-args" : [

View File

@@ -1,59 +1,267 @@
{
"name": "python3-baichat-py",
"name": "pypi-dependencies",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"baichat-py\" --no-build-isolation"
],
"sources": [
"build-commands": [],
"modules": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/c2/fd/1ff4da09ca29d8933fda3f3514980357e25419ce5e0f689041edb8f17dab/aiohttp-3.8.4.tar.gz",
"sha256": "bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c"
"name": "python3-baichat-py",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"baichat-py\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/c2/fd/1ff4da09ca29d8933fda3f3514980357e25419ce5e0f689041edb8f17dab/aiohttp-3.8.4.tar.gz",
"sha256": "bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/76/ac/a7305707cb852b7e16ff80eaf5692309bde30e2b1100a1fcacdc8f731d97/aiosignal-1.3.1-py3-none-any.whl",
"sha256": "f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/d6/c1/8991e7c5385b897b8c020cdaad718c5b087a6626d1d11a23e1ea87e325a7/async_timeout-4.0.2-py3-none-any.whl",
"sha256": "8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/f0/eb/fcb708c7bf5056045e9e98f62b93bd7467eb718b0202e7698eb11d66416c/attrs-23.1.0-py3-none-any.whl",
"sha256": "1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/f5/ba/2b3ff0140b714149b4ee0c3af857f5e9b5fecd0d877370ea89351c21f433/baichat_py-0.2.1-py3-none-any.whl",
"sha256": "af5e83d813b93b249009da35fbb6cfcea8c65ee36fa0102e3ed7340d90804391"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e9/10/d629476346112b85c912527b9080944fd2c39a816c2225413dbc0bb6fcc0/frozenlist-1.3.3.tar.gz",
"sha256": "58bcc55721e8a90b88332d6cd441261ebb22342e238296bb330968952fbb3a6a"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4a/15/bd620f7a6eb9aa5112c4ef93e7031bcd071e0611763d8e17706ef8ba65e0/multidict-6.0.4.tar.gz",
"sha256": "3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/5f/3f/04b3c5e57844fb9c034b09c5cb6d2b43de5d64a093c30529fd233e16cf09/yarl-1.9.2.tar.gz",
"sha256": "04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"
}
]
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/76/ac/a7305707cb852b7e16ff80eaf5692309bde30e2b1100a1fcacdc8f731d97/aiosignal-1.3.1-py3-none-any.whl",
"sha256": "f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"
"name": "python3-hgchat",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"hgchat\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl",
"sha256": "4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e7/81/07b6a299ee6c2faa056873ca575f71cd26a4e58a282ed7b6115105309278/hgchat-0.1.1-py3-none-any.whl",
"sha256": "b654da3f5673ceafa5e987dbaae5ccdf858aa40e53f69470cc1010b26e45c3a3"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/96/80/034ffeca15c0f4e01b7b9c6ad0fb704b44e190cde4e757edbd60be404c41/requests-2.30.0-py3-none-any.whl",
"sha256": "10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4b/1d/f8383ef593114755429c307449e7717b87044b3bcd5f7860b89b1f759e34/urllib3-2.0.2-py3-none-any.whl",
"sha256": "d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"
}
]
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/d6/c1/8991e7c5385b897b8c020cdaad718c5b087a6626d1d11a23e1ea87e325a7/async_timeout-4.0.2-py3-none-any.whl",
"sha256": "8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"
"name": "python3-gTTS",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"gTTS\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl",
"sha256": "4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/c2/f1/df59e28c642d583f7dacffb1e0965d0e00b218e0186d7858ac5233dce840/click-8.1.3-py3-none-any.whl",
"sha256": "bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/98/da/4b8bb016aca4abebe5b582ce1b17604a1d9bc91499ac2214e1fa250f69b6/gTTS-2.3.2-py3-none-any.whl",
"sha256": "9132e409603f34d5023458e3e10ce2f5df55498d7a2ee781c9adbe616fbd4152"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/96/80/034ffeca15c0f4e01b7b9c6ad0fb704b44e190cde4e757edbd60be404c41/requests-2.30.0-py3-none-any.whl",
"sha256": "10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4b/1d/f8383ef593114755429c307449e7717b87044b3bcd5f7860b89b1f759e34/urllib3-2.0.2-py3-none-any.whl",
"sha256": "d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"
}
]
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/f0/eb/fcb708c7bf5056045e9e98f62b93bd7467eb718b0202e7698eb11d66416c/attrs-23.1.0-py3-none-any.whl",
"sha256": "1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"
"name": "python3-openai",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"openai\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/c2/fd/1ff4da09ca29d8933fda3f3514980357e25419ce5e0f689041edb8f17dab/aiohttp-3.8.4.tar.gz",
"sha256": "bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/76/ac/a7305707cb852b7e16ff80eaf5692309bde30e2b1100a1fcacdc8f731d97/aiosignal-1.3.1-py3-none-any.whl",
"sha256": "f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/d6/c1/8991e7c5385b897b8c020cdaad718c5b087a6626d1d11a23e1ea87e325a7/async_timeout-4.0.2-py3-none-any.whl",
"sha256": "8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/f0/eb/fcb708c7bf5056045e9e98f62b93bd7467eb718b0202e7698eb11d66416c/attrs-23.1.0-py3-none-any.whl",
"sha256": "1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl",
"sha256": "4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e9/10/d629476346112b85c912527b9080944fd2c39a816c2225413dbc0bb6fcc0/frozenlist-1.3.3.tar.gz",
"sha256": "58bcc55721e8a90b88332d6cd441261ebb22342e238296bb330968952fbb3a6a"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4a/15/bd620f7a6eb9aa5112c4ef93e7031bcd071e0611763d8e17706ef8ba65e0/multidict-6.0.4.tar.gz",
"sha256": "3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/9f/87/838149e472c58a141fa81e2eb4cc8828cb134054b59d67637031985ca770/openai-0.27.6-py3-none-any.whl",
"sha256": "1f07ed06f1cfc6c25126107193726fe4cf476edcc4e1485cd9eb708f068f2606"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/96/80/034ffeca15c0f4e01b7b9c6ad0fb704b44e190cde4e757edbd60be404c41/requests-2.30.0-py3-none-any.whl",
"sha256": "10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e6/02/a2cff6306177ae6bc73bc0665065de51dfb3b9db7373e122e2735faf0d97/tqdm-4.65.0-py3-none-any.whl",
"sha256": "c4f53a17fe37e132815abceec022631be8ffe1b9381c2e6e30aa70edc99e9671"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4b/1d/f8383ef593114755429c307449e7717b87044b3bcd5f7860b89b1f759e34/urllib3-2.0.2-py3-none-any.whl",
"sha256": "d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/5f/3f/04b3c5e57844fb9c034b09c5cb6d2b43de5d64a093c30529fd233e16cf09/yarl-1.9.2.tar.gz",
"sha256": "04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"
}
]
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/f5/ba/2b3ff0140b714149b4ee0c3af857f5e9b5fecd0d877370ea89351c21f433/baichat_py-0.2.1-py3-none-any.whl",
"sha256": "af5e83d813b93b249009da35fbb6cfcea8c65ee36fa0102e3ed7340d90804391"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e9/10/d629476346112b85c912527b9080944fd2c39a816c2225413dbc0bb6fcc0/frozenlist-1.3.3.tar.gz",
"sha256": "58bcc55721e8a90b88332d6cd441261ebb22342e238296bb330968952fbb3a6a"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4a/15/bd620f7a6eb9aa5112c4ef93e7031bcd071e0611763d8e17706ef8ba65e0/multidict-6.0.4.tar.gz",
"sha256": "3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/5f/3f/04b3c5e57844fb9c034b09c5cb6d2b43de5d64a093c30529fd233e16cf09/yarl-1.9.2.tar.gz",
"sha256": "04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"
"name": "python3-googlebardpy",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"googlebardpy\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl",
"sha256": "4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/a8/40/30a6440d5ceec49fc268710705b89e654fc854d9b8754850228deaf64892/googlebardpy-0.1.0-py3-none-any.whl",
"sha256": "12e65fdfe99392cbb5e8f93572340b757cd9d7aa83391316eaea3a1527995ef2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/96/80/034ffeca15c0f4e01b7b9c6ad0fb704b44e190cde4e757edbd60be404c41/requests-2.30.0-py3-none-any.whl",
"sha256": "10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/4b/1d/f8383ef593114755429c307449e7717b87044b3bcd5f7860b89b1f759e34/urllib3-2.0.2-py3-none-any.whl",
"sha256": "d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"
}
]
}
]
}

View File

@@ -1,44 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>io.github.Bavarder.Bavarder.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-or-later</project_license>
<id>io.github.Bavarder.Bavarder</id>
<name>Bavarder</name>
<summary>Chit-chat with GPT</summary>
<summary>Chit-chat with an AI</summary>
<developer_name>0xMRTT</developer_name>
<content_rating type="oars-1.1"/>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-or-later</project_license>
<launchable type="desktop-id">io.github.Bavarder.Bavarder.desktop</launchable>
<content_rating type="oars-1.1"/>
<description>
<p>Chit-chat with GPT</p>
<p>Chit-chat with an AI</p>
</description>
<screenshots>
<screenshot width="472" height="622">
<caption>Screenshot of Main UI</caption>
<image type="source">https://raw.githubusercontent.com/Bavarder/Bavarder/main/data/screenshots/quantum-computing.png</image>
</screenshot>
</screenshots>
<url type="bugtracker">https://github.com/Bavarder/Bavarder/issues</url>
<url type="bugtracker">https://codeberg.org/Bavarder/Bavarder/issues</url>
<url type="translate">https://translate.codeberg.org/engage/bavarder/</url>
<url type="help">https://github.com/Bavarder/Bavarder/issues</url>
<url type="homepage">https://github.com/Bavarder/Bavarder</url>
<url type="help">https://codeberg.org/Bavarder/Bavarder/issues</url>
<url type="homepage">https://codeberg.org/Bavarder/Bavarder</url>
<kudos>
<kudo>HiDpiIcon</kudo>
<kudo>ModernToolkit</kudo>
</kudos>
<kudos>
<kudo>HiDpiIcon</kudo>
<kudo>ModernToolkit</kudo>
</kudos>
<requires>
<display_length compare="ge">360</display_length>
</requires>
<custom>
<value key="Purism::form_factor">workstation</value>
<value key="Purism::form_factor">mobile</value>
</custom>
<categories>
<category>Utility</category>
</categories>
<requires>
<display_length compare="ge">360</display_length>
</requires>
<recommends>
<control>keyboard</control>
<control>pointing</control>
<control>touch</control>
</recommends>
<categories>
<category>Utility</category>
</categories>
<recommends>
<control>keyboard</control>
<control>pointing</control>
<control>touch</control>
</recommends>
<keywords>
<keyword>Bavarder</keyword>
@@ -48,4 +57,36 @@
<keyword>AI</keyword>
<keyword>OpenAI</keyword>
</keywords>
<releases>
<release version="0.1.4" date="2023-5-4" type="stable">
<description>
<p>Fix HuggingChat</p>
</description>
</release>
<release version="0.1.3" date="2023-5-4" type="stable">
<description>
<p>Add multiple providers support</p>
<p>Make HuggingChat the default provider</p>
<p>Fix some bugs</p>
<p>Focus on the response entry</p>
<p>Update translations</p>
</description>
</release>
<release version="0.1.2" date="2023-4-27" type="stable">
<description>
<p>Fix appdata not having release tags</p>
</description>
</release>
<release version="0.1.1" date="2023-4-27" type="stable">
<description>
<p>Change app ID to io.github.Bavarder.Bavarder</p>
</description>
</release>
<release version="0.1.0" date="2023-4-27" type="stable">
<description>
<p>First release of Bavarder</p>
</description>
</release>
</releases>
</component>

View File

@@ -16,5 +16,14 @@
<key name="clear-after-send" type="b">
<default>false</default>
</key>
<key name="enabled-providers" type="as">
<default>["baichat", "catgpt", "huggingchat", "openaigpt35turbo", "openaigpt4"]</default>
</key>
<key name="latest-provider" type="s">
<default>'huggingchat'</default>
</key>
<key name="providers-data" type="a{ss}">
<default>{}</default>
</key>
</schema>
</schemalist>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -20,5 +20,9 @@ template Preferences : Adw.PreferencesWindow {
}
}
}
Adw.PreferencesGroup provider_group {
title: _("Providers");
}
}
}

View File

@@ -26,6 +26,9 @@ template BavarderWindow : Adw.ApplicationWindow {
icon-name: "open-menu-symbolic";
tooltip-text: _("Main Menu");
}
DropDown provider_selector {
styles ["flat"]
}
styles ["flat"]
}
@@ -81,6 +84,23 @@ template BavarderWindow : Adw.ApplicationWindow {
tooltip-text: _("Copy to Clipboard");
action-name: "app.copy_prompt";
}
// Button listen {
// action-name: "app.listen";
// tooltip-text: _("Listen");
// icon-name: "audio-input-microphone-symbolic";
// }
// Button listen_wait {
// visible: false;
// sensitive: false;
// tooltip-text: _("Listening");
// Spinner listen_spinner {
// margin-top: 8;
// margin-bottom: 8;
// margin-start: 8;
// margin-end: 8;
// }
// }
Button ask_button {
visible: true;
sensitive: false;
@@ -154,7 +174,25 @@ template BavarderWindow : Adw.ApplicationWindow {
styles ["toolbar"]
Button {
// Button speak {
// action-name: "app.speak";
// tooltip-text: _("Speak");
// icon-name: "audio-speakers-symbolic";
// }
// Button speak_wait {
// visible: false;
// sensitive: false;
// tooltip-text: _("Speaking");
// Spinner speak_spinner {
// margin-top: 8;
// margin-bottom: 8;
// margin-start: 8;
// margin-end: 8;
// }
// }
Button copy_bot {
sensitive: false;
icon-name: "edit-copy-symbolic";
tooltip-text: _("Copy to Clipboard");
@@ -183,6 +221,11 @@ menu main-menu {
action: "win.show-help-overlay";
}
item {
label: _("Quit");
action: "app.quit";
}
item {
label: _("About Bavarder");
action: "app.about";

View File

@@ -1,5 +1,5 @@
project('bavarder',
version: '0.1.1',
version: '0.1.4',
meson_version: '>= 0.62.0',
default_options: [ 'warning_level=2', 'werror=false', ],
)
@@ -10,6 +10,9 @@ python = import('python')
# Constants
PROJECT_RDNN_NAME = 'io.github.Bavarder.Bavarder'
BUGTRACKER_URL = 'https://github.com/Bavarder/Bavarder/issues'
HELP_URL = 'https://github.com/Bavarder/Bavarder/issues'
TRANSLATE_URL = 'https://translate.codeberg.org/engage/bavarder/'
PROJECT_URL = 'https://github.com/Bavarder'
@@ -55,6 +58,11 @@ conf.set('BUILD_TYPE', get_option('buildtype'))
conf.set('SCHEMAS_DIR', PKGDATA_DIR)
conf.set('SOURCE_DIR', meson.current_source_dir())
conf.set('BUILD_DIR', meson.current_build_dir())
conf.set('BUGTRACKER_URL', BUGTRACKER_URL)
conf.set('HELP_URL', HELP_URL)
conf.set('TRANSLATE_URL', TRANSLATE_URL)
conf.set('RELEASE_VER', meson.project_version())
conf.set('PROJECT_URL', PROJECT_URL)
subdir('data')
subdir('src')

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-27 22:07+0200\n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -24,7 +24,7 @@ msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with GPT"
msgid "Chit-chat with an AI"
msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
@@ -55,7 +55,7 @@ msgctxt "shortcut window"
msgid "Quit"
msgstr ""
#: data/ui/preferences.blp:5 data/ui/window.blp:177
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr ""
@@ -71,38 +71,74 @@ msgstr ""
msgid "The prompt will be cleared after send"
msgstr ""
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr ""
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr ""
#: data/ui/window.blp:33
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr ""
#: data/ui/window.blp:48
#: data/ui/window.blp:51
msgid "Message"
msgstr ""
#: data/ui/window.blp:81 data/ui/window.blp:160
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr ""
#: data/ui/window.blp:88
#: data/ui/window.blp:89
msgid "Listen"
msgstr ""
#: data/ui/window.blp:96
msgid "Listening"
msgstr ""
#: data/ui/window.blp:108
msgid "Ask"
msgstr ""
#: data/ui/window.blp:97
#: data/ui/window.blp:117
msgid "Wait"
msgstr ""
#: data/ui/window.blp:112
#: data/ui/window.blp:132
msgid "Response"
msgstr ""
#: data/ui/window.blp:182
#: data/ui/window.blp:179
msgid "Speak"
msgstr ""
#: data/ui/window.blp:186
msgid "Speaking"
msgstr ""
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr ""
#: data/ui/window.blp:187
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr ""
#: src/main.py:156
msgid "Special thanks to"
msgstr ""
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr ""
#: src/provider/base.py:38
msgid "Open settings"
msgstr ""
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr ""

View File

@@ -6,3 +6,8 @@ sv
it
de
cs
pt
hu
az
fi
tr

View File

@@ -7,3 +7,5 @@ data/ui/window.blp
src/main.py
src/preferences.py
src/window.py
src/provider/base.py
src/provider/catgpt.py

147
po/az.po Normal file
View File

@@ -0,0 +1,147 @@
# Bavarder POT file
# Copyright (C) 2023 Bavarder
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
#
# thepoladov13 <thepoladov@protonmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 18:51+0000\n"
"Last-Translator: thepoladov13 <thepoladov@protonmail.com>\n"
"Language-Team: Azerbaijani <https://translate.codeberg.org/projects/bavarder/"
"bavarder/az/>\n"
"Language: az\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with an AI"
msgstr "Chit AI ilə söhbət edin"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
msgid "Screenshot of Main UI"
msgstr "Əsas UI ekran görüntüsü"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Ümumi"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Qısayolları göstərin"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Soruş"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Quit"
msgstr "Çıx"
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Üstünlüklər"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr "Sorğu"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr "Göndərdikdən sonra sorğunu silin"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr "Sorğu göndərildikdən sonra silinəcək"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr "Provayderlər"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr "Əsas menyu"
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "Şəbəkə bağlantısı yoxdur"
#: data/ui/window.blp:51
msgid "Message"
msgstr "Mesaj"
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Buferə kopyalayın"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Dinləmək"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Dinləyirəm"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Soruş"
#: data/ui/window.blp:117
msgid "Wait"
msgstr "Gözləyin"
#: data/ui/window.blp:132
msgid "Response"
msgstr "Cavab"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Danış"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Danışıram"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Klaviatura Qısayolları"
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr "Bavarder haqqında"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Xüsusi təşəkkürlər"
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr "API açarı təqdim edilməyib, siz onu ayarlarda təmin edə bilərsiniz"
#: src/provider/base.py:38
msgid "Open settings"
msgstr "Parametrləri açın"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr "Cat GPT"

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-27 22:07+0200\n"
"PO-Revision-Date: 2023-04-27 19:52+0000\n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 12:23+0000\n"
"Last-Translator: muznyo <codeberg.vqtek@simplelogin.com>\n"
"Language-Team: Czech <https://translate.codeberg.org/projects/bavarder/"
"bavarder/cs/>\n"
@@ -27,8 +27,8 @@ msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with GPT"
msgstr "Chatovat s GPT"
msgid "Chit-chat with an AI"
msgstr "Chatovat s umělou inteligencí"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
msgid "0xMRTT"
@@ -58,7 +58,7 @@ msgctxt "shortcut window"
msgid "Quit"
msgstr "Ukončit"
#: data/ui/preferences.blp:5 data/ui/window.blp:177
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Nastavení"
@@ -74,41 +74,77 @@ msgstr "Vymazat dotaz po odeslání"
msgid "The prompt will be cleared after send"
msgstr "Dotaz bude vymazán po odeslání"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr "Poskytovatelé"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr "Hlavní menu"
#: data/ui/window.blp:33
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "Žádné připojení k síti"
#: data/ui/window.blp:48
#: data/ui/window.blp:51
msgid "Message"
msgstr "Zpráva"
#: data/ui/window.blp:81 data/ui/window.blp:160
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Kopírovat do schránky"
#: data/ui/window.blp:88
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Poslech"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Poslouchání"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Zeptat se"
#: data/ui/window.blp:97
#: data/ui/window.blp:117
msgid "Wait"
msgstr "Čekejte"
#: data/ui/window.blp:112
#: data/ui/window.blp:132
msgid "Response"
msgstr "Odpověď"
#: data/ui/window.blp:182
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Mluvit"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Mluvení"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Klávesové zkratky"
#: data/ui/window.blp:187
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr "O Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Zvláštní poděkování patří"
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr "API klíč nebyl přidán, můžete jej přidat v nastavení"
#: src/provider/base.py:38
msgid "Open settings"
msgstr "Otevřít nastavení"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr "Cat GPT"
#~ msgid "Ready"
#~ msgstr "Připraveno"

View File

@@ -4,13 +4,14 @@
# Bavarder, 2023.
#
# 0xMRTT <0xmrtt@tuta.io>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-27 22:07+0200\n"
"PO-Revision-Date: 2023-04-27 17:37+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@tuta.io>\n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 13:47+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: German <https://translate.codeberg.org/projects/bavarder/"
"bavarder/de/>\n"
"Language: de\n"
@@ -27,7 +28,7 @@ msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with GPT"
msgid "Chit-chat with an AI"
msgstr "Plaudern Sie mit GPT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
@@ -58,7 +59,7 @@ msgctxt "shortcut window"
msgid "Quit"
msgstr "Aufhören"
#: data/ui/preferences.blp:5 data/ui/window.blp:177
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Einstellungen"
@@ -74,42 +75,79 @@ msgstr "Eingabeaufforderung nach dem Senden löschen"
msgid "The prompt will be cleared after send"
msgstr "Die Eingabeaufforderung wird nach dem Senden gelöscht"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr "Anbieter"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr "Hauptmenü"
#: data/ui/window.blp:33
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "Keine Netzwerkverbindung"
#: data/ui/window.blp:48
#: data/ui/window.blp:51
msgid "Message"
msgstr "Meldung"
#: data/ui/window.blp:81 data/ui/window.blp:160
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "In die Zwischenablage kopieren"
#: data/ui/window.blp:88
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Hören"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Hören"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Fragen"
#: data/ui/window.blp:97
#: data/ui/window.blp:117
msgid "Wait"
msgstr "Warten"
#: data/ui/window.blp:112
#: data/ui/window.blp:132
msgid "Response"
msgstr "Antwort"
#: data/ui/window.blp:182
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Sprechen"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Reden"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Tastatürkürzel"
#: data/ui/window.blp:187
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr "Über Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Besonderer Dank an"
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr ""
"Kein API-Schlüssel angegeben, Sie können einen in den Einstellungen angeben"
#: src/provider/base.py:38
msgid "Open settings"
msgstr "Einstellungen öffnen"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr "Katze GPT"
#~ msgid "Ready"
#~ msgstr "Bereit"

View File

@@ -4,13 +4,16 @@
# Bavarder, 2023.
#
# 0xMRTT <0xmrtt@tuta.io>, 2023.
# sjdonado <jsrd98@gmail.com>, 2023.
# deimidis <gmovia@pm.me>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-27 22:07+0200\n"
"PO-Revision-Date: 2023-04-27 17:37+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@tuta.io>\n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 18:52+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Spanish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/es/>\n"
"Language: es\n"
@@ -23,20 +26,20 @@ msgstr ""
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
msgid "Bavarder"
msgstr ""
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with GPT"
msgstr ""
msgid "Chit-chat with an AI"
msgstr "Conversa con una IA"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
msgid "0xMRTT"
msgstr ""
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
msgid "Screenshot of Main UI"
msgstr ""
msgstr "Captura de Pantalla de la Interfaz de Usuario Principal"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
@@ -46,69 +49,106 @@ msgstr "General"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr ""
msgstr "Mostrar Atajos de Teclado"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr ""
msgstr "Preguntar"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Quit"
msgstr "Salida"
#: data/ui/preferences.blp:5 data/ui/window.blp:177
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Preferencias"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr ""
msgstr "Entrada"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr ""
msgstr "Limpiar entrada después de enviar"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr ""
msgstr "La entrada será borrada después de enviar"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr "Proveedores"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr ""
msgstr "Menú Principal"
#: data/ui/window.blp:33
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "No hay conexión de red"
#: data/ui/window.blp:48
#: data/ui/window.blp:51
msgid "Message"
msgstr "Mensaje"
#: data/ui/window.blp:81 data/ui/window.blp:160
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Copiar al portapapeles"
#: data/ui/window.blp:88
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Escuchar"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Escuchando"
#: data/ui/window.blp:108
msgid "Ask"
msgstr ""
msgstr "Preguntar"
#: data/ui/window.blp:97
#: data/ui/window.blp:117
msgid "Wait"
msgstr ""
msgstr "Espera"
#: data/ui/window.blp:112
#: data/ui/window.blp:132
msgid "Response"
msgstr ""
msgstr "Respuesta"
#: data/ui/window.blp:182
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Hablar"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Hablando"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr ""
msgstr "Atajos de Teclado"
#: data/ui/window.blp:187
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr "Sobre Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Agradecimientos especiales a"
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr ""
"No se ha ingresado una API Key valida, puede ingresar una en Configuraciones"
#: src/provider/base.py:38
msgid "Open settings"
msgstr "Abrir configuraciones"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr "Charla GPT"
#~ msgid "Ready"
#~ msgstr "Leer"

147
po/fi.po Normal file
View File

@@ -0,0 +1,147 @@
# Bavarder POT file
# Copyright (C) 2023 Bavarder
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
#
# artnay <jiri.gronroos@iki.fi>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-04 20:52+0000\n"
"Last-Translator: artnay <jiri.gronroos@iki.fi>\n"
"Language-Team: Finnish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/fi/>\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with an AI"
msgstr "Keskustele tekoälyn kanssa"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
msgid "Screenshot of Main UI"
msgstr "Kuvakaappaus käyttöliittymästä"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Yleiset"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Näytä pikanäppäimet"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Kysy"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Quit"
msgstr "Lopeta"
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Asetukset"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr "Kehote"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr "Tyhjennä kehote lähetyksen jälkeen"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr "Kehote tyhjennetään lähetyksen jälkeen"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr "Palveluntarjoajat"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr "Päävalikko"
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "Ei verkkoyhteyttä"
#: data/ui/window.blp:51
msgid "Message"
msgstr "Viesti"
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Kopioi leikepöydälle"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Kuuntele"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Kuunnellaan"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Kysy"
#: data/ui/window.blp:117
msgid "Wait"
msgstr "Odota"
#: data/ui/window.blp:132
msgid "Response"
msgstr "Vastaus"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Puhu"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Puhutaan"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Pikanäppäimet"
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr "Tietoja - Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Erityiskiitokset"
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr "API-avainta ei asetettu, aseta avain asetuksissa"
#: src/provider/base.py:38
msgid "Open settings"
msgstr "Avaa asetukset"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr "Cat GPT"

View File

@@ -4,13 +4,16 @@
# Bavarder, 2023.
#
# 0xMRTT <0xmrtt@tuta.io>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
# muznyo <codeberg.vqtek@simplelogin.com>, 2023.
# rene-coty <irenee.thirion@e.email>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-27 22:07+0200\n"
"PO-Revision-Date: 2023-04-27 17:37+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@tuta.io>\n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 18:22+0000\n"
"Last-Translator: rene-coty <irenee.thirion@e.email>\n"
"Language-Team: French <https://translate.codeberg.org/projects/bavarder/"
"bavarder/fr/>\n"
"Language: fr\n"
@@ -27,7 +30,7 @@ msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with GPT"
msgid "Chit-chat with an AI"
msgstr "Bavarder avec GPT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
@@ -36,7 +39,7 @@ msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
msgid "Screenshot of Main UI"
msgstr "Capture d'écran de l'interface utilisateur principale"
msgstr "Capture décran de linterface principale"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
@@ -46,69 +49,106 @@ msgstr "Général"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Afficher les Raccourcis"
msgstr "Afficher les raccourcis"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Demandez"
msgstr "Demander"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Quit"
msgstr "Quitter"
#: data/ui/preferences.blp:5 data/ui/window.blp:177
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Préférences"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr "Invite"
msgstr "Requête"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr "Effacer l'invite après l'envoi"
msgstr "Effacer la requête après envoi"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr "L'invite sera effacée après l'envoi"
msgstr "La requête sera effacée après envoi"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr "Fournisseurs"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr "Menu Principal"
#: data/ui/window.blp:33
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "Pas de connexion réseau"
#: data/ui/window.blp:48
#: data/ui/window.blp:51
msgid "Message"
msgstr "Message"
#: data/ui/window.blp:81 data/ui/window.blp:160
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Copier dans le presse papier"
msgstr "Copier dans le presse-papiers"
#: data/ui/window.blp:88
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Écouter"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "En écoute"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Demandez"
msgstr "Demander"
#: data/ui/window.blp:97
#: data/ui/window.blp:117
msgid "Wait"
msgstr "Attendez"
#: data/ui/window.blp:112
#: data/ui/window.blp:132
msgid "Response"
msgstr "Réponse"
#: data/ui/window.blp:182
msgid "Keyboard Shortcuts"
msgstr "Raccourcis Clavier"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Parler"
#: data/ui/window.blp:187
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "En train de parler"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Raccourcis clavier"
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr "A propos de Bavarder"
msgstr "À propos de Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Remerciements spéciaux à"
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr ""
"Pas de clé dAPI fournie, vous pouvez en ajouter une dans les paramètres"
#: src/provider/base.py:38
msgid "Open settings"
msgstr "Ouvrir les paramètres"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr "Chat GPT"
#~ msgid "Ready"
#~ msgstr "Prêt"

148
po/hu.po Normal file
View File

@@ -0,0 +1,148 @@
# Bavarder POT file
# Copyright (C) 2023 Bavarder
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
#
# osiixy <osiixy@gmail.com>, 2023.
# 0xMRTT <0xmrtt@proton.me>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 19:17+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@proton.me>\n"
"Language-Team: Hungarian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/hu/>\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with an AI"
msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
msgid "0xMRTT"
msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
msgid "Screenshot of Main UI"
msgstr ""
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Általános"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr ""
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr ""
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Quit"
msgstr "Kilépés"
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Beállítások"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr ""
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr ""
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr ""
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr ""
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr ""
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "Nincs hálózati kapcsolat"
#: data/ui/window.blp:51
msgid "Message"
msgstr "Üzenet"
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Másolás a vágólapra"
#: data/ui/window.blp:89
msgid "Listen"
msgstr ""
#: data/ui/window.blp:96
msgid "Listening"
msgstr ""
#: data/ui/window.blp:108
msgid "Ask"
msgstr ""
#: data/ui/window.blp:117
msgid "Wait"
msgstr ""
#: data/ui/window.blp:132
msgid "Response"
msgstr ""
#: data/ui/window.blp:179
msgid "Speak"
msgstr ""
#: data/ui/window.blp:186
msgid "Speaking"
msgstr ""
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr ""
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr ""
#: src/main.py:156
msgid "Special thanks to"
msgstr ""
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr ""
#: src/provider/base.py:38
msgid "Open settings"
msgstr ""
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr ""

View File

@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-27 22:07+0200\n"
"PO-Revision-Date: 2023-04-27 17:37+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@tuta.io>\n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-01 08:57+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Italian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/it/>\n"
"Language: it\n"
@@ -27,7 +27,7 @@ msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with GPT"
msgid "Chit-chat with an AI"
msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
@@ -58,7 +58,7 @@ msgctxt "shortcut window"
msgid "Quit"
msgstr "Esci"
#: data/ui/preferences.blp:5 data/ui/window.blp:177
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Preferenze"
@@ -74,42 +74,78 @@ msgstr ""
msgid "The prompt will be cleared after send"
msgstr ""
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr ""
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr ""
#: data/ui/window.blp:33
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "Nessuna connessione di rete"
#: data/ui/window.blp:48
#: data/ui/window.blp:51
msgid "Message"
msgstr "Messaggio"
#: data/ui/window.blp:81 data/ui/window.blp:160
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Copia negli appunti"
#: data/ui/window.blp:88
#: data/ui/window.blp:89
msgid "Listen"
msgstr ""
#: data/ui/window.blp:96
msgid "Listening"
msgstr ""
#: data/ui/window.blp:108
msgid "Ask"
msgstr ""
#: data/ui/window.blp:97
#: data/ui/window.blp:117
msgid "Wait"
msgstr ""
#: data/ui/window.blp:112
#: data/ui/window.blp:132
msgid "Response"
msgstr ""
#: data/ui/window.blp:182
#: data/ui/window.blp:179
msgid "Speak"
msgstr ""
#: data/ui/window.blp:186
msgid "Speaking"
msgstr ""
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr ""
#: data/ui/window.blp:187
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr ""
#: src/main.py:156
msgid "Special thanks to"
msgstr ""
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr ""
#: src/provider/base.py:38
msgid "Open settings"
msgstr "Apri impostazioni"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr ""
#~ msgid "Ready"
#~ msgstr "Pronto"

148
po/pt.po Normal file
View File

@@ -0,0 +1,148 @@
# Bavarder POT file
# Copyright (C) 2023 Bavarder
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
#
# galegovski <galegovski@outlook.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 13:42+0000\n"
"Last-Translator: galegovski <galegovski@outlook.com>\n"
"Language-Team: Portuguese <https://translate.codeberg.org/projects/bavarder/"
"bavarder/pt/>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with an AI"
msgstr "Bate-papo com uma IA"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
msgid "Screenshot of Main UI"
msgstr "Captura da tela principal"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Geral"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Mostrar Atalhos"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Perguntar"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Quit"
msgstr "Sair"
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Preferências"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr "Prompt"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr "Limpar prompt após enviar"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr "O prompt será limpo após o envio"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr "Provedores"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr "Menu principal"
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "Nenhuma conexão de rede"
#: data/ui/window.blp:51
msgid "Message"
msgstr "Mensagem"
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Copiar para área de transferência"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Ouvir"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Audição"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Perguntar"
#: data/ui/window.blp:117
msgid "Wait"
msgstr "Espere"
#: data/ui/window.blp:132
msgid "Response"
msgstr "Resposta"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Falar"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Falando"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Atalhos do teclado"
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr "Sobre Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Agradecimentos especiais para"
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr ""
"Nenhuma chave de API fornecida, você pode fornecer uma nas configurações"
#: src/provider/base.py:38
msgid "Open settings"
msgstr "Abrir configurações"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr "Cat GPT"

View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-27 22:07+0200\n"
"PO-Revision-Date: 2023-04-27 17:37+0000\n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-01 08:57+0000\n"
"Last-Translator: Daudix_UFO <ddaudix@gmail.com>\n"
"Language-Team: Russian <https://translate.codeberg.org/projects/bavarder/"
"bavarder/ru/>\n"
@@ -18,8 +18,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
@@ -29,7 +29,7 @@ msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with GPT"
msgid "Chit-chat with an AI"
msgstr "Болтайте с GPT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
@@ -60,7 +60,7 @@ msgctxt "shortcut window"
msgid "Quit"
msgstr "Выйти"
#: data/ui/preferences.blp:5 data/ui/window.blp:177
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Параметры"
@@ -76,42 +76,78 @@ msgstr "Очищать поле ввода после отправки"
msgid "The prompt will be cleared after send"
msgstr "Поле ввода будет очищено после отправки"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr "Провайдеры"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr "Главное меню"
#: data/ui/window.blp:33
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "Нет подключения к сети"
#: data/ui/window.blp:48
#: data/ui/window.blp:51
msgid "Message"
msgstr "Сообщение"
#: data/ui/window.blp:81 data/ui/window.blp:160
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Скопировать в буфер обмена"
#: data/ui/window.blp:88
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Прослушать"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Прослушивание"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Спросить"
#: data/ui/window.blp:97
#: data/ui/window.blp:117
msgid "Wait"
msgstr "Ждите"
#: data/ui/window.blp:112
#: data/ui/window.blp:132
msgid "Response"
msgstr "Ответ"
#: data/ui/window.blp:182
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Произнести"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Произношение"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Комбинации клавиш"
#: data/ui/window.blp:187
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr "О Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Особое спасибо"
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr "Ключ API не предоставлен, вы можете предоставить его в настройках"
#: src/provider/base.py:38
msgid "Open settings"
msgstr "Открыть настройки"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr "Cat GPT"
#~ msgid "Ready"
#~ msgstr "Готов"

View File

@@ -4,13 +4,14 @@
# Bavarder, 2023.
#
# 0xMRTT <0xmrtt@tuta.io>, 2023.
# Morgan Antonsson <morgan.antonsson@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-27 22:07+0200\n"
"PO-Revision-Date: 2023-04-27 17:37+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@tuta.io>\n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-03 18:22+0000\n"
"Last-Translator: Morgan Antonsson <morgan.antonsson@gmail.com>\n"
"Language-Team: Swedish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/sv/>\n"
"Language: sv\n"
@@ -23,20 +24,20 @@ msgstr ""
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
msgid "Bavarder"
msgstr ""
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with GPT"
msgstr ""
msgid "Chit-chat with an AI"
msgstr "Chatta med en AI"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
msgid "0xMRTT"
msgstr ""
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
msgid "Screenshot of Main UI"
msgstr ""
msgstr "Skärmdump av huvudgränssnittet"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
@@ -46,69 +47,105 @@ msgstr "Generellt"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr ""
msgstr "Visa genvägar"
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr ""
msgstr "Fråga"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Quit"
msgstr "Sluta"
msgstr "Avsluta"
#: data/ui/preferences.blp:5 data/ui/window.blp:177
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Inställningar"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr ""
msgstr "Prompt"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr ""
msgstr "Töm prompt efter den har skickats"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr ""
msgstr "Prompten kommer att rensas efter att den har skickats"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr "Leverantörer"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr ""
msgstr "Huvudmeny"
#: data/ui/window.blp:33
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "Ingen kontakt med nätverket"
#: data/ui/window.blp:48
#: data/ui/window.blp:51
msgid "Message"
msgstr "Meddelande"
#: data/ui/window.blp:81 data/ui/window.blp:160
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Kopiera till urklipp"
#: data/ui/window.blp:88
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Lyssna"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Lyssnar"
#: data/ui/window.blp:108
msgid "Ask"
msgstr ""
msgstr "Fråga"
#: data/ui/window.blp:97
#: data/ui/window.blp:117
msgid "Wait"
msgstr ""
msgstr "Vänta"
#: data/ui/window.blp:112
#: data/ui/window.blp:132
msgid "Response"
msgstr ""
msgstr "Svar"
#: data/ui/window.blp:182
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Tala"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Talar"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr ""
msgstr "Tangentbordsgenvägar"
#: data/ui/window.blp:187
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr ""
msgstr "Om Bavarder"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Särskilt tack till"
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr "Ingen API-nyckel har angetts, du kan ange en i inställningarna"
#: src/provider/base.py:38
msgid "Open settings"
msgstr "Öppna inställningar"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr "Cat GPT"
#~ msgid "Ready"
#~ msgstr "läst"

147
po/tr.po Normal file
View File

@@ -0,0 +1,147 @@
# Bavarder POT file
# Copyright (C) 2023 Bavarder
# This file is distributed under the GNU GPLv3 license.
# Bavarder, 2023.
#
# keyiflerolsun <keyiflerolsun@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-05-04 20:56+0000\n"
"Last-Translator: keyiflerolsun <keyiflerolsun@gmail.com>\n"
"Language-Team: Turkish <https://translate.codeberg.org/projects/bavarder/"
"bavarder/tr/>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#: data/io.github.Bavarder.Bavarder.desktop.in:3
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:6 data/ui/window.blp:6
msgid "Bavarder"
msgstr "Bavarder"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with an AI"
msgstr "Chit AI ile sohbet edin"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
msgid "0xMRTT"
msgstr "0xMRTT"
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:15
msgid "Screenshot of Main UI"
msgstr "Ana Kullanıcı Arayüzü'nün ekran görüntüsü"
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgid "General"
msgstr "Genel"
#: data/ui/help-overlay.ui:14
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgstr "Kısayolları Göster\""
#: data/ui/help-overlay.ui:20
msgctxt "shortcut window"
msgid "Ask"
msgstr "Sor"
#: data/ui/help-overlay.ui:26
msgctxt "shortcut window"
msgid "Quit"
msgstr "Çıkış"
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Tercihler"
#: data/ui/preferences.blp:12
msgid "Prompt"
msgstr "Girdi"
#: data/ui/preferences.blp:15
msgid "Clear prompt after send"
msgstr "Gönderdikten sonra giriş alanını temizle"
#: data/ui/preferences.blp:16
msgid "The prompt will be cleared after send"
msgstr "Gönderimden sonra giriş alanı temizlenecek"
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr "Sağlayıcılar"
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr "Ana Menü"
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "Ağ bağlantısı yok"
#: data/ui/window.blp:51
msgid "Message"
msgstr "Mesaj"
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Panoya kopyala"
#: data/ui/window.blp:89
msgid "Listen"
msgstr "Dinle"
#: data/ui/window.blp:96
msgid "Listening"
msgstr "Dinleniyor"
#: data/ui/window.blp:108
msgid "Ask"
msgstr "Sor"
#: data/ui/window.blp:117
msgid "Wait"
msgstr "Bekle"
#: data/ui/window.blp:132
msgid "Response"
msgstr "Yanıt"
#: data/ui/window.blp:179
msgid "Speak"
msgstr "Konuş"
#: data/ui/window.blp:186
msgid "Speaking"
msgstr "Konuşuyor"
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr "Klavye kısayolları"
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr "Bavarder Hakkında"
#: src/main.py:156
msgid "Special thanks to"
msgstr "Özel teşekkürler"
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr "API anahtarı sağlanmadı, ayarlarda bir tane sağlayabilirsiniz"
#: src/provider/base.py:38
msgid "Open settings"
msgstr "Ayarları aç"
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr "Cat GPT"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-27 22:07+0200\n"
"POT-Creation-Date: 2023-05-01 01:51+0200\n"
"PO-Revision-Date: 2023-04-27 17:37+0000\n"
"Last-Translator: 0xMRTT <0xmrtt@tuta.io>\n"
"Language-Team: Ukrainian <https://translate.codeberg.org/projects/bavarder/"
@@ -28,7 +28,7 @@ msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:7
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:11
msgid "Chit-chat with GPT"
msgid "Chit-chat with an AI"
msgstr ""
#: data/io.github.Bavarder.Bavarder.appdata.xml.in:8
@@ -59,7 +59,7 @@ msgctxt "shortcut window"
msgid "Quit"
msgstr "Вийти"
#: data/ui/preferences.blp:5 data/ui/window.blp:177
#: data/ui/preferences.blp:5 data/ui/window.blp:215
msgid "Preferences"
msgstr "Опції"
@@ -75,42 +75,78 @@ msgstr ""
msgid "The prompt will be cleared after send"
msgstr ""
#: data/ui/preferences.blp:25
msgid "Providers"
msgstr ""
#: data/ui/window.blp:27
msgid "Main Menu"
msgstr ""
#: data/ui/window.blp:33
#: data/ui/window.blp:36 src/provider/base.py:43
msgid "No network connection"
msgstr "Відсутнє з'єднання з мережею"
#: data/ui/window.blp:48
#: data/ui/window.blp:51
msgid "Message"
msgstr "Повідомлення"
#: data/ui/window.blp:81 data/ui/window.blp:160
#: data/ui/window.blp:84 data/ui/window.blp:198
msgid "Copy to Clipboard"
msgstr "Копіювати"
#: data/ui/window.blp:88
#: data/ui/window.blp:89
msgid "Listen"
msgstr ""
#: data/ui/window.blp:96
msgid "Listening"
msgstr ""
#: data/ui/window.blp:108
msgid "Ask"
msgstr ""
#: data/ui/window.blp:97
#: data/ui/window.blp:117
msgid "Wait"
msgstr ""
#: data/ui/window.blp:112
#: data/ui/window.blp:132
msgid "Response"
msgstr ""
#: data/ui/window.blp:182
#: data/ui/window.blp:179
msgid "Speak"
msgstr ""
#: data/ui/window.blp:186
msgid "Speaking"
msgstr ""
#: data/ui/window.blp:220
msgid "Keyboard Shortcuts"
msgstr ""
#: data/ui/window.blp:187
#: data/ui/window.blp:225
msgid "About Bavarder"
msgstr ""
#: src/main.py:156
msgid "Special thanks to"
msgstr ""
#: src/provider/base.py:36
msgid "No API key provided, you can provide one in settings"
msgstr ""
#: src/provider/base.py:38
msgid "Open settings"
msgstr ""
#: src/provider/catgpt.py:7 src/provider/catgpt.py:54
msgid "Cat GPT"
msgstr ""
#~ msgid "Ready"
#~ msgstr "Готово"

View File

@@ -2,4 +2,8 @@
# chmod +x flatpak-pip-generator
# ./flatpak-pip-generator --requirements-file=requirements.txt --output pypi-dependencies
baichat-py
baichat-py
hgchat
gTTS
openai
googlebardpy

View File

@@ -21,20 +21,23 @@ import sys
import gi
import sys
import threading
import socket
import json
gi.require_version("Gtk", "4.0")
gi.require_version("Adw", "1")
gi.require_version("Gdk", "4.0")
gi.require_version("Gst", "1.0")
from gi.repository import Gtk, Gio, Adw, Gdk, GLib
from gi.repository import Gtk, Gio, Adw, Gdk, GLib, Gst
from .window import BavarderWindow
from .preferences import Preferences
from .constants import app_id, version
from baichat_py import BAIChat
from gtts import gTTS
from tempfile import NamedTemporaryFile
from .provider import PROVIDERS
class BavarderApplication(Adw.Application):
"""The main application singleton class."""
@@ -44,17 +47,58 @@ class BavarderApplication(Adw.Application):
application_id="io.github.Bavarder.Bavarder",
flags=Gio.ApplicationFlags.DEFAULT_FLAGS,
)
self.create_action("quit", lambda *_: self.quit(), ["<primary>q"])
self.create_action("quit", self.on_quit, ["<primary>q"])
self.create_action("about", self.on_about_action)
self.create_action("preferences", self.on_preferences_action)
self.create_action("copy_prompt", self.on_copy_prompt_action)
self.create_action("copy_bot", self.on_copy_bot_action)
self.create_action("ask", self.on_ask_action, ["<primary>Return"])
# self.create_action("speak", self.on_speak_action, ["<primary>S"])
# self.create_action("listen", self.on_listen_action, ["<primary>L"])
self.settings = Gio.Settings(schema_id="io.github.Bavarder.Bavarder")
self.clear_after_send = self.settings.get_boolean("clear-after-send")
self.enabled_providers = sorted(set(self.settings.get_strv("enabled-providers")))
self.latest_provider = self.settings.get_string("latest-provider")
# GStreamer playbin object and related setup
# Gst.init(None)
# self.player = Gst.ElementFactory.make("playbin", "player")
# self.pipeline = Gst.Pipeline()
# bus = self.player.get_bus()
# bus.add_signal_watch()
# bus.connect('message', self.on_gst_message)
# self.player_event = (
# threading.Event()
# ) # An event for letting us know when Gst is done playing
def on_quit(self, action, param):
"""Called when the user activates the Quit action."""
self.settings.set_strv("enabled-providers", list(self.enabled_providers))
self.settings.set_string("latest-provider", self.get_provider().slug)
print("Saving providers data...")
self.save_providers()
self.quit()
def save_providers(self):
r = {}
for k, p in self.providers.items():
r[str(k)] = json.dumps(p.save())
print(r)
data = GLib.Variant(
"a{ss}",
r
)
self.settings.set_value("providers-data", data)
def get_provider(self):
print(self.providers)
return self.providers[self.win.provider_selector.props.selected]
def do_activate(self):
"""Called when the application is activated.
@@ -68,6 +112,45 @@ class BavarderApplication(Adw.Application):
self.win.response_stack.set_visible_child_name("page_response")
self.provider_selector_model = Gtk.StringList()
self.providers = {}
self.providers_data = self.settings.get_value("providers-data")
print(self.providers_data)
print(self.enabled_providers)
for provider, i in zip(
self.enabled_providers, range(len(self.enabled_providers))
):
try:
print("Loading provider", provider)
self.provider_selector_model.append(PROVIDERS[provider].name)
self.providers[i] = PROVIDERS[provider](
self.win, self, self.providers_data[i]
)
except KeyError:
print("Provider", provider, " -> KeyError, skipping...")
self.providers[i] = PROVIDERS[provider](
self.win, self, None
)
self.win.provider_selector.set_model(self.provider_selector_model)
self.win.provider_selector.connect("notify", self.on_provider_selector_notify)
print(self.latest_provider)
for k, p in self.providers.items():
if p.slug == self.latest_provider:
print("Setting selected provider to", k)
self.win.provider_selector.set_selected(k)
break
self.win.prompt_text_view.grab_focus()
def on_provider_selector_notify(self, _unused, pspec):
self.win.banner.set_revealed(False)
def on_about_action(self, widget, _):
"""Callback for the app.about action."""
about = Adw.AboutWindow(
@@ -78,6 +161,16 @@ class BavarderApplication(Adw.Application):
developers=["0xMRTT https://github.com/0xMRTT"],
designers=["David Lapshin https://github.com/daudix-UFO"],
documenters=[],
translator_credits="""0xMRTT <0xmrtt@proton.me>
David Lapshin <ddaudix@gmail.com>
Morgan Antonsson <morgan.antonsson@gmail.com>
thepoladov13 <thepoladov@protonmail.com>
Muznyo <codeberg.vqtek@simplelogin.com>
Deimidis <gmovia@pm.me>
sjdonado <jsrd98@gmail.com>
artnay <jiri.gronroos@iki.fi>
Rene Coty <irenee.thirion@e.email>
galegovski <galegovski@outlook.com>""",
license_type=Gtk.License.GPL_3_0,
version=version,
copyright="© 2023 0xMRTT",
@@ -87,15 +180,12 @@ class BavarderApplication(Adw.Application):
"Special thanks to",
[
"Telegraph https://apps.gnome.org/app/io.github.fkinoshita.Telegraph",
"BAIChat https://chatbot.theb.ai/",
],
)
about.present()
def on_preferences_action(self, widget, _):
def on_preferences_action(self, widget, *args, **kwargs):
"""Callback for the app.preferences action."""
print("app.preferences action activated")
preferences = Preferences(
application=self, transient_for=self.props.active_window
)
@@ -138,19 +228,10 @@ class BavarderApplication(Adw.Application):
self.win.toast_overlay.add_toast(toast)
def ask(self, prompt):
chat = BAIChat(sync=True)
try:
response = chat.sync_ask(self.prompt)
except KeyError:
self.win.banner.set_revealed(False)
return ""
except socket.gaierror:
#self.win.response_stack.set_visible_child_name("page_offline")
self.win.banner.set_revealed(True)
return ""
else:
self.win.banner.set_revealed(False)
return response.text
return self.providers[self.provider].ask(prompt)
def update_response(self, response):
self.win.bot_text_view.get_buffer().set_text(response)
def on_ask_action(self, widget, _):
"""Callback for the app.ask action."""
@@ -160,8 +241,9 @@ class BavarderApplication(Adw.Application):
self.win.wait_button.set_visible(True)
self.prompt = self.win.prompt_text_view.get_buffer().props.text
self.provider = self.win.provider_selector.props.selected
def thread_run():
# call heavy here
response = self.ask(self.prompt)
GLib.idle_add(cleanup, response)
@@ -171,13 +253,38 @@ class BavarderApplication(Adw.Application):
self.win.wait_button.set_visible(False)
t.join()
self.win.bot_text_view.get_buffer().set_text(response)
if self.clear_after_send:
self.win.prompt_text_view.get_buffer().set_text("")
t = threading.Thread(target=thread_run)
t.start()
# def on_speak_action(self, widget, _):
# """Callback for the app.speak action."""
# print("app.speak action activated")
#
# try:
#
# with NamedTemporaryFile() as file_to_play:
#
# tts = gTTS(self.win.bot_text_view.get_buffer().props.text)
# tts.write_to_fp(file_to_play)
# file_to_play.seek(0)
# self._play_audio(file_to_play.name)
# except Exception as exc:
# print(exc)
#
# def _play_audio(self, path):
# uri = "file://" + path
# self.player.set_property("uri", uri)
# self.pipeline.add(self.player)
# self.pipeline.set_state(Gst.State.PLAYING)
# self.player.set_state(Gst.State.PLAYING)
#
# def on_listen_action(self, widget, _):
# """Callback for the app.listen action."""
# print("app.listen action activated")
def create_action(self, name, callback, shortcuts=None):
"""Add an application action.

View File

@@ -16,16 +16,7 @@ configure_file(
configure_file(
input: 'constants.py.in',
output: 'constants.py',
configuration: configuration_data({
'APP_ID': APPLICATION_ID,
'RELEASE_VER': meson.project_version(),
'VERSION': meson.project_version() + VERSION_SUFFIX,
'BUILD_TYPE': get_option('buildtype'),
'PROJECT_URL': PROJECT_URL,
'DATA_DIR': conf.get('DATA_DIR'),
'PKGDATA_DIR': PKGDATA_DIR,
'LOCALE_DIR': conf.get('LOCALE_DIR'),
}),
configuration: conf,
install: true,
install_dir: moduledir
)
@@ -38,3 +29,5 @@ bavarder_sources = [
]
PY_INSTALLDIR.install_sources(bavarder_sources, subdir: moduledir)
subdir('provider')

View File

@@ -6,6 +6,7 @@ class Preferences(Adw.PreferencesWindow):
__gtype_name__ = "Preferences"
clear_after_send_switch = Gtk.Template.Child()
provider_group = Gtk.Template.Child()
def __init__(self, application, **kwargs):
super().__init__(**kwargs)
@@ -19,6 +20,8 @@ class Preferences(Adw.PreferencesWindow):
"state-set", self.on_clear_after_send_switch_toggled
)
self.setup_providers()
def on_clear_after_send_switch_toggled(self, *args):
"""Callback for the clear_after_send_switch toggled event."""
state = self.clear_after_send_switch.props.state
@@ -27,3 +30,10 @@ class Preferences(Adw.PreferencesWindow):
self.settings.set_boolean("clear-after-send", True)
else:
self.settings.set_boolean("clear-after-send", False)
def setup_providers(self):
for provider in self.app.providers.values():
try:
self.provider_group.add(provider.preferences(self))
except TypeError: # no prefs
pass

29
src/provider/__init__.py Normal file
View File

@@ -0,0 +1,29 @@
from .huggingchat import HuggingChatProvider
from .baichat import BAIChatProvider
from .openaigpt35turbo import OpenAIGPT35TurboProvider
from .openaigpt4 import OpenAIGPT4Provider
from .catgpt import CatGPTProvider
from .openaitextdavinci003 import OpenAITextDavinci003
from .alpacalora import AlpacaLoRAProvider
from .hfgoogleflant5xxl import HuggingFaceGoogleFlanT5XXLProvider
from .hfgoogleflanu12 import HuggingFaceGoogleFlanU12Provider
from .hfopenassistantsft1pythia12b import HuggingFaceOpenAssistantSFT1PythiaProvider
from .hfgpt2 import HuggingFaceGPT2Provider
from .hfdialogpt import HuggingFaceDialoGPTLargeProvider
from .bard import BardProvider
PROVIDERS = {
"alpacalora": AlpacaLoRAProvider,
"baichat": BAIChatProvider,
"bard": BardProvider,
"catgpt": CatGPTProvider,
"hfdialogpt": HuggingFaceDialoGPTLargeProvider,
"hfgoogleflant5xxl": HuggingFaceGoogleFlanT5XXLProvider,
"hfgoogleflanu12": HuggingFaceGoogleFlanU12Provider,
"hfgpt2": HuggingFaceGPT2Provider,
"hfopenassistantsft1pythia12b": HuggingFaceOpenAssistantSFT1PythiaProvider,
"huggingchat": HuggingChatProvider,
"openaigpt35turbo": OpenAIGPT35TurboProvider,
"openaigpt4": OpenAIGPT4Provider,
"openaitextdavinci003": OpenAITextDavinci003,
}

View File

@@ -0,0 +1,63 @@
from .base import BavarderProvider
import socket
import requests
from gi.repository import Gtk, Adw
class AlpacaLoRAProvider(BavarderProvider):
name = "Alpaca-LoRA"
slug = "alpacalora"
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
def ask(self, prompt):
try:
response = requests.post(
"https://tloen-alpaca-lora.hf.space/run/predict",
json={
"data": [
prompt,
prompt,
0.1,
0.75,
40,
4,
128,
]
},
).json()
except socket.gaierror:
self.no_connection()
return ""
else:
self.win.banner.set_revealed(False)
r = response["data"][0]
self.update_response(r)
return r
@property
def require_api_key(self):
return False
def preferences(self):
self.no_preferences()
def about(self):
about = Adw.AboutWindow(
transient_for=self.props.active_window,
application_name="Alpaca-LoRA",
developer_name="Stanford Alpaca",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=version,
copyright="© 2023 0xMRTT",
)
def save(self):
return {}
def load(self, data):
pass

51
src/provider/baichat.py Normal file
View File

@@ -0,0 +1,51 @@
from .base import BavarderProvider
from baichat_py import BAIChat
import socket
class BAIChatProvider(BavarderProvider):
name = "BAI Chat"
slug = "baichat"
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.chat = BAIChat(sync=True)
def ask(self, prompt):
try:
response = self.chat.sync_ask(prompt)
except KeyError:
self.win.banner.set_revealed(False)
return ""
except socket.gaierror:
self.no_connection()
return ""
else:
self.win.banner.set_revealed(False)
self.update_response(response.text)
return response.text
@property
def require_api_key(self):
return False
def preferences(self):
self.no_preferences()
def about(self):
about = Adw.AboutWindow(
transient_for=self.props.active_window,
application_name="BAI Chat",
developer_name="Theb.ai",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=version,
copyright="© 2023 0xMRTT",
)
def save(self):
return {}
def load(self, data):
pass

85
src/provider/bard.py Normal file
View File

@@ -0,0 +1,85 @@
from .base import BavarderProvider
import socket
from googlebardpy import BardChat
from gi.repository import Gtk, Adw
class BardProvider(BavarderProvider):
name = "Bard"
slug = "bard"
version = "0.1.0"
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.pref_win = None
def ask(self, prompt):
try:
response = self.chat.ask(prompt)
response = response["content"]
except AttributeError:
self.no_api_key()
return ""
except socket.gaierror:
self.no_connection()
return ""
else:
self.hide_banner()
self.update_response(response)
return response
@property
def require_api_key(self):
return True
def preferences(self, win):
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.api_row = Adw.PasswordEntryRow()
self.api_row.connect("apply", self.on_apply)
self.api_row.props.title = "__Secure-1PSID cookie"
self.api_row.set_show_apply_button(True)
self.expander.add_row(self.api_row)
return self.expander
def on_apply(self, widget):
self.hide_banner()
api_key = self.api_row.get_text()
print(api_key)
self.api_key = api_key
self.chat = BardChat(api_key)
def about(self, *args):
about = Adw.AboutWindow(
transient_for=self.pref_win,
application_name="Bard",
developer_name="Google",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=self.version,
copyright="© 2023 0xMRTT",
)
about.present()
def save(self):
try:
return {"api_key": self.api_key}
except AttributeError: # no api key
return {}
def load(self, data):
self.chat = BardChat(api_key)
self.api_key = api_key

79
src/provider/base.py Normal file
View File

@@ -0,0 +1,79 @@
from gettext import gettext as _
from gi.repository import Gtk, Adw
import json
class BavarderProvider:
name = None
slug = None
def __init__(self, win, app, data, *args, **kwargs):
self.win = win
self.banner = win.banner
self.bot_text_view = win.bot_text_view
self.app = app
self.chat = None
self.data = data
self.update_response = app.update_response
if self.data:
self.load(json.loads(self.data))
self.no_data = False
else:
self.no_data = True
def ask(self, prompt):
raise NotImplementedError()
@property
def require_api_key(self):
raise NotImplementedError()
def preferences(self):
raise NotImplementedError()
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)
def about(self, *args):
raise NotImplementedError()
def no_preferences(self, win):
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):
raise NotImplementedError()
def load(self, data):
raise NotImplementedError()

69
src/provider/catgpt.py Normal file
View File

@@ -0,0 +1,69 @@
from .base import BavarderProvider
from random import choice, randint
from gi.repository import Gtk, Adw
class CatGPTProvider(BavarderProvider):
name = _("Cat GPT")
slug = "catgpt"
version = "0.1.0"
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.chat = None
def ask(self, prompt):
return " ".join([self.pick_generator()() for i in range(randint(1, 12))])
def pick_generator(self):
if randint(1, 15) == 1:
return choice(
[
lambda: "ня" * randint(1, 4),
lambda: "ニャン" * randint(1, 4),
lambda: "" * randint(1, 4),
lambda: "ña" * randint(1, 4),
lambda: "ڽا" * randint(1, 4),
lambda: "ম্যাও" * randint(1, 4),
]
)
return choice(
[
lambda: "meow" * randint(1, 3),
lambda: "mew" * randint(1, 3),
lambda: "miau" * randint(1, 3),
lambda: "miaou" * randint(1, 3),
lambda: "miao" * randint(1, 3),
lambda: "nya" * randint(1, 3),
lambda: "m" + "r" * randint(1, 6) + "p",
lambda: "pur" + "r" * randint(1, 6),
lambda: "nya" * randint(1, 3) + "ny" + "a" * randint(1, 10),
]
)
@property
def require_api_key(self):
return False
def preferences(self, win):
return self.no_preferences(win)
def about(self, *args):
about = Adw.AboutWindow(
transient_for=self.pref_win,
application_name=_("Cat GPT"),
developer_name="0xMRTT",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=self.version,
copyright="© 2023 0xMRTT",
)
about.present()
def save(self):
return {}
def load(self, data):
pass

View File

@@ -0,0 +1,45 @@
from .huggingface import BaseHFProvider
import json
import socket
import requests
class HuggingFaceDialoGPTLargeProvider(BaseHFProvider):
name = "DialoGPT"
slug = "dialogpt"
model = "microsoft/DialoGPT-large"
authorization = False
def ask(self, prompt):
try:
payload = json.dumps(
{
"inputs": {
# "past_user_inputs": ["Which movie is the best ?"],
# "generated_responses": ["It's Die Hard for sure."],
"text": prompt
},
}
)
headers = {"Content-Type": "application/json"}
if self.authorization:
headers["Authorization"] = f"Bearer {self.api_key}"
url = f"https://api-inference.huggingface.co/models/{self.model}"
print(url)
response = requests.request("POST", url, headers=headers, data=payload)
print(response.json())
response = response.json()["generated_text"]
# except NoApikey:
# self.no_api_key()
# return ""
except KeyError:
pass
except socket.gaierror:
self.no_connection()
return ""
else:
self.hide_banner()
print(response)
self.update_response(response)
return response

View File

@@ -0,0 +1,8 @@
from .huggingface import BaseHFProvider
class HuggingFaceGoogleFlanT5XXLProvider(BaseHFProvider):
name = "Google Flan T5 XXL"
slug = "hfgoogleflant5xxl"
model = "google/flan-t5-xxl"
authorization = False

View File

@@ -0,0 +1,8 @@
from .huggingface import BaseHFProvider
class HuggingFaceGoogleFlanU12Provider(BaseHFProvider):
name = "Google Flan U12"
slug = "hfgoogleflanu12"
model = "google/flan-ul2"
authorization = False

8
src/provider/hfgpt2.py Normal file
View File

@@ -0,0 +1,8 @@
from .huggingface import BaseHFProvider
class HuggingFaceGPT2Provider(BaseHFProvider):
name = "GPT 2"
slug = "gpt2"
model = "gpt2"
authorization = False

View File

@@ -0,0 +1,8 @@
from .huggingface import BaseHFProvider
class HuggingFaceOpenAssistantSFT1PythiaProvider(BaseHFProvider):
name = "Open-Assistant SFT-1 12B Model "
slug = "hfopenassistantsft1pythia12b"
model = "OpenAssistant/oasst-sft-1-pythia-12b"
authorization = False

View File

@@ -0,0 +1,58 @@
from .base import BavarderProvider
from hgchat import HGChat
import socket
from gi.repository import Gtk, Adw
class HuggingChatProvider(BavarderProvider):
name = "Hugging Chat"
slug = "huggingchat"
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.chat = HGChat()
def ask(self, prompt):
try:
response = self.chat.ask(prompt)
except socket.gaierror:
self.no_connection()
return ""
else:
self.win.banner.set_revealed(False)
r = ""
for i in response:
char = i["token"]["text"]
if char == "</s>":
r += "\n"
else:
r += char
self.update_response(r)
return r
@property
def require_api_key(self):
return False
def preferences(self):
self.no_preferences()
def about(self):
about = Adw.AboutWindow(
transient_for=self.props.active_window,
application_name="Hugging Chat",
developer_name="Hugging Face",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=version,
copyright="© 2023 0xMRTT",
)
def save(self):
return {}
def load(self, data):
pass

View File

@@ -0,0 +1,97 @@
import requests
import json
from .base import BavarderProvider
import socket
from gi.repository import Gtk, Adw
class BaseHFProvider(BavarderProvider):
name = None
slug = None
model = None
authorization = True
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.api_key = None
def ask(self, prompt):
try:
payload = json.dumps({"inputs": prompt})
headers = {"Content-Type": "application/json"}
if self.authorization:
headers["Authorization"] = f"Bearer {self.api_key}"
url = f"https://api-inference.huggingface.co/models/{self.model}"
print(url)
response = requests.request("POST", url, headers=headers, data=payload)
if response.status_code == 403:
self.no_api_key()
return ""
elif response.status_code != 200:
self.win.banner.props.title = response.json()["error"]
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
return ""
print(response)
response = response.json()[0]["generated_text"]
# except NoApikey:
# self.no_api_key()
# return ""
except KeyError:
pass
except socket.gaierror:
self.no_connection()
return ""
else:
self.hide_banner()
print(response)
self.update_response(response)
return response
@property
def require_api_key(self):
if self.authorization:
return True
return False
def preferences(self):
if self.authorization:
self.expander = Adw.ExpanderRow()
self.expander.props.title = self.name
self.api_row = Adw.PasswordEntryRow()
self.api_row.connect("apply", self.on_apply)
self.api_row.props.title = "API Key"
self.api_row.set_show_apply_button(True)
self.expander.add_row(self.api_row)
return self.expander
pass
def on_apply(self, widget):
self.hide_banner()
self.api_key = self.api_row.get_text()
print(self.api_key)
def about(self):
about = Adw.AboutWindow(
transient_for=self.props.active_window,
application_name=self.name,
developer_name="HuggingFace",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=version,
copyright="© 2023 0xMRTT",
)
def save(self):
if self.authorization:
return {"api_key": self.api_key}
return {}
def load(self, data):
if self.authorization:
self.api_key = data["api_key"]

24
src/provider/meson.build Normal file
View File

@@ -0,0 +1,24 @@
providers_dir = join_paths(moduledir, 'provider')
providers_sources = [
'__init__.py',
'alpacalora.py',
'baichat.py',
'bard.py',
'base.py',
'catgpt.py',
'hfdialogpt.py',
'hfgoogleflant5xxl.py',
'hfgoogleflanu12.py',
'hfgpt2.py',
'hfopenassistantsft1pythia12b.py',
'huggingchat.py',
'huggingface.py',
'openai.py',
'openaigpt4.py',
'openaigpt35turbo.py',
'openaitextdavinci003.py',
]
PY_INSTALLDIR.install_sources(providers_sources, subdir: providers_dir)

89
src/provider/openai.py Normal file
View File

@@ -0,0 +1,89 @@
from .base import BavarderProvider
import openai
import socket
from gi.repository import Gtk, Adw
class BaseOpenAIProvider(BavarderProvider):
name = None
slug = None
model = None
version = "0.1.0"
def __init__(self, win, app, *args, **kwargs):
super().__init__(win, app, *args, **kwargs)
self.chat = openai.ChatCompletion
self.pref_win = None
def ask(self, prompt):
try:
response = self.chat.create(
model=self.model, messages=[{"role": "user", "content": prompt}]
)
response = response.choices[0].message.content
except openai.error.AuthenticationError:
self.no_api_key()
return ""
except openai.error.InvalidRequestError:
self.win.banner.props.title = "You don't have access to this model"
self.win.banner.props.button_label = ""
self.win.banner.set_revealed(True)
return ""
except socket.gaierror:
self.no_connection()
return ""
else:
self.hide_banner()
self.update_response(response)
return response
@property
def require_api_key(self):
return True
def preferences(self, win):
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.api_row = Adw.PasswordEntryRow()
self.api_row.connect("apply", self.on_apply)
self.api_row.props.title = "API Key"
self.api_row.set_show_apply_button(True)
self.expander.add_row(self.api_row)
return self.expander
def on_apply(self, widget):
self.hide_banner()
api_key = self.api_row.get_text()
print(api_key)
openai.api_key = api_key
def about(self, *args):
about = Adw.AboutWindow(
transient_for=self.pref_win,
application_name=self.name,
developer_name="OpenAI",
developers=["0xMRTT https://github.com/0xMRTT"],
license_type=Gtk.License.GPL_3_0,
version=self.version,
copyright="© 2023 0xMRTT",
)
about.present()
def save(self):
return {"api_key": openai.api_key}
def load(self, data):
openai.api_key = data["api_key"]

View File

@@ -0,0 +1,7 @@
from .openai import BaseOpenAIProvider
class OpenAIGPT35TurboProvider(BaseOpenAIProvider):
name = "OpenAI GPT 3.5 Turbo"
slug = "openaigpt35turbo"
model = "gpt-3.5-turbo"

View File

@@ -0,0 +1,7 @@
from .openai import BaseOpenAIProvider
class OpenAIGPT4Provider(BaseOpenAIProvider):
name = "OpenAI GPT 4"
slug = "openaigpt4"
model = "gpt-4"

View File

@@ -0,0 +1,7 @@
from .openai import BaseOpenAIProvider
class OpenAITextDavinci003(BaseOpenAIProvider):
name = "OpenAI Text Davinci 003"
slug = "openaitextdavinci003"
model = "text-davinci-003"

View File

@@ -33,6 +33,13 @@ class BavarderWindow(Adw.ApplicationWindow):
wait_button = Gtk.Template.Child()
response_stack = Gtk.Template.Child()
banner = Gtk.Template.Child()
# listen = Gtk.Template.Child()
# listen_wait = Gtk.Template.Child()
# listen_spinner = Gtk.Template.Child()
# speak = Gtk.Template.Child()
# speak_wait = Gtk.Template.Child()
# speak_spinner = Gtk.Template.Child()
provider_selector = Gtk.Template.Child()
def __init__(self, **kwargs):
super().__init__(**kwargs)