/// <summary> /// Handles the specified @event. /// </summary> /// <param name="event">The @event.</param> public void Handle([NotNull] InitPageLoadEvent @event) { string browser = "{0} {1}".FormatWith( this.HttpRequestBase.Browser.Browser, this.HttpRequestBase.Browser.Version); string platform = this.HttpRequestBase.Browser.Platform; bool isSearchEngine; bool dontTrack; string userAgent = this.HttpRequestBase.UserAgent; bool isMobileDevice = UserAgentHelper.IsMobileDevice(userAgent) || this.HttpRequestBase.Browser.IsMobileDevice; // try and get more verbose platform name by ref and other parameters UserAgentHelper.Platform( userAgent, this.HttpRequestBase.Browser.Crawler, ref platform, ref browser, out isSearchEngine, out dontTrack); dontTrack = !this.Get <YafBoardSettings>().ShowCrawlersInActiveList&& isSearchEngine; // don't track if this is a feed reader. May be to make it switchable in host settings. // we don't have page 'g' token for the feed page. if (browser.Contains("Unknown") && !dontTrack) { dontTrack = UserAgentHelper.IsFeedReader(userAgent); } @event.Data.DontTrack = dontTrack; @event.Data.UserAgent = userAgent; @event.Data.IsSearchEngine = isSearchEngine; @event.Data.IsMobileDevice = isMobileDevice; @event.Data.Browser = browser; @event.Data.Platform = platform; YafContext.Current.Vars["DontTrack"] = dontTrack; }