One day, i noticed that there no lib to easy use CowSay with Go. So i made it :D
First, use Create()
to instance and init a Pimp
struct
Now you can config you gosay
instance like you whant
When your configuration are done, you can use Say()
to build a string formated like Cowsay
Simple exemple
package main
inport (
"fmt"
"git.iglou.eu/Production/libgosay"
)
func main() {
// Instance and init gosay Pimp struc
gosay := libgosay.Create()
// Catch say result
say, err := gosay.Say("Heya, it's me Imoen")
if err != nil {
// do some thing ...
}
fmt.Println(say)
}
Some features are the same of Cowsay
, but with little more.
- Max Char by line
- Show body only without any bubble
- Can pimp your
Bubble
- Can pimp
Tail
Eyes
Tongue
- Load custom Body (with
Pimp.Body = body string
)
Compatible body are avaiable (Converted from Cowsay and Ponysay):
Official repo https://git.iglou.eu/Production/libgosay_template
Github repo https://github.com/IGLOU-EU/libgosay_template
Ex:
gosay := libgosay.Create()
// Pimp your gosay
gosay.Eyes = "0o"
gosay.Tongue = "VV"
gosay.Tail = "o"
Give us:
_____________________
< Heya, it's me Imoen >
---------------------
o ˏ⋒___⋒ˎ
o ▏ 0__O ▕
▏ VV ▕
▏U U▕
▏ ▕
ˋ-U---U-ˊ
By default, the traditionnal 'say' bubble are used
________
< A word >
--------
_____________________
/ Multiple line \
| message exemple |
\ for my BFF Imoen... /
---------------------
But you can using some other presconfigured Bubble
- Speak()
- Think()
- ThinkUTF8()
- Whisper()
- WhisperUTF8()
- Narrative()
- BigBoxUTF8()
- AsianBoxUTF8()
like this:
gosay := libgosay.Create()
// Change default bubble
gosay.Bubble.Whisper()
And, you can also setting it manually
OneLine
config is used instead of FirstLine
, Lines
and LastLine
Only if the string you want to say, is not bigger then one line.
- Each config line use 3 Rune
- First rune are for the Left side
- Second rune is repeated X.time (string len)
- Third rune are for the Right side
gosay := libgosay.Create()
// Eatch
gosay.Bubble.Before = [3]rune{'', '', ''}
gosay.Bubble.OneLine = [3]rune{'', '', ''}
gosay.Bubble.FirstLine = [3]rune{'', '', ''}
gosay.Bubble.Lines = [3]rune{'', '', ''}
gosay.Bubble.LastLine = [3]rune{'', '', ''}
gosay.Bubble.After = [3]rune{'', '', ''}
gosay.Bubble.Tail = ''
- Open a ticket !
____________________________________________________________
/ This project is licensed under the MIT license. \
\ The licence file is available on repo LICENSE file /
------------------------------------------------------------
\ ˏ⋒___⋒ˎ
\ ▏ @__@ ▕
▏ UU ▕
▏U U▕
▏ ▕
ˋ-U---U-ˊ