Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pjaskulski/lidi
lidi - a little English-Polish dictionary, MySQL database + Redis + REST API server (Go) + command-line client in Golang (with text to speech thanks to Google API) + desktop client (Go + Fyne toolkit) + docker
https://github.com/pjaskulski/lidi
docker-compose fyne fyneapp go golang htgo-tts mysql-database redis-cache rest-api
Last synced: about 2 months ago
JSON representation
lidi - a little English-Polish dictionary, MySQL database + Redis + REST API server (Go) + command-line client in Golang (with text to speech thanks to Google API) + desktop client (Go + Fyne toolkit) + docker
- Host: GitHub
- URL: https://github.com/pjaskulski/lidi
- Owner: pjaskulski
- License: unlicense
- Created: 2021-03-27T17:06:43.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-04-29T09:48:49.000Z (over 3 years ago)
- Last Synced: 2024-10-11T06:41:03.556Z (3 months ago)
- Topics: docker-compose, fyne, fyneapp, go, golang, htgo-tts, mysql-database, redis-cache, rest-api
- Language: Go
- Homepage:
- Size: 13.7 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lidi
lidi - a little English-Polish dictionary, MySQL database + Redis + REST API server (Go) + command-line client in Golang (with text to speech thanks to Google API) + desktop client (Go, fyne).MySQL database definition + English-Polish dictionary, 10000 words:
`./database/database.sql`**Docker:**
```
1. docker-compose up
2. go build -o lidi-client ./cmd/client
3. ./lidi-client en house
4. ./lidi-desktop
```**Or:**
Server:
Setup MySQL manually, database.sql file contains the table definition and data.
install Redis.`go build -o lidi-server ./cmd/web`
```
Usage of ./lidi-server:
-addr string
HTTP network address (default ":8080")
-dsn string
MySQL data source name (default "web:pass@/dictionary")
```Client:
`go build -o lidi-client ./cmd/client````
Usage:
lidi-client [en|pl|speak|add|update|delete]Subcommands:
en Translate from English to Polish
pl Translate from Polish to English
speak Say in English (Google API is used)
add Add new item to dictionary (English=Polish) returns ID
update Update item in dictionary (ID English=Polish)
delete Delete item in dictionary (English=Polish)Flags:
--version Displays the program version string.
-h --help Displays help with available flag, subcommand, and positional value parameters.
-s --server Dictionary server address (default: http://localhost:8080)
-p --speak Speak English after translate (en|pl commands)
-i --id show record idExample:
1. Server start: ./lidi-server
2. Client query: ./lidi-client en house -p
./lidi-client add tree=drzefo
./lidi-client update 16354 tree=drzewo
./lidi-client delete 16354
```
Note: speak command (and -p flag) use [htgo-tts](https://github.com/hegedustibor/htgo-tts) lib,
htgo-tts needs mplayer.![Screen](/lidi-client.png)
Desktop:
`go build -o lidi-desktop ./cmd/desktop`![Screen](/lidi-desktop.png)
Note: server, client and desktop tested on Linux only.
English word list: [The BNC/COCA headword lists](https://www.wgtn.ac.nz/lals/resources/paul-nations-resources/vocabulary-lists).
Translation: Google Translate, printed dictionaries, memory.