show ads based on user info

This commit is contained in:
2020-07-10 10:23:32 +02:00
parent 419f453dd7
commit 6396c665dd

View File

@@ -33,7 +33,7 @@ func adType() (i int) {
// Intn returns a number up to n, but never n itself. So it get a random 0
// or 1 we need to give it n=2. We can use this function to make other
// splits like 1/3 1/4, etc
i = rand.Intn(2)
i = rand.Intn(4)
// The return value correstonds to the type of ad shown:
// 0: A-ads
@@ -41,10 +41,16 @@ func adType() (i int) {
// 2: Patreon
switch i {
case 0: // 50% of the traffic
case 0, 1: // 50% of the traffic
return 1
default:
case 2:
return 2
case 3:
return 0
default:
panic(fmt.Errorf(
"random number generator returned unrecognised number: %d", i),
)
}
}
@@ -84,6 +90,11 @@ func (wc *WebController) serveFileViewer(w http.ResponseWriter, r *http.Request,
return
}
showAds := true
if (templateData.Authenticated && templateData.User.DisableAdDisplay) || finfo[0].ShowAds == false {
showAds = false
}
templateData.OGData = metadataFromFile(finfo[0].FileInfo)
if len(ids) > 1 {
templateData.Title = fmt.Sprintf("%d files on pixeldrain", len(finfo))
@@ -92,7 +103,7 @@ func (wc *WebController) serveFileViewer(w http.ResponseWriter, r *http.Request,
CaptchaKey: wc.captchaKey(),
ViewToken: wc.viewTokenOrBust(),
AdType: adType(),
ShowAds: finfo[0].ShowAds,
ShowAds: showAds,
APIResponse: apitype.ListInfo{
Success: true,
Title: "Multiple files",
@@ -107,7 +118,7 @@ func (wc *WebController) serveFileViewer(w http.ResponseWriter, r *http.Request,
CaptchaKey: wc.captchaKey(),
ViewToken: wc.viewTokenOrBust(),
AdType: adType(),
ShowAds: finfo[0].ShowAds,
ShowAds: showAds,
APIResponse: finfo[0].FileInfo,
}
}
@@ -173,6 +184,11 @@ func (wc *WebController) serveListViewer(w http.ResponseWriter, r *http.Request,
wc.templates.Get().ExecuteTemplate(w, "list_not_found", templateData)
}
showAds := true
if (templateData.Authenticated && templateData.User.DisableAdDisplay) || list.Files[0].ShowAds == false {
showAds = false
}
templateData.Title = fmt.Sprintf("%s ~ pixeldrain", list.Title)
templateData.OGData = metadataFromList(list)
templateData.Other = viewerData{
@@ -180,7 +196,7 @@ func (wc *WebController) serveListViewer(w http.ResponseWriter, r *http.Request,
CaptchaKey: wc.captchaSiteKey,
ViewToken: wc.viewTokenOrBust(),
AdType: adType(),
ShowAds: list.Files[0].ShowAds,
ShowAds: showAds,
APIResponse: list,
}