{ "info": { "author": "Joe Willrich Lutalo", "author_email": "joewillrich@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: Log Analysis", "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Page Counters", "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware", "Topic :: System :: Monitoring", "Topic :: Utilities" ], "description": "Welcome\n*******\n\nDjango visits is to be used as a hit-counter application for Django-powered web apps.\n\nYou have two ways of how to use this app; first is to count requested urls (CounterMiddleware), the second is to count object visits (aka models)\n\nConfiguration\n*************\n\nYou settings file should contain the following settings \n\n* MIN_TIME_BETWEEN_VISITS: (number) the minimum allowed time between visits for the user to update counter\n* IGNORE_URLS: (list) urls to ignore e.g. static urls etc. **NOTE** : only ignores by not incrementing the hit-counter for the request whose META.PATH_INFO starts with any string in this list. The visit is still logged though. Same thing happnes for IGNORE_USER_AGENTS and BOTS_USER_AGENTS settings below.\n* IGNORE_USER_AGENTS: (list) this is used to define what user agents to ignore. Regexes are supported\n* BOTS_USER_AGENTS: (list) this is used to define whether user is real or bot is user by BotVisitorMiddleware. Regexes are supported\n* REQUEST_FIELDS_FOR_HASH: (list) used to generate unique identifier for visitor\n* URI_WITH_GET_PARAMS: (bool) use get params to identify diferents uris\n* VISITS_OBJECTS_AS_COUNTERS: (bool) enable or disable the behavior of visits objects as counters (on False, every diferent visits is counted in a diferent object)\n\nBOTS_USER_AGENTS by default will have the following values\n\n::\n\n [\n \"Teoma\", \"alexa\", \"froogle\", \"Gigabot\", \"inktomi\", \"looksmart\", \"URL_Spider_SQL\", \"Firefly\",\n \"NationalDirectory\", \"Ask Jeeves\", \"TECNOSEEK\", \"InfoSeek\", \"WebFindBot\", \"girafabot\", \"crawler\",\n \"www.galaxy.com\", \"Googlebot\", \"Googlebot/2.1\", \"Google\", \"Webmaster\", \"Scooter\", \"James Bond\",\n \"Slurp\", \"msnbot\", \"appie\", \"FAST\", \"WebBug\", \"Spade\", \"ZyBorg\", \"rabaz\", \"Baiduspider\",\n \"Feedfetcher-Google\", \"TechnoratiSnoop\", \"Rankivabot\", \"Mediapartners-Google\", \"Sogou web spider\",\n \"WebAlta Crawler\", \"MJ12bot\", \"Yandex/\", \"YaDirectBot\", \"StackRambler\", \"DotBot\", \"dotbot\"\n ]\n\nUsage\n*****\n\n* Add visits to INSTALLED_APPS\n\n::\n\n\tINSTALLED_APPS = (\n\t # ...\n\t \"visits\",\n\t)\n\n* If you want to filter some type of user agents you can define IGNORE_USER_AGENTS in your settings.py\n\n::\n\n IGNORE_USER_AGENTS = [\"Wget/\", \"curl/\"]\n\n\n* If you want to filter bots from real users then in MIDDLEWARE_CLASSES set \n\n::\n\n\tMIDDLEWARE_CLASSES = (\n\t # ...\n\t \"visits.middleware.BotVisitorMiddleware\",\n\t)\n\n* If you want to count visits automatically per url the you should add CounterMiddleware to MIDDLEWARE_CLASSES\n\n::\n\n\tMIDDLEWARE_CLASSES = (\n\t # ...\n\t \"visits.middleware.CounterMiddleware\",\n\t)\n\n* If you want to count visits automatically per url with get params you should add URI_WITH_GET_PARAMS=True to your settings.py\n\n* If you want count url visit manually you can do it the way below\n\n::\n\n\tfrom visits.models import Visits\n\n\tdef some_object_view(request, pk):\n\t Visit.objects.add_uri_visit(request, request.META[\"PATH_INFO\"], APP_LABEL)\n\t #...\n\t #...\n\n* If you want count visits per object then it's similar to the example above\n\n::\n\n\tfrom visits.models import Visits\n\n\tdef some_object_view(request, pk):\n\t some_obj = get_object_or_404(SOME_MODEL, pk=pk)\n\t Visit.objects.add_object_visit(request, obj=some_obj)\n\t #...\n\t #...\n\n* From inside of a template you can get\n\n * object visits using get_visits\n\n * url visits using get_visits templatetag\n\n::\n\n\t{% load visits_tags %}\n\n\t{% get_visits some_model_instance as visits %}\n\t{% get_visits some_request_instance as visits %}\n\t{% get_visits some_uri_regex as visits %}\n\nNote: to get uri visits using get_visits templatetag you should add the following to TEMPLATE_CONTEXT_PROCESSORS\n\n::\n\n TEMPLATE_CONTEXT_PROCESSORS = (\n #...\n \"visits.context_processors.request_meta\",\n )\n\nHave fun!", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/jespino/django-visits", "keywords": "django,visit,counter,visitors", "license": "LGPL", "maintainer": null, "maintainer_email": null, "name": "django-visits", "package_url": "https://pypi.org/project/django-visits/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-visits/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/jespino/django-visits" }, "release_url": "https://pypi.org/project/django-visits/0.1.6/", "requires_dist": null, "requires_python": null, "summary": "Visit counter for Django", "version": "0.1.6" }, "last_serial": 1125974, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "3dafe237f04800adac56318d03044019", "sha256": "c76135b15db9ce1d8a8d55f2a4b62818d3dda91ee5acceb29dc2463c01a91df8" }, "downloads": -1, "filename": "django-visits-0.1.tar.gz", "has_sig": false, "md5_digest": "3dafe237f04800adac56318d03044019", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4537, "upload_time": "2011-12-15T09:56:44", "url": "https://files.pythonhosted.org/packages/4a/29/162701d929e8c6b8555ee041b7a524ff0338d343145a4656bb39880ec3e4/django-visits-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "8966c2ec3e395feb6d379e151b6080e5", "sha256": "7f198909b3ba0e13b92814558480a28a59fbb486c5cff7813fc99ab1f586a9dd" }, "downloads": -1, "filename": "django-visits-0.1.1.tar.gz", "has_sig": false, "md5_digest": "8966c2ec3e395feb6d379e151b6080e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4516, "upload_time": "2011-12-15T10:05:18", "url": "https://files.pythonhosted.org/packages/d5/58/f80574ff2939888405b7aab6999508b3c55d256c68a7b029f30a080fc71a/django-visits-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "525a6d94fc804e347cdb53b4cb1a9ea9", "sha256": "a3eb3ad9879047ed0fffd5232a6c4dc9f5d756a7a7659eadb004603dad6205cb" }, "downloads": -1, "filename": "django-visits-0.1.2.tar.gz", "has_sig": false, "md5_digest": "525a6d94fc804e347cdb53b4cb1a9ea9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4890, "upload_time": "2011-12-16T08:17:26", "url": "https://files.pythonhosted.org/packages/bb/64/446b720f7556f46c2a049dec23dfbba54e7d9d3f943f7d3861ad70c185d9/django-visits-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "abf2ffe8ce7a20d9a4805e396b90bdbf", "sha256": "c5afb67c01ed6f9115eeaa64b748e0ed40dbd4500e9ac702f25f230285cd54f6" }, "downloads": -1, "filename": "django-visits-0.1.3.tar.gz", "has_sig": false, "md5_digest": "abf2ffe8ce7a20d9a4805e396b90bdbf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5020, "upload_time": "2011-12-16T20:40:46", "url": "https://files.pythonhosted.org/packages/f2/48/1d92e72d502f80fab3a48dd55d13961b37cd03c93acb3a754fe875eb614b/django-visits-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "3ba8c96bd70af46ab0a63d9252f8f9d5", "sha256": "de774c1485797fd31ff4686d80f76573305bf2fdc42f5c538669870f41be1533" }, "downloads": -1, "filename": "django-visits-0.1.4.tar.gz", "has_sig": false, "md5_digest": "3ba8c96bd70af46ab0a63d9252f8f9d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5928, "upload_time": "2012-01-05T14:53:52", "url": "https://files.pythonhosted.org/packages/53/bd/c23cd58a552adf1df37479e1da36f6df8d9d5ca5cf643cb7a41362efcaa0/django-visits-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "15752bcc2890a194561f73a9fa141790", "sha256": "d370cc2764083355c89d2c8e3eba2678ccaea8f7c4c42a008623b611014367d2" }, "downloads": -1, "filename": "django-visits-0.1.5.tar.gz", "has_sig": false, "md5_digest": "15752bcc2890a194561f73a9fa141790", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7013, "upload_time": "2014-06-03T06:58:20", "url": "https://files.pythonhosted.org/packages/d9/54/26baee214ff2f9b1fd0ab8ae3609aa9aa9e1c85c68f1336a8b0c6d16db3c/django-visits-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "e96d97fe09773a68dd91149b1fde4896", "sha256": "2204928e2a44e39685f9fccc362d4bef27505bfc47489869c400d97d9b5a265a" }, "downloads": -1, "filename": "django-visits-0.1.6.tar.gz", "has_sig": false, "md5_digest": "e96d97fe09773a68dd91149b1fde4896", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7313, "upload_time": "2014-06-16T03:01:51", "url": "https://files.pythonhosted.org/packages/be/41/804da5454fc2668ade6ec318fa87183876eb0811730e71e57d0a71cec828/django-visits-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e96d97fe09773a68dd91149b1fde4896", "sha256": "2204928e2a44e39685f9fccc362d4bef27505bfc47489869c400d97d9b5a265a" }, "downloads": -1, "filename": "django-visits-0.1.6.tar.gz", "has_sig": false, "md5_digest": "e96d97fe09773a68dd91149b1fde4896", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7313, "upload_time": "2014-06-16T03:01:51", "url": "https://files.pythonhosted.org/packages/be/41/804da5454fc2668ade6ec318fa87183876eb0811730e71e57d0a71cec828/django-visits-0.1.6.tar.gz" } ] }