added logo

This commit is contained in:
Christian Pointner 2016-12-10 23:39:45 +01:00
parent e88b5670ae
commit da776da4c6
2 changed files with 160 additions and 14 deletions

137
logo.go Normal file
View File

@ -0,0 +1,137 @@
//
// telme10
//
// Copyright (c) 2016 Christian Pointner <equinox@realraum.at>
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// * Neither the name of telgo nor the names of its contributors may be
// used to endorse or promote products derived from this software without
// specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
package main
// generated using: http://www.ascii-art-generator.org/
var (
logoBW80 = []string{
" .':ldkOKXNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNKx:. ",
" .:okKNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXxlcldKWMMWO,",
" .;oONMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMOcc:. ,KMMMMK",
" ,d0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk. cXMMMMM",
" .cONMMMMMMMMMMMMMNKOxdlc:::;;:::cldxOKNMMMMMMMMMMMMMMMMMM0, .dNMMMMM",
" .lKWMMMMMMMMMMWXko:'. .':okKWMMMMMMMMMMMMMWKc .xMMMMM",
" .cKWMMMMMMMMMW0d:. .;oONMMMMMMMMWNX0: .xWMMMM",
" ,OWMMMMMMMMMXx;. ,oKWMMMMMXl,..;kNMMMMM",
" .lXMMMMMMMMWKl. .:OWMMMWKO0XWMMMMMMM",
" .xWMMMMMMMMKo. .. .:0WMMMMMMMMMMMMMM",
" .kWMMMMMMMNk' 'loool:' .,:ldkO000O: .oNMMMMMMMMMMMMM",
" .kWMMMMMMMXc. '0MMMMMMK; .',cdOKWMMMMMMMMMO' :KMMMMMMMMMMMM",
" .xWMMMMMMMK; :NMMMMMMWOdOXNWMMMMMMMMMMMMMMO. ,KMMMMMMMMMMM",
" lNMMMMMMMK; cWMMMMMMMMMMMMMMMMMMMMWNXKK0O: ;KMMMMMMMMMM",
"'0MMMMMMMNc cWMMMMMMMMMWXK0kdolc:;,'... cNMMMMMMMMM",
"oWMMMMMMMx. lWMMMMMMMKo,... .xMMMMMMMMM",
"OMMMMMMMX: cWMMMMMMMd :XMMMMMMMM",
"XMMMMMMMO. cWMMMMMMMd .OMMMMMMMM",
"WMMMMMMMx. cWMMMMMMMd dMMMMMMMM",
"MMMMMMMMd cWMMMMMMMd oMMMMMMMM",
"WMMMMMMMd cWMMMMMMMd oMMMMMMMM",
"NMMMMMMMk. cWMMMMMMMx. .xMMMMMMMW",
"KMMMMMMMK; cWMMMMMMMx. '0MMMMMMMX",
"xMMMMMMMWd cWMMMMMMMx. cNMMMMMMMO",
":XMMMMMMMK; cWMMMMMMMk. .OMMMMMMMNl",
".xMMMMMMMMO. cWMMMMMMMk. .dWMMMMMMMk.",
" ,KMMMMMMMWx. cNMMMMMMMk. .oNMMMMMMMX; ",
" :XMMMMMMMWk. :NMMMMMMMk. .oNMMMMMMMNl ",
" cXMMMMMMMWO, ;KMMMMMMMk. 'kWMMMMMMMNo. ",
" cXMMMMMMMMXo. .oXNNNNKk; .cKMMMMMMMMNl. ",
" ;0MMMMMMMMW0c. .'''.. .:OWMMMMMMMMK: ",
" .xNMMMMMMMMW0l. .l0WMMMMMMMMWk' ",
" :0WMMMMMMMMMXx:. .:xXMMMMMMMMMMKc. ",
" .lKWMMMMMMMMMWXkl,. .,lkXWMMMMMMMMMMXo. ",
" .l0WMMMMMMMMMMMWKOdl;,... ...,;ldOXWMMMMMMMMMMMWKo. ",
" .:xXMMMMMMMMMMMMMMMWNK0OOOkkOOO0KXWMMMMMMMMMMMMMMMNkc. ",
" .ckXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNkl' ",
" .:dONWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0dc. ",
" .;lxOKNWMMMMMMMMMMMMMMMMMMWNKOxl;' ",
" .;lxOKXWWMMMMMMWWNKOxl:'. "}
logoBW72 = []string{
" .,:oxO0XNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWN0o' ",
" .:dOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXd:;:lKMMMXl",
" ,lONMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXkxo. cWMMMN",
" .lONMMMMMMMMMMMMMWXK00OOOO00KNWMMMMMMMMMMMMMMMMMMMXc .OMMMMM",
" ,dXMMMMMMMMMMWXOdl;'... ...';cdkKWMMMMMMMMMMMMMXd..lXMMMM",
" 'xNMMMMMMMMMNkl;. .,lkXWMMMMMMMMMMNl 'OMMMM",
" .oXMMMMMMMMNOc' .:xXMMMMMNx:,.,xNMMMM",
" ,OWMMMMMMMNx, 'oKMMMW0xk0NMMMMMM",
" :XMMMMMMMNx, ... .oXMMMMMMMMMMMMM",
" lXMMMMMMW0; 'odddo:. .,:oxk00K0d. ,OWMMMMMMMMMMM",
" cXMMMMMMWx. .OMMMMMWd..,:cdOXWMMMMMMMMN: .dNMMMMMMMMMM",
" ;KMMMMMMWd. ;XMMMMMMX0XWMMMMMMMMMMMMMMX; .oNMMMMMMMMM",
".kMMMMMMWx. ;XMMMMMMMMMMMMWNXK0Okxdoll;. .dWMMMMMMMM",
"cNMMMMMM0' ;XMMMMMMWKxoc:,'... '0MMMMMMMM",
"kMMMMMMNc ;XMMMMMM0, lNMMMMMMM",
"XMMMMMM0' ;XMMMMMMO. '0MMMMMMM",
"WMMMMMMk. ;XMMMMMMO. .xMMMMMMM",
"MMMMMMMx. ;XMMMMMMO. dMMMMMMM",
"WMMMMMMx. ;XMMMMMMO. dMMMMMMM",
"NMMMMMMO. ;XMMMMMM0' .kMMMMMMW",
"0MMMMMMN: ;XMMMMMM0' ,KMMMMMMX",
"dMMMMMMMk. ;XMMMMMM0' oWMMMMMMk",
",KMMMMMMNl ;XMMMMMMK, ;KMMMMMMX:",
" oWMMMMMMX: ;XMMMMMMK, '0MMMMMMWd.",
" .kWMMMMMMK: ,KMMMMMMK, ,0MMMMMMMO. ",
" 'OWMMMMMMXl. '0MMMMMM0, :KMMMMMMM0, ",
" .kWMMMMMMNk' lKXNXX0l. 'xNMMMMMMWO' ",
" .dNMMMMMMMXd' ..... .oXMMMMMMMWx. ",
" :KMMMMMMMMXx;. .,dXMMMMMMMMXl. ",
" .dNMMMMMMMMW0o,. .,o0NMMMMMMMMNx' ",
" ,xNMMMMMMMMMWKxl;.. ..;lxKWMMMMMMMMMNk, ",
" 'oKWMMMMMMMMMMWN0kxolc::::::clodk0NWMMMMMMMMMMWXd, ",
" .:xXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXkc. ",
" .:dONMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0d:. ",
" .:ox0XWMMMMMMMMMMMMMMMMMMWX0ko:'. ",
" .,:ok0XNWMMMMMMWNX0kdc,. "}
logoBW42 = []string{
" .,cdOKXWWMMMMMMMMMMMMMMMMXkdOX0c",
" .:xKWMMMMMMWWNNWWMMMMMMMMMMMXx',KMW",
" .oKWMMMWKxoc;,'''',;coxKNMMMMMMXc,OMM",
" .lXMMMW0o,. .,lONMMNk::0MM",
" ,OWMMWO:. ;kNN00NMMM",
" ;KMMMXc. 'odo, ..,coxkOo. :KMMMMMM",
"'0MMM0; .dMMMXkO0XWMMMWW0' ,0MMMMM",
"xWMMX; .xMMMWXkxdol:;,,. ;XMMMM",
"XMMMd .xMMMK; dMMMM",
"WMMN: .xMMM0' :NMMM",
"MMMN: .xMMM0' :XMMM",
"NMMWl .xMMM0' cWMMW",
"0MMMO' .xMMM0, .kMMM0",
"cNMMWd. .xMMMK, oNMMNl",
".dWMMWx. dMMMK, .dNMMWd.",
" .dNMMWO; ,dxd:. ;OWMMNd. ",
" :KMMMNk:. .:kNMMMKc. ",
" .oXMMMWKxc,. .,cxKWMMMXd. ",
" .lONMMMMWX0kxddddxk0XWMMMMNOl. ",
" ,lxKNWMMMMMMMMMMMMMNKkl, ",
" .:dOKNWMMMMWNKOd:. "}
)

37
main.go
View File

@ -49,41 +49,50 @@ func wait(length time.Duration, cancel <-chan bool) bool {
}
}
func printLogo(c *telgo.Client) {
for _, line := range logoBW72 {
c.Sayln(" " + line)
}
}
type Greeter struct {
}
func (g Greeter) Exec(c *telgo.Client, args []string) bool {
c.Sayln("")
c.Sayln("Hello!")
c.Sayln("")
printLogo(c)
c.Sayln("")
c.Sayln(" Hello!")
c.Sayln("")
if wait(1*time.Second, c.Cancel) {
return true
}
c.Sayln("Did you know: realraum will be celebrating its 10th birthday")
c.Sayln("on the 18th of March 2017?")
c.Sayln(" Did you know: realraum will be celebrating its 10th birthday")
c.Sayln(" on the 18th of March 2017?")
c.Sayln("")
if wait(1*time.Second, c.Cancel) {
return true
}
c.Sayln("you should come by!")
c.Sayln(" you should come by!")
c.Sayln("")
if wait(3*time.Second, c.Cancel) {
return true
}
c.Sayln("fun fun fun!")
c.Sayln(" fun fun fun!")
c.Sayln("")
if wait(3*time.Second, c.Cancel) {
return true
}
c.Sayln("come to the party ... we mean it!")
c.Sayln(" come to the party ... we mean it!")
c.Sayln("")
c.Sayln("you have now 10s to decide:")
c.Sayln(" you have now 10s to decide:")
c.Say(" deciding ... 0.0%%\r")
c.Say(" deciding ... 0.0%%\r")
DECISION:
for i := uint(0); i < 100; i++ {
select {
@ -92,18 +101,18 @@ DECISION:
default:
}
time.Sleep(100 * time.Millisecond)
c.Say(" deciding ... %5.1f%%\r", (float64(i)/float64(100))*100.0)
c.Say(" deciding ... %5.1f%%\r", (float64(i)/float64(100))*100.0)
}
c.Sayln(" deciding ... 100.0%% ... done.")
c.Sayln(" deciding ... 100.0%% ... done.")
c.Sayln("")
c.Prompt = "are you coming? "
c.Prompt = " are you coming? "
return false
}
func answer(c *telgo.Client, args []string) bool {
if len(args) > 1 {
c.Sayln(" yes or no?")
c.Sayln(" yes or no?")
return false
}
@ -112,7 +121,7 @@ func answer(c *telgo.Client, args []string) bool {
fallthrough
case "yes":
c.Sayln("")
c.Sayln("Great! We'll see you at the party then.")
c.Sayln(" Great! We'll see you at the party then.")
case "n":
fallthrough
case "no":
@ -124,7 +133,7 @@ func answer(c *telgo.Client, args []string) bool {
}
c.Sayln("")
c.Sayln(" https://github.com/realraum/telme10")
c.Sayln(" https://github.com/realraum/telme10")
c.Sayln("")
time.Sleep(1 * time.Second)
return true