From 8042a33a8e1b71d614fccc60c9dde2bd24a89493 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Sat, 3 Mar 2012 15:30:08 +0000 Subject: [PATCH] Initial import --- .gitignore | 2 ++ eveigb/__init__.py | 10 ++++++++ eveigb/context_processors.py | 6 +++++ eveigb/middleware.py | 42 +++++++++++++++++++++++++++++++++ eveigb/templatetags/__init__.py | 0 eveigb/templatetags/igb.py | 3 +++ eveigb/tests.py | 16 +++++++++++++ setup.py | 15 ++++++++++++ 8 files changed, 94 insertions(+) create mode 100644 .gitignore create mode 100644 eveigb/__init__.py create mode 100644 eveigb/context_processors.py create mode 100644 eveigb/middleware.py create mode 100644 eveigb/templatetags/__init__.py create mode 100644 eveigb/templatetags/igb.py create mode 100644 eveigb/tests.py create mode 100755 setup.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..27ffc2f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.pyc +build diff --git a/eveigb/__init__.py b/eveigb/__init__.py new file mode 100644 index 0000000..9b36bb7 --- /dev/null +++ b/eveigb/__init__.py @@ -0,0 +1,10 @@ +VERSION = (0, 1) + +# Dynamically calculate the version based on VERSION tuple +if len(VERSION)>2 and VERSION[2] is not None: + str_version = "%d.%d_%s" % VERSION[:3] +else: + str_version = "%d.%d" % VERSION[:2] + +__version__ = str_version +VERSION = (0, 1) diff --git a/eveigb/context_processors.py b/eveigb/context_processors.py new file mode 100644 index 0000000..ba5ca46 --- /dev/null +++ b/eveigb/context_processors.py @@ -0,0 +1,6 @@ +def igb(request): + return { + 'is_igb': request.is_igb, + 'is_igb_trusted': request.is_igb_trusted, + } + diff --git a/eveigb/middleware.py b/eveigb/middleware.py new file mode 100644 index 0000000..f97e6d7 --- /dev/null +++ b/eveigb/middleware.py @@ -0,0 +1,42 @@ +class IGBMiddleware(object): + """ + Middleware to detect the EVE IGB + """ + + def process_request(self, request): + + request.is_igb = False + request.is_igb_trusted = False + + header_map = [ + ('HTTP_EVE_SERVERIP', 'eve_server_ip'), + ('HTTP_EVE_CHARNAME', 'eve_charname'), + ('HTTP_EVE_CHARID', 'eve_charid'), + ('HTTP_EVE_CORPNAME', 'eve_corpname'), + ('HTTP_EVE_CORPID', 'eve_corpid'), + ('HTTP_EVE_ALLIANCENAME', 'eve_alliancename'), + ('HTTP_EVE_ALLIANCEID', 'eve_allianceid'), + ('HTTP_EVE_REGIONNAME', 'eve_regionid'), + ('HTTP_EVE_CONSTELLATIONNAME', 'eve_constellationname'), + ('HTTP_EVE_SOLARSYSTEMNAME', 'eve_systemname'), + ('HTTP_EVE_STATIONNAME,' 'eve_stationname'), + ('HTTP_EVE_STATIONID,' 'eve_stationid'), + ('HTTP_EVE_CORPROLE,' 'eve_corprole'), + ] + + if 'EVE-IGB' in request.META.get('HTTP_USER_AGENT', ''): + request.is_igb = True + if request.META.get('HTTP_EVE_TRUSTED', 'No') == 'Yes': + request.is_igb_trusted = True + + for header, map in header_map: + if request.META.get(header, None): + setattr(request, map, request.META.get(header, None)) + + +def igb(request): + return { + 'is_igb': request.is_igb, + 'is_igb_trusted': request.is_igb_trusted, + } + diff --git a/eveigb/templatetags/__init__.py b/eveigb/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/eveigb/templatetags/igb.py b/eveigb/templatetags/igb.py new file mode 100644 index 0000000..4bd3b15 --- /dev/null +++ b/eveigb/templatetags/igb.py @@ -0,0 +1,3 @@ +from django import template + +register = template.Library() diff --git a/eveigb/tests.py b/eveigb/tests.py new file mode 100644 index 0000000..501deb7 --- /dev/null +++ b/eveigb/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..f3bbc77 --- /dev/null +++ b/setup.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python + +from distutils.core import setup + +from eveigb import str_version + +setup(name = "django-eveigb", + version = str_version, + description = "Django library/application for making use of EVE's In-Game Browser", + author = "Andrew Williams", + author_email = "matalok@pleaseignore.com", + url = "", + keywords = "eveonline django igb", + packages = ['eveigb',], +)