Skip to content

Instantly share code, notes, and snippets.

@zrod
Created May 4, 2016 15:36
Show Gist options
  • Save zrod/bdaa81941f09d538540e70cf2f85c5a5 to your computer and use it in GitHub Desktop.
Save zrod/bdaa81941f09d538540e70cf2f85c5a5 to your computer and use it in GitHub Desktop.
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