fedilogue/fedilogue.go
Farhan Khan 5bc9a68d53 web feature fetching user icon
adding database pool to all functions to verify before fetching
2020-12-17 18:26:55 +00:00

55 lines
1.1 KiB
Go

package main
import (
"github.com/microcosm-cc/bluemonday"
"log"
"net/http"
_ "net/http/pprof"
"regexp"
"runtime"
"sync"
)
// Current instances
var runninginstances map[string]RunningInstance
var ri_mutex = &sync.Mutex{}
func startpprof() {
log.Print("Starting http/pprof on :7777")
log.Fatal(http.ListenAndServe("127.0.0.1:7777", nil))
}
func main() {
// Initial Setup
reportPostChan := make(chan ReportPost)
runninginstances = make(map[string]RunningInstance)
getSettings()
go startpprof()
pool := getDbPool()
for i := 0; i < settings.Database.Workers; i++ {
go postHandler(reportPostChan, pool)
}
p = bluemonday.NewPolicy()
spaceReg = regexp.MustCompile(`\s+`)
for _, endpoint := range settings.Autostart {
log.Print("Autostarting " + endpoint)
ri_mutex.Lock()
_, exists := runninginstances[endpoint]
if exists == false {
runninginstances[endpoint] = RunningInstance{}
go StartInstance(endpoint, reportPostChan, pool)
}
ri_mutex.Unlock()
}
go startctl(reportPostChan, pool)
go webmain(reportPostChan, pool)
runtime.Goexit()
}