diff --git a/README.rst b/README.rst
index bb404cf..47accee 100644
--- a/README.rst
+++ b/README.rst
@@ -90,7 +90,6 @@ Currently Supported Services
.. _`Optimizely`: http://www.optimizely.com/
.. _`Performable`: http://www.performable.com/
.. _`Piwik`: http://www.piwik.org/
-.. _`Reinvigorate`: http://www.reinvigorate.net/
.. _`SnapEngage`: http://www.snapengage.com/
.. _`Spring Metrics`: http://www.springmetrics.com/
.. _`UserVoice`: http://www.uservoice.com/
diff --git a/analytical/templatetags/analytical.py b/analytical/templatetags/analytical.py
index c6ba6d6..68e0d6b 100644
--- a/analytical/templatetags/analytical.py
+++ b/analytical/templatetags/analytical.py
@@ -34,7 +34,6 @@ TAG_MODULES = [
'analytical.optimizely',
'analytical.performable',
'analytical.piwik',
- 'analytical.reinvigorate',
'analytical.snapengage',
'analytical.spring_metrics',
'analytical.uservoice',
diff --git a/analytical/templatetags/reinvigorate.py b/analytical/templatetags/reinvigorate.py
deleted file mode 100644
index 4f577bc..0000000
--- a/analytical/templatetags/reinvigorate.py
+++ /dev/null
@@ -1,81 +0,0 @@
-"""
-Reinvigorate template tags and filters.
-"""
-
-from __future__ import absolute_import
-
-import json
-import re
-
-from django.template import Library, Node, TemplateSyntaxError
-
-from analytical.utils import get_identity, is_internal_ip, disable_html, \
- get_required_setting
-
-
-TRACKING_ID_RE = re.compile(r'^[\w\d]+-[\w\d]+$')
-TRACKING_CODE = """
-
-
-"""
-
-
-register = Library()
-
-
-@register.tag
-def reinvigorate(parser, token):
- """
- Reinvigorate tracking template tag.
-
- Renders Javascript code to track page visits. You must supply
- your Reinvigorate tracking ID (as a string) in the
- ``REINVIGORATE_TRACKING_ID`` setting.
- """
- bits = token.split_contents()
- if len(bits) > 1:
- raise TemplateSyntaxError("'%s' takes no arguments" % bits[0])
- return ReinvigorateNode()
-
-
-class ReinvigorateNode(Node):
- def __init__(self):
- self.tracking_id = get_required_setting('REINVIGORATE_TRACKING_ID',
- TRACKING_ID_RE,
- "must be a string looking like XXXXX-XXXXXXXXXX")
-
- def render(self, context):
- re_vars = {}
- for dict_ in context:
- for var, val in dict_.items():
- if var.startswith('reinvigorate_'):
- re_vars[var[13:]] = val
- if 'name' not in re_vars:
- identity = get_identity(context, 'reinvigorate',
- lambda u: u.get_full_name())
- if identity is not None:
- re_vars['name'] = identity
- if 'context' not in re_vars:
- email = get_identity(context, 'reinvigorate', lambda u: u.email)
- if email is not None:
- re_vars['context'] = email
- tags = " ".join("var re_%s_tag = %s;" % (tag, json.dumps(value, sort_keys=True))
- for tag, value in re_vars.items())
-
- html = TRACKING_CODE % {'tracking_id': self.tracking_id,
- 'tags': tags}
- if is_internal_ip(context, 'REINVIGORATE'):
- html = disable_html(html, 'Reinvigorate')
- return html
-
-
-def contribute_to_analytical(add_node):
- ReinvigorateNode() # ensure properly configured
- add_node('body_bottom', ReinvigorateNode)
diff --git a/analytical/tests/test_tag_reinvigorate.py b/analytical/tests/test_tag_reinvigorate.py
deleted file mode 100644
index c23febd..0000000
--- a/analytical/tests/test_tag_reinvigorate.py
+++ /dev/null
@@ -1,67 +0,0 @@
-"""
-Tests for the Reinvigorate template tags and filters.
-"""
-
-import re
-
-from django.contrib.auth.models import User, AnonymousUser
-from django.http import HttpRequest
-from django.template import Context
-from django.test.utils import override_settings
-
-from analytical.templatetags.reinvigorate import ReinvigorateNode
-from analytical.tests.utils import TagTestCase
-from analytical.utils import AnalyticalException
-
-
-@override_settings(REINVIGORATE_TRACKING_ID='12345-abcdefghij')
-class ReinvigorateTagTestCase(TagTestCase):
- """
- Tests for the ``reinvigorate`` template tag.
- """
-
- def test_tag(self):
- r = self.render_tag('reinvigorate', 'reinvigorate')
- self.assertTrue('reinvigorate.track("12345-abcdefghij");' in r, r)
-
- def test_node(self):
- r = ReinvigorateNode().render(Context({}))
- self.assertTrue('reinvigorate.track("12345-abcdefghij");' in r, r)
-
- @override_settings(REINVIGORATE_TRACKING_ID=None)
- def test_no_tracking_id(self):
- self.assertRaises(AnalyticalException, ReinvigorateNode)
-
- @override_settings(REINVIGORATE_TRACKING_ID='123abc')
- def test_wrong_tracking_id(self):
- self.assertRaises(AnalyticalException, ReinvigorateNode)
-
- @override_settings(ANALYTICAL_AUTO_IDENTIFY=True)
- def test_identify(self):
- r = ReinvigorateNode().render(Context({'user':
- User(username='test', first_name='Test', last_name='User',
- email='test@example.com')}))
- self.assertTrue('var re_name_tag = "Test User";' in r, r)
- self.assertTrue('var re_context_tag = "test@example.com";' in r, r)
-
- @override_settings(ANALYTICAL_AUTO_IDENTIFY=True)
- def test_identify_anonymous_user(self):
- r = ReinvigorateNode().render(Context({'user': AnonymousUser()}))
- self.assertFalse('var re_name_tag = ' in r, r)
- self.assertFalse('var re_context_tag = ' in r, r)
-
- def test_tags(self):
- r = ReinvigorateNode().render(Context({'reinvigorate_var1': 'val1',
- 'reinvigorate_var2': 2}))
- self.assertTrue(re.search('var re_var1_tag = "val1";', r), r)
- self.assertTrue(re.search('var re_var2_tag = 2;', r), r)
-
- @override_settings(ANALYTICAL_INTERNAL_IPS=['1.1.1.1'])
- def test_render_internal_ip(self):
- req = HttpRequest()
- req.META['REMOTE_ADDR'] = '1.1.1.1'
- context = Context({'request': req})
- r = ReinvigorateNode().render(context)
- self.assertTrue(r.startswith(
- ''), r)
diff --git a/docs/install.rst b/docs/install.rst
index b29fec3..37db7a0 100644
--- a/docs/install.rst
+++ b/docs/install.rst
@@ -162,10 +162,6 @@ settings required to enable each service are listed here:
PIWIK_DOMAIN_PATH = 'your.piwik.server/optional/path'
PIWIK_SITE_ID = '123'
-* :doc:`Reinvigorate `::
-
- REINVIGORATE_TRACKING_ID = '12345-abcdefghij'
-
* :doc:`Woopra `::
WOOPRA_DOMAIN = 'abcde.com'
diff --git a/docs/services/reinvigorate.rst b/docs/services/reinvigorate.rst
deleted file mode 100644
index 44051d7..0000000
--- a/docs/services/reinvigorate.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-================================
-Reinvigorate -- visitor tracking
-================================
-
-Reinvigorate_ gives you real-time traffic analysis, visitor activity,
-search and referrer information and click heatmaps. A system tray /
-system status bar application for your desktop notifies you when
-interesting events occur.
-
-.. _Reinvigorate: http://www.reinvigorate.net/
-
-
-.. reinvigorate-installation:
-
-Installation
-============
-
-To start using the Reinvigorate integration, you must have installed the
-django-analytical package and have added the ``analytical`` application
-to :const:`INSTALLED_APPS` in your project :file:`settings.py` file.
-See :doc:`../install` for details.
-
-Next you need to add the Reinvigorate template tag to your templates.
-This step is only needed if you are not using the generic
-:ttag:`analytical.*` tags. If you are, skip to
-:ref:`reinvigorate-configuration`.
-
-The Reinvigorate tracking code is inserted into templates using a
-template tag. Load the :mod:`reinvigorate` template tag library and
-insert the :ttag:`reinvigorate` tag. Because every page that you want
-to track must have the tag, it is useful to add it to your base
-template. Insert the tag somewhere within the HTML body::
-
- {% load reinvigorate %}
- ...
- {% reinvigorate %}
-