using Piwik.Tracker; using System; using System.Web; using Teknik.Configuration; using Teknik.Utilities; namespace Teknik.Piwik { public static class Tracking { public static void TrackPageView(string title, string sub, string clientIp, string url, string urlReferrer, string userAgent, int pixelWidth, int pixelHeight, bool hasCookies, string acceptLang, bool hasJava) { try { Config config = Config.Load(); if (config.PiwikConfig.Enabled) { if (config.DevEnvironment) { sub = "dev - " + sub; } //PiwikTracker.URL = config.PiwikConfig.Url; PiwikTracker tracker = new PiwikTracker(config.PiwikConfig.SiteId, config.PiwikConfig.Url); // Set Request Info tracker.SetIp(clientIp); tracker.SetTokenAuth(config.PiwikConfig.TokenAuth); tracker.SetUserAgent(userAgent); // Set browser info tracker.SetResolution(pixelWidth, pixelHeight); tracker.SetBrowserHasCookies(hasCookies); if (!string.IsNullOrEmpty(acceptLang)) tracker.SetBrowserLanguage(acceptLang); tracker.SetPlugins(new BrowserPlugins {Java = hasJava}); // Get Referral if (!string.IsNullOrEmpty(urlReferrer)) tracker.SetUrlReferrer(urlReferrer); if (!string.IsNullOrEmpty(url)) tracker.SetUrl(url); // Send the tracking request tracker.DoTrackPageView(string.Format("{0}/{1}", sub, title)); } } catch (Exception ex) { } } public static void TrackDownload(string userAgent, string clientIp, string url, string urlReferrer) { TrackAction(ActionType.Download, userAgent, clientIp, url, urlReferrer); } public static void TrackLink(string userAgent, string clientIp, string url, string urlReferrer) { TrackAction(ActionType.Link, userAgent, clientIp, url, urlReferrer); } private static void TrackAction(ActionType type, string userAgent, string clientIp, string url, string urlReferrer) { try { Config config = Config.Load(); if (config.PiwikConfig.Enabled) { PiwikTracker tracker = new PiwikTracker(config.PiwikConfig.SiteId, config.PiwikConfig.Url); tracker.SetUserAgent(userAgent); tracker.SetIp(clientIp); tracker.SetTokenAuth(config.PiwikConfig.TokenAuth); // Get Referral if (!string.IsNullOrEmpty(urlReferrer)) tracker.SetUrlReferrer(urlReferrer); if (!string.IsNullOrEmpty(url)) tracker.SetUrl(url); tracker.DoTrackAction(url, type); } } catch (Exception ex) { } } } }