Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/TibiaNewslist.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func TibiaNewslistImpl(days int, BoxContentHTML string, handlerURL string) (News
OneNews.TibiaURL = NewsSplit[0] + NewsID

if TibiaDataHost != "" {
OneNews.ApiURL = "https://" + TibiaDataHost + "/v4/news/id/" + NewsID
OneNews.ApiURL = TibiaDataProtocol + "://" + TibiaDataHost + "/v4/news/id/" + NewsID
}

// add to NewsListData for response
Expand Down
50 changes: 31 additions & 19 deletions src/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@ var (
TibiaDataRestrictionMode bool

// TibiaData app settings
TibiaDataHost string // set through env TIBIADATA_HOST
TibiaDataAPIDetails APIDetails // containing information from build
TibiaDataHost string // set through env TIBIADATA_HOST
TibiaDataProtocol = "https" // can be overridden by env TIBIADATA_PROTOCOL

// TibiaData app details set to release/build on GitHub
TibiaDataBuildRelease = "unknown" // will be set by GitHub Actions (to release number)
Expand All @@ -48,22 +49,8 @@ var (
// @BasePath /

func init() {
// Generating TibiaDataUserAgent with TibiaDataUserAgentGenerator function
TibiaDataUserAgent = TibiaDataUserAgentGenerator(TibiaDataAPIversion)

// Initiate the validator
err := validation.Initiate(TibiaDataUserAgent)
if err != nil {
panic(err)
}
}

func main() {
// logging start of TibiaData
log.Printf("[info] TibiaData API starting..")

// Running the TibiaDataInitializer function
TibiaDataInitializer()
// logging init of TibiaData
log.Printf("[info] TibiaData API initializing..")

// Logging build information
log.Printf("[info] TibiaData API release: %s", TibiaDataBuildRelease)
Expand All @@ -81,11 +68,31 @@ func main() {
if getEnvAsBool("DEBUG_MODE", false) {
// Setting debug to true for more logging
TibiaDataDebug = true
}
log.Printf("[info] TibiaData API debug-mode: %t", TibiaDataDebug)

// Running the TibiaDataInitializer function
TibiaDataInitializer()

// Generating TibiaDataUserAgent with TibiaDataUserAgentGenerator function
TibiaDataUserAgent = TibiaDataUserAgentGenerator(TibiaDataAPIversion)

if TibiaDataDebug {
// Logging user-agent string
log.Printf("[debug] TibiaData API User-Agent: %s", TibiaDataUserAgent)
}
log.Printf("[info] TibiaData API debug-mode: %t", TibiaDataDebug)

// Initiate the validator
err := validation.Initiate(TibiaDataUserAgent)
if err != nil {
panic(err)
}

}

func main() {
// logging start of TibiaData
log.Printf("[info] TibiaData API starting..")

// Starting the webserver
runWebServer()
Expand All @@ -100,7 +107,12 @@ func TibiaDataInitializer() {

// Adding information of host
if isEnvExist("TIBIADATA_HOST") {
TibiaDataHost = "+https://" + getEnv("TIBIADATA_HOST", "")
TibiaDataHost = getEnv("TIBIADATA_HOST", "")
log.Println("[info] TibiaData API hostname: " + TibiaDataHost)
}
if isEnvExist("TIBIADATA_PROTOCOL") {
TibiaDataProtocol = getEnv("TIBIADATA_PROTOCOL", "https")
log.Println("[info] TibiaData API protocol: " + TibiaDataProtocol)
}

// Setting TibiaDataProxyDomain
Expand Down
13 changes: 12 additions & 1 deletion src/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,30 @@ import (
)

func TestInit(t *testing.T) {
const expectedUserAgent = "TibiaData-API/v4 (release/unknown; build/manual; commit/-; edition/open-source; unittest.example.com)"
const (
expectedUserAgent = "TibiaData-API/v4 (release/unknown; build/manual; commit/-; edition/open-source)"
expectedUserAgentHost = "TibiaData-API/v4 (release/unknown; build/manual; commit/-; edition/open-source; +https://unittest.example.com)"
)

TibiaDataHost = ""
TibiaDataUserAgent = TibiaDataUserAgentGenerator(TibiaDataAPIversion)
assert.Equal(t, expectedUserAgent, TibiaDataUserAgent)

TibiaDataHost = "unittest.example.com"
TibiaDataUserAgent = TibiaDataUserAgentGenerator(TibiaDataAPIversion)
assert.Equal(t, expectedUserAgentHost, TibiaDataUserAgent)
}

func TestTibiaDataInitializer(t *testing.T) {
assert := assert.New(t)

TibiaDataHost = "unittest.example.com"

// Call the function to be tested
TibiaDataInitializer()

// Check that the variables have been set correctly
assert.Equal("open-source", TibiaDataBuildEdition)
assert.Equal("https", TibiaDataProtocol)
assert.Equal("unittest.example.com", TibiaDataHost)
}
7 changes: 6 additions & 1 deletion src/webserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -1183,8 +1183,13 @@ func TibiaDataUserAgentGenerator(version int) string {
"build/" + TibiaDataBuildBuilder,
"commit/" + TibiaDataBuildCommit,
"edition/" + TibiaDataBuildEdition,
TibiaDataHost,
}

// adding TibiaDataHost if set
if TibiaDataHost != "" {
useragentDetails = append(useragentDetails, "+"+TibiaDataProtocol+"://"+TibiaDataHost)
}

useragent += " (" + strings.Join(useragentDetails, "; ") + ")"

return useragent
Expand Down