Created
May 4, 2016 15:36
-
-
Save zrod/bdaa81941f09d538540e70cf2f85c5a5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package feriado | |
import ( | |
"fmt" | |
"github.com/go-chat-bot/bot" | |
"github.com/go-chat-bot/plugins/web" | |
"time" | |
) | |
const ( | |
msgInvalidDate = "Data invalida." | |
msgInvalidParms = "Parametros invalidos" // Melhorar mensagem | |
) | |
var ( | |
apiUrl = "http://dadosbr.github.io/feriados/nacionais.json" | |
) | |
type jsonResponse struct{ | |
Title string `json:"title"` | |
Date string `json:"date"` | |
Description string `json:"description"` | |
Legislation string `json:"legislation"` | |
Type string `json:"type"` | |
} | |
func feriado (command *bot.Cmd) (msg string, err error) { | |
if len(command.Args) == 0 { | |
msg = msgInvalidParams | |
} | |
data := &retorno{} | |
err = web.GetJSON(apiUrl, data) | |
if err != nil { | |
return "", err | |
} | |
return fmt.Sprintf("Proximo feriado: %s", | |
// Chama fetchNextHoliday() | |
, nil | |
} | |
func fetchNextHoliday() (msg string, err error) { | |
//data := | |
} | |
func init() { | |
bot.RegisterCommand( | |
"feriado", | |
"Lista o proximo feriado nacional.", | |
"!feriado", | |
feriado | |
) | |
} | |
############# EXEMPLO ############################################################# | |
[ | |
{ | |
"date": "01/01", | |
"title": "Confraternização Universal", | |
"description": "InÃcio do ano civil, Dia Mundial da Paz, além de Dia da Fraternidade Universal, sendo assim, um feriado internacional, adotado por quase todas as nações do planeta.", | |
"legislation": "Lei nº 10.607, de 19 de dezembro de 2002 - http://www.planalto.gov.br/ccivil_03/leis/2002/L10607.htm", | |
"type": "feriado", | |
"startTime": "", | |
"endTime": "", | |
"variableDates": {} | |
}, | |
{ | |
"date": "", | |
"title": "Sexta-Feira da Paixão", | |
"description": "Data cristã na qual a morte de Cristo é lembrada.", | |
"legislation": "Lei nº 9.093, de 12 de setembro de 1995 - http://www.planalto.gov.br/ccivil_03/Leis/L9093.htm", | |
"type": "feriado", | |
"startTime": "", | |
"endTime": "", | |
"variableDates": { | |
"2015": "03/04", | |
"2016": "25/03", | |
"2017": "14/04", | |
"2018": "30/03", | |
"2019": "19/04", | |
"2020": "10/04" | |
} | |
}, | |
{ | |
"date": "21/04", | |
"title": "Tiradentes", | |
"description": "Homenagem ao mártir da Inconfidência Mineira", | |
"legislation": "Lei nº 10.607, de 19 de dezembro de 2002 - http://www.planalto.gov.br/ccivil_03/leis/2002/L10607.htm", | |
"type": "feriado", | |
"startTime": "", | |
"endTime": "", | |
"variableDates": {} | |
}, | |
{ | |
"date": "01/05", | |
"title": "Dia do Trabalhador", | |
"description": "Dia Internacional dos Trabalhadores, adotado por muitos paÃses.", | |
"type": "feriado", | |
"startTime": "", | |
"endTime": "", | |
"legislation": "Lei nº 10.607, de 19 de dezembro de 2002 - http://www.planalto.gov.br/ccivil_03/leis/2002/L10607.htm", | |
"variableDates": {} | |
}, | |
{ | |
"date": "07/09", | |
"title": "Independência", | |
"description": "Data do chamado Grito do Ipiranga, que iniciou o processo de Independência do Brasil.", | |
"legislation": "Lei nº 10.607, de 19 de dezembro de 2002 - http://www.planalto.gov.br/ccivil_03/leis/2002/L10607.htm", | |
"type": "feriado", | |
"startTime": "", | |
"endTime": "", | |
"variableDates": {} | |
}, | |
{ | |
"date": "12/10", | |
"title": "Nossa Senhora Aparecida", | |
"description": "Padroeira do Brasil", | |
"legislation": "Lei nº 6.802, de 30 de junho de 1980 - http://www.planalto.gov.br/ccivil_03/Leis/L6802.htm", | |
"type": "feriado", | |
"startTime": "", | |
"endTime": "", | |
"variableDates": {} | |
}, | |
{ | |
"date": "02/11", | |
"title": "Finados", | |
"description": "Dia de memória aos mortos", | |
"legislation": "Lei nº 10.607, de 19 de dezembro de 2002 - http://www.planalto.gov.br/ccivil_03/leis/2002/L10607.htm", | |
"type": "feriado", | |
"startTime": "", | |
"endTime": "", | |
"variableDates": {} | |
}, | |
{ | |
"date": "15/11", | |
"title": "Proclamação da República", | |
"description": "Derrubada da Monarquia e instalação da República.", | |
"legislation": "Lei nº 10.607, de 19 de dezembro de 2002 - http://www.planalto.gov.br/ccivil_03/leis/2002/L10607.htm", | |
"type": "feriado", | |
"startTime": "", | |
"endTime": "", | |
"variableDates": {} | |
}, | |
{ | |
"date": "25/12", | |
"title": "Natal", | |
"description": "Celebração cristã do nascimento de Cristo", | |
"legislation": "Lei nº 10.607, de 19 de dezembro de 2002 - http://www.planalto.gov.br/ccivil_03/leis/2002/L10607.htm", | |
"type": "feriado", | |
"startTime": "", | |
"endTime": "", | |
"variableDates": {} | |
} | |
] | |
###################################################################################### | |
package cotacao | |
import ( | |
"fmt" | |
"github.com/go-chat-bot/bot" | |
"github.com/go-chat-bot/plugins/web" | |
) | |
var ( | |
url = "http://developers.agenciaideias.com.br/cotacoes/json" | |
) | |
type retorno struct { | |
Bovespa struct { | |
Cotacao string `json:"cotacao"` | |
Variacao string `json:"variacao"` | |
} `json:"bovespa"` | |
Dolar struct { | |
Cotacao string `json:"cotacao"` | |
Variacao string `json:"variacao"` | |
} `json:"dolar"` | |
Euro struct { | |
Cotacao string `json:"cotacao"` | |
Variacao string `json:"variacao"` | |
} `json:"euro"` | |
Atualizacao string `json:"atualizacao"` | |
} | |
func cotacao(command *bot.Cmd) (msg string, err error) { | |
data := &retorno{} | |
err = web.GetJSON(url, data) | |
if err != nil { | |
return "", err | |
} | |
return fmt.Sprintf("Dólar: %s (%s), Euro: %s (%s)", | |
data.Dolar.Cotacao, data.Dolar.Variacao, | |
data.Euro.Cotacao, data.Euro.Variacao), nil | |
} | |
func init() { | |
bot.RegisterCommand( | |
"cotacao", | |
"Informa a cotação do Dólar e Euro.", | |
"", | |
cotacao) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment