mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
re-implement google analytics
This commit is contained in:
@@ -106,7 +106,8 @@ gulp.task('serve', function() {
|
|||||||
var next = '^/next(.*)$ http://localhost:8083/next$1 [P]';
|
var next = '^/next(.*)$ http://localhost:8083/next$1 [P]';
|
||||||
var logout = '^/logout$ http://localhost:8083/logout [P]';
|
var logout = '^/logout$ http://localhost:8083/logout [P]';
|
||||||
var custom_css = '^/custom_css.css$ http://localhost:8083/custom_css.css [P]';
|
var custom_css = '^/custom_css.css$ http://localhost:8083/custom_css.css [P]';
|
||||||
return [modRewrite([rest, next, logout, custom_css])];
|
var analytics = '^/analytics.js http://localhost:8083/analytics.js [P]';
|
||||||
|
return [modRewrite([rest, next, logout, custom_css, analytics])];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
11
pom.xml
11
pom.xml
@@ -154,9 +154,14 @@
|
|||||||
<version>${dropwizard.version}</version>
|
<version>${dropwizard.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.federecio</groupId>
|
<groupId>io.dropwizard</groupId>
|
||||||
<artifactId>dropwizard-swagger</artifactId>
|
<artifactId>dropwizard-assets</artifactId>
|
||||||
<version>0.5.1</version>
|
<version>${dropwizard.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.wordnik</groupId>
|
||||||
|
<artifactId>swagger-jaxrs_2.10</artifactId>
|
||||||
|
<version>1.3.2</version>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
<artifactId>jsr311-api</artifactId>
|
<artifactId>jsr311-api</artifactId>
|
||||||
|
|||||||
@@ -74,5 +74,6 @@
|
|||||||
|
|
||||||
<script type="text/javascript" src="js/templates.js"></script>
|
<script type="text/javascript" src="js/templates.js"></script>
|
||||||
<!-- endbuild -->
|
<!-- endbuild -->
|
||||||
|
<script type="text/javascript" src="analytics.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ import com.commafeed.frontend.resource.FeedREST;
|
|||||||
import com.commafeed.frontend.resource.PubSubHubbubCallbackREST;
|
import com.commafeed.frontend.resource.PubSubHubbubCallbackREST;
|
||||||
import com.commafeed.frontend.resource.ServerREST;
|
import com.commafeed.frontend.resource.ServerREST;
|
||||||
import com.commafeed.frontend.resource.UserREST;
|
import com.commafeed.frontend.resource.UserREST;
|
||||||
|
import com.commafeed.frontend.servlet.AnalyticsServlet;
|
||||||
import com.commafeed.frontend.servlet.CustomCssServlet;
|
import com.commafeed.frontend.servlet.CustomCssServlet;
|
||||||
import com.commafeed.frontend.servlet.LogoutServlet;
|
import com.commafeed.frontend.servlet.LogoutServlet;
|
||||||
import com.commafeed.frontend.servlet.NextUnreadServlet;
|
import com.commafeed.frontend.servlet.NextUnreadServlet;
|
||||||
@@ -208,9 +209,11 @@ public class CommaFeedApplication extends Application<CommaFeedConfiguration> {
|
|||||||
feedCategoryDAO, config);
|
feedCategoryDAO, config);
|
||||||
LogoutServlet logoutServlet = new LogoutServlet(config);
|
LogoutServlet logoutServlet = new LogoutServlet(config);
|
||||||
CustomCssServlet customCssServlet = new CustomCssServlet(sessionFactory, userSettingsDAO, config);
|
CustomCssServlet customCssServlet = new CustomCssServlet(sessionFactory, userSettingsDAO, config);
|
||||||
|
AnalyticsServlet analyticsServlet = new AnalyticsServlet(config);
|
||||||
environment.servlets().addServlet("next", nextUnreadServlet).addMapping("/next");
|
environment.servlets().addServlet("next", nextUnreadServlet).addMapping("/next");
|
||||||
environment.servlets().addServlet("logout", logoutServlet).addMapping("/logout");
|
environment.servlets().addServlet("logout", logoutServlet).addMapping("/logout");
|
||||||
environment.servlets().addServlet("customCss", customCssServlet).addMapping("/custom_css.css");
|
environment.servlets().addServlet("customCss", customCssServlet).addMapping("/custom_css.css");
|
||||||
|
environment.servlets().addServlet("analytics.js", analyticsServlet).addMapping("/analytics.js");
|
||||||
|
|
||||||
// Tasks
|
// Tasks
|
||||||
SchedulingService schedulingService = new SchedulingService();
|
SchedulingService schedulingService = new SchedulingService();
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
package com.commafeed.frontend.servlet;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.http.HttpServlet;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
|
||||||
|
import com.commafeed.CommaFeedConfiguration;
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class AnalyticsServlet extends HttpServlet {
|
||||||
|
|
||||||
|
private CommaFeedConfiguration config;
|
||||||
|
private String script;
|
||||||
|
|
||||||
|
public AnalyticsServlet(CommaFeedConfiguration config) {
|
||||||
|
this.config = config;
|
||||||
|
|
||||||
|
// @formatter:off
|
||||||
|
this.script = "(function(i, s, o, g, r, a, m) {" +
|
||||||
|
"i['GoogleAnalyticsObject'] = r;" +
|
||||||
|
"i[r] = i[r] || function() {" +
|
||||||
|
"(i[r].q = i[r].q || []).push(arguments)" +
|
||||||
|
"}, i[r].l = 1 * new Date();" +
|
||||||
|
"a = s.createElement(o), m = s.getElementsByTagName(o)[0];" +
|
||||||
|
"a.async = 1;" +
|
||||||
|
"a.src = g;" +
|
||||||
|
"m.parentNode.insertBefore(a, m)" +
|
||||||
|
"})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');" +
|
||||||
|
|
||||||
|
"ga('create', '" + config.getApplicationSettings().getGoogleAnalyticsTrackingCode() + "');" +
|
||||||
|
"ga('send', 'pageview');";
|
||||||
|
// @formatter:on
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||||
|
resp.setContentType("text/javascript");
|
||||||
|
if (StringUtils.isNotBlank(config.getApplicationSettings().getGoogleAnalyticsTrackingCode())) {
|
||||||
|
resp.getWriter().write(script);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user