本文整理汇总了Golang中github.com/slugalisk/overrustlelogs/common.GetConfig函数的典型用法代码示例。如果您正苦于以下问题:Golang GetConfig函数的具体用法?Golang GetConfig怎么用?Golang GetConfig使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetConfig函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: NewTwitchLogger
// NewTwitchLogger ...
func NewTwitchLogger(f func(m <-chan *common.Message)) *TwitchLogger {
t := &TwitchLogger{
chats: make(map[int]*common.Twitch, 0),
admins: make(map[string]struct{}),
logHandler: f,
}
admins := common.GetConfig().Twitch.Admins
for _, a := range admins {
t.admins[a] = struct{}{}
}
d, err := ioutil.ReadFile(common.GetConfig().Twitch.ChannelListPath)
if err != nil {
log.Fatalf("unable to read channels %s", err)
}
if err := json.Unmarshal(d, &t.channels); err != nil {
log.Fatalf("unable to read channels %s", err)
}
t.commandChannel = common.GetConfig().Twitch.CommandChannel
return t
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:26,代码来源:twitch.go
示例2: UsersHandle
// UsersHandle channel index
func UsersHandle(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
f, err := os.Open(common.GetConfig().LogPath + "/" + vars["channel"] + "/" + vars["month"])
if err != nil {
serveError(w, ErrNotFound)
return
}
files, err := f.Readdir(0)
if err != nil {
serveError(w, err)
return
}
nicks := common.NickList{}
for _, file := range files {
if NicksExtension.MatchString(file.Name()) {
common.ReadNickList(nicks, common.GetConfig().LogPath+"/"+vars["channel"]+"/"+vars["month"]+"/"+file.Name())
}
}
names := make([]string, 0, len(nicks))
for nick := range nicks {
names = append(names, nick+".txt")
}
sort.Sort(handysort.Strings(names))
serveDirIndex(w, []string{vars["channel"], vars["month"], "userlogs"}, names)
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:26,代码来源:server.go
示例3: UserHandle
// UserHandle user log
func UserHandle(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
if _, ok := vars["filter"]; ok {
serveFilteredLogs(w, common.GetConfig().LogPath+"/"+vars["channel"]+"/"+vars["month"], searchKey(vars["nick"], vars["filter"]))
return
}
serveFilteredLogs(w, common.GetConfig().LogPath+"/"+vars["channel"]+"/"+vars["month"], nickFilter(vars["nick"]))
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:9,代码来源:server.go
示例4: handleTwitchLogs
func (b *Bot) handleTwitchLogs(m *common.Message, r *bufio.Reader) (string, error) {
rs, s, err := b.searchNickFromLine(twitchPath, r)
if err != nil {
return s, err
}
if rs != nil {
return rs.Month() + " logs. " + b.toURL(common.GetConfig().Twitch.LogHost, "/Destiny/"+rs.Nick()), nil
}
return b.toURL(common.GetConfig().Twitch.LogHost, "/Destiny"), nil
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:11,代码来源:bot.go
示例5: ChangelogHandle
// ChangelogHandle changelog page
func ChangelogHandle(w http.ResponseWriter, r *http.Request) {
tpl, err := ace.Load(common.GetConfig().Server.ViewPath+"/layout", common.GetConfig().Server.ViewPath+"/changelog", nil)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Content-type", "text/html")
if err := tpl.Execute(w, nil); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:13,代码来源:server.go
示例6: NewBot
// NewBot ...
func NewBot(c *common.Destiny) *Bot {
b := &Bot{
c: c,
start: time.Now(),
admins: make(map[string]struct{}, len(common.GetConfig().Bot.Admins)),
ignoreLog: make(map[string]struct{}),
}
for _, admin := range common.GetConfig().Bot.Admins {
b.admins[admin] = struct{}{}
}
b.public = map[string]command{
"log": b.handleDestinyLogs,
"tlog": b.handleTwitchLogs,
"logs": b.handleDestinyLogs,
"tlogs": b.handleTwitchLogs,
"nuke": b.handleSimpleNuke,
"aegis": b.handleAegis,
"bans": b.handleBans,
"subs": b.handleSubs,
}
b.private = map[string]command{
"log": b.handleDestinyLogs,
"tlog": b.handleTwitchLogs,
"logs": b.handleDestinyLogs,
"tlogs": b.handleTwitchLogs,
"p": b.handlePremiumLog,
"uptime": b.handleUptime,
"ignore": b.handleIgnore,
"unignore": b.handleUnignore,
"ignrlog": b.handleIgnoreLog,
"unignrlog": b.handleUnignoreLog,
}
b.ignore = make(map[string]struct{})
if d, err := ioutil.ReadFile(common.GetConfig().Bot.IgnoreListPath); err == nil {
ignore := []string{}
if err := json.Unmarshal(d, &ignore); err == nil {
for _, nick := range ignore {
b.addIgnore(nick)
}
}
}
if d, err := ioutil.ReadFile(common.GetConfig().Bot.IgnoreLogListPath); err == nil {
ignoreLog := []string{}
if err := json.Unmarshal(d, &ignoreLog); err == nil {
for _, nick := range ignoreLog {
b.addIgnoreLog(nick)
}
}
}
return b
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:52,代码来源:bot.go
示例7: WrapperHandle
// WrapperHandle static html log wrapper
func WrapperHandle(w http.ResponseWriter, r *http.Request) {
tpl, err := ace.Load(common.GetConfig().Server.ViewPath+"/layout", common.GetConfig().Server.ViewPath+"/wrapper", nil)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Content-type", "text/html; charset=UTF-8")
path := r.URL.Path + ".txt"
if r.URL.RawQuery != "" {
path += "?" + r.URL.RawQuery
}
if err := tpl.Execute(w, struct{ Path string }{Path: path}); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:16,代码来源:server.go
示例8: DayHandle
// DayHandle channel index
func DayHandle(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
data, err := readLogFile(common.GetConfig().LogPath + "/" + vars["channel"] + "/" + vars["month"] + "/" + vars["date"])
if err != nil {
http.Error(w, err.Error(), http.StatusNotFound)
return
}
w.Header().Set("Content-type", "text/plain; charset=UTF-8")
w.Header().Set("Cache-control", "max-age=60")
if _, ok := vars["filter"]; ok {
reader := bufio.NewReaderSize(bytes.NewReader(data), len(data))
var lineCount int
for {
line, err := reader.ReadSlice('\n')
if err != nil {
if err != io.EOF {
log.Printf("error reading bytes %s", err)
}
break
}
if filterKey(line, vars["filter"]) {
w.Write(line)
lineCount++
}
}
if lineCount == 0 {
http.Error(w, ErrSearchKeyNotFound.Error(), http.StatusNotFound)
return
}
return
}
w.Write(data)
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:35,代码来源:server.go
示例9: PremiumUserHandle
// PremiumUserHandle user logs + replies
func PremiumUserHandle(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
nick := bytes.ToLower([]byte(vars["nick"]))
filter := func(line []byte) bool {
return bytes.Contains(bytes.ToLower(line), nick)
}
serveFilteredLogs(w, common.GetConfig().LogPath+"/"+vars["channel"]+"/"+vars["month"], filter)
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:9,代码来源:server.go
示例10: BroadcasterHandle
// BroadcasterHandle channel index
func BroadcasterHandle(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
nick := vars["channel"][:len(vars["channel"])-8]
search, err := common.NewNickSearch(common.GetConfig().LogPath+"/"+vars["channel"], nick)
if err != nil {
http.Error(w, ErrUserNotFound.Error(), http.StatusNotFound)
return
}
rs, err := search.Next()
if err == io.EOF {
http.Error(w, ErrUserNotFound.Error(), http.StatusNotFound)
return
} else if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
serveFilteredLogs(w, common.GetConfig().LogPath+"/"+vars["channel"]+"/"+vars["month"], nickFilter(rs.Nick()))
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:18,代码来源:server.go
示例11: BaseHandle
// BaseHandle channel index
func BaseHandle(w http.ResponseWriter, r *http.Request) {
paths, err := readDirIndex(common.GetConfig().LogPath)
if err != nil {
serveError(w, err)
return
}
serveDirIndex(w, []string{}, paths)
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:9,代码来源:server.go
示例12: writeLine
func (l *Logger) writeLine(timestamp time.Time, channel, nick, message string) {
logs, err := l.logs.Get(common.GetConfig().LogPath + "/" + strings.Title(channel) + " chatlog/" + timestamp.Format("January 2006") + "/" + timestamp.Format("2006-01-02") + ".txt")
if err != nil {
log.Printf("error opening log %s", err)
return
}
logs.Write(timestamp, nick, message)
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:8,代码来源:log.go
示例13: main
// Start server
func main() {
log.SetFlags(log.LstdFlags | log.Lshortfile)
d := NewDebugger()
r := mux.NewRouter()
r.StrictSlash(true)
r.HandleFunc("/", d.WatchHandle("Base", BaseHandle)).Methods("GET")
r.HandleFunc("/contact", d.WatchHandle("Contact", ContactHandle)).Methods("GET")
r.HandleFunc("/changelog", d.WatchHandle("Changelog", ChangelogHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}", d.WatchHandle("Channel", ChannelHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/{month:[a-zA-Z]+ [0-9]{4}}", d.WatchHandle("Month", MonthHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/{month:[a-zA-Z]+ [0-9]{4}}/{date:[0-9]{4}-[0-9]{2}-[0-9]{2}}.txt", d.WatchHandle("Day", DayHandle)).Queries("search", "{filter:.+}").Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/{month:[a-zA-Z]+ [0-9]{4}}/{date:[0-9]{4}-[0-9]{2}-[0-9]{2}}.txt", d.WatchHandle("Day", DayHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/{month:[a-zA-Z]+ [0-9]{4}}/{date:[0-9]{4}-[0-9]{2}-[0-9]{2}}", d.WatchHandle("Day", WrapperHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/{month:[a-zA-Z]+ [0-9]{4}}/userlogs", d.WatchHandle("Users", UsersHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/{month:[a-zA-Z]+ [0-9]{4}}/userlogs/{nick:[a-zA-Z0-9_-]{1,25}}.txt", d.WatchHandle("User", UserHandle)).Queries("search", "{filter:.+}").Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/{month:[a-zA-Z]+ [0-9]{4}}/userlogs/{nick:[a-zA-Z0-9_-]{1,25}}.txt", d.WatchHandle("User", UserHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/{month:[a-zA-Z]+ [0-9]{4}}/userlogs/{nick:[a-zA-Z0-9_-]{1,25}}", d.WatchHandle("User", WrapperHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/premium/{nick:[a-zA-Z0-9_-]{1,25}}", d.WatchHandle("Premium", PremiumHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/premium/{nick:[a-zA-Z0-9_-]{1,25}}/{month:[a-zA-Z]+ [0-9]{4}}.txt", d.WatchHandle("PremiumUser", PremiumUserHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/premium/{nick:[a-zA-Z0-9_-]{1,25}}/{month:[a-zA-Z]+ [0-9]{4}}", d.WatchHandle("PremiumUser", WrapperHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/current", d.WatchHandle("CurrentBase", CurrentBaseHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/current/{nick:[a-zA-Z0-9_]+}.txt", d.WatchHandle("NickHandle", NickHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/current/{nick:[a-zA-Z0-9_]+}", d.WatchHandle("NickHandle", WrapperHandle)).Methods("GET")
r.HandleFunc("/Destinygg chatlog/{month:[a-zA-Z]+ [0-9]{4}}/broadcaster.txt", d.WatchHandle("DestinyBroadcaster", DestinyBroadcasterHandle)).Methods("GET")
r.HandleFunc("/Destinygg chatlog/{month:[a-zA-Z]+ [0-9]{4}}/broadcaster", d.WatchHandle("DestinyBroadcaster", WrapperHandle)).Methods("GET")
r.HandleFunc("/Destinygg chatlog/{month:[a-zA-Z]+ [0-9]{4}}/subscribers.txt", d.WatchHandle("DestinySubscriber", DestinySubscriberHandle)).Methods("GET")
r.HandleFunc("/Destinygg chatlog/{month:[a-zA-Z]+ [0-9]{4}}/subscribers", d.WatchHandle("DestinySubscriber", WrapperHandle)).Methods("GET")
r.HandleFunc("/Destinygg chatlog/{month:[a-zA-Z]+ [0-9]{4}}/bans.txt", d.WatchHandle("DestinyBan", DestinyBanHandle)).Methods("GET")
r.HandleFunc("/Destinygg chatlog/{month:[a-zA-Z]+ [0-9]{4}}/bans", d.WatchHandle("DestinyBan", WrapperHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/{month:[a-zA-Z]+ [0-9]{4}}/broadcaster.txt", d.WatchHandle("Broadcaster", BroadcasterHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/{month:[a-zA-Z]+ [0-9]{4}}/broadcaster", d.WatchHandle("Broadcaster", WrapperHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/{month:[a-zA-Z]+ [0-9]{4}}/subscribers.txt", d.WatchHandle("Subscriber", SubscriberHandle)).Methods("GET")
r.HandleFunc("/{channel:[a-zA-Z0-9_-]+ chatlog}/{month:[a-zA-Z]+ [0-9]{4}}/subscribers", d.WatchHandle("Subscriber", WrapperHandle)).Methods("GET")
r.HandleFunc("/api/v1/stalk/{channel:[a-zA-Z0-9_-]+ chatlog}/{nick:[a-zA-Z0-9_-]+}.json", d.WatchHandle("Stalk", StalkHandle)).Queries("limit", "{limit:[0-9]+}").Methods("GET")
r.HandleFunc("/api/v1/stalk/{channel:[a-zA-Z0-9_-]+ chatlog}/{nick:[a-zA-Z0-9_-]+}.json", d.WatchHandle("Stalk", StalkHandle)).Methods("GET")
r.HandleFunc("/api/v1/status.json", d.WatchHandle("Debug", d.HTTPHandle))
r.NotFoundHandler = http.HandlerFunc(NotFoundHandle)
// r.PathPrefix("/assets/").Handler(http.StripPrefix("/assets/", http.FileServer(http.Dir("assets"))))
srv := &http.Server{
Addr: common.GetConfig().Server.Address,
Handler: r,
ReadTimeout: 5 * time.Second,
WriteTimeout: 10 * time.Second,
}
go srv.ListenAndServe()
sigint := make(chan os.Signal, 1)
signal.Notify(sigint, os.Interrupt, syscall.SIGTERM)
select {
case <-sigint:
log.Println("i love you guys, be careful")
os.Exit(0)
}
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:57,代码来源:server.go
示例14: ChannelHandle
// ChannelHandle channel index
func ChannelHandle(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
paths, err := readDirIndex(common.GetConfig().LogPath + "/" + vars["channel"])
if err != nil {
serveError(w, err)
return
}
sort.Sort(dirsByMonth(paths))
serveDirIndex(w, []string{vars["channel"]}, paths)
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:11,代码来源:server.go
示例15: NewChatLogs
// NewChatLogs instantiates chat log collection
func NewChatLogs() *ChatLogs {
l := &ChatLogs{}
cache, err := lru.NewWithEvict(common.GetConfig().MaxOpenLogs/2, l.HandleEvict)
if err != nil {
log.Fatalf("error creating log cache %s", err)
}
l.logs = cache
go l.housekeeping()
return l
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:11,代码来源:chatlog.go
示例16: Stop
// Stop bot
func (b *Bot) Stop() {
b.c.Stop()
ignore := []string{}
for nick := range b.ignore {
ignore = append(ignore, nick)
}
data, _ := json.Marshal(ignore)
if err := ioutil.WriteFile(common.GetConfig().Bot.IgnoreListPath, data, 0644); err != nil {
log.Printf("unable to write ignore list %s", err)
return
}
ignoreLog := []string{}
for nick := range b.ignoreLog {
ignoreLog = append(ignoreLog, nick)
}
data, _ = json.Marshal(ignoreLog)
if err := ioutil.WriteFile(common.GetConfig().Bot.IgnoreLogListPath, data, 0644); err != nil {
log.Printf("unable to write ignorelog list %s", err)
}
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:21,代码来源:bot.go
示例17: PremiumHandle
// PremiumHandle premium user log index
func PremiumHandle(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
paths, err := readDirIndex(common.GetConfig().LogPath + "/" + vars["channel"])
if err != nil {
http.Error(w, err.Error(), http.StatusNotFound)
return
}
for i := range paths {
paths[i] += ".txt"
}
serveDirIndex(w, []string{vars["channel"], "premium", vars["nick"]}, paths)
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:13,代码来源:server.go
示例18: serveError
// serveError ...
func serveError(w http.ResponseWriter, e error) {
tpl, err := ace.Load(common.GetConfig().Server.ViewPath+"/layout", common.GetConfig().Server.ViewPath+"/error", nil)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
data := map[string]interface{}{}
if e == ErrNotFound {
w.WriteHeader(http.StatusNotFound)
data["Message"] = e.Error()
} else if e != nil {
// w.WriteHeader(http.StatusInternalServerError)
data["Message"] = e.Error()
} else {
// w.WriteHeader(http.StatusInternalServerError)
data["Message"] = "Unknown Error"
}
w.Header().Set("Content-type", "text/html")
if err := tpl.Execute(w, data); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:24,代码来源:server.go
示例19: serveDirIndex
// serveDirIndex ...
func serveDirIndex(w http.ResponseWriter, base []string, paths []string) {
tpl, err := ace.Load(common.GetConfig().Server.ViewPath+"/layout", common.GetConfig().Server.ViewPath+"/directory", nil)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
data := map[string]interface{}{
"Breadcrumbs": []map[string]string{},
"Paths": []map[string]string{},
}
basePath := ""
for _, path := range base {
basePath += "/" + path
data["Breadcrumbs"] = append(data["Breadcrumbs"].([]map[string]string), map[string]string{
"Path": basePath,
"Name": path,
})
}
basePath += "/"
for _, path := range paths {
icon := "file-text"
if filepath.Ext(path) == "" {
icon = "folder"
}
data["Paths"] = append(data["Paths"].([]map[string]string), map[string]string{
"Path": basePath + strings.Replace(path, ".txt", "", -1),
"Name": path,
"Icon": icon,
})
}
w.Header().Set("Content-type", "text/html")
if err := tpl.Execute(w, data); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:37,代码来源:server.go
示例20: channelExists
// channelExists
func channelExists(ch string) bool {
req, err := http.NewRequest("GET", "https://api.twitch.tv/kraken/users/"+strings.ToLower(ch), nil)
if err != nil {
return false
}
req.Header.Add("Client-ID", common.GetConfig().Twitch.ClientID)
client := http.Client{
Timeout: 10 * time.Second,
}
res, err := client.Do(req)
if err != nil {
log.Println(err)
return false
}
res.Body.Close()
return res.StatusCode == http.StatusOK
}
开发者ID:slugalisk,项目名称:overrustlelogs,代码行数:18,代码来源:twitch.go
注:本文中的github.com/slugalisk/overrustlelogs/common.GetConfig函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论