From dd78e0eb6fa115c67e5f0e773229fbfea3762c57 Mon Sep 17 00:00:00 2001 From: hrcerqueira Date: Thu, 18 Feb 2010 00:32:03 +0000 Subject: moved some more stuff and removed a couple of unused files. --- .idea/workspace.xml | 234 ++++++++++++++++-------------- forum/__init__.py | 2 +- forum/diff.py | 66 --------- forum/middleware/anon_user.py | 2 +- forum/user_messages/__init__.py | 36 +++++ forum/user_messages/context_processors.py | 52 +++++++ forum/utils/diff.py | 66 +++++++++ forum/views/readers.py | 2 +- settings.py | 3 +- user_messages/__init__.py | 36 ----- user_messages/context_processors.py | 52 ------- user_messages/models.py | 3 - 12 files changed, 283 insertions(+), 271 deletions(-) delete mode 100644 forum/diff.py create mode 100644 forum/user_messages/__init__.py create mode 100644 forum/user_messages/context_processors.py create mode 100644 forum/utils/diff.py delete mode 100644 user_messages/__init__.py delete mode 100644 user_messages/context_processors.py delete mode 100644 user_messages/models.py diff --git a/.idea/workspace.xml b/.idea/workspace.xml index d0f587b1..58024155 100755 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -17,64 +17,50 @@ + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + + + - - + + - + + + + - + + + + + + - @@ -136,91 +122,82 @@ - - - - - - - - - - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + @@ -236,20 +213,22 @@ @@ -338,7 +317,25 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/forum/__init__.py b/forum/__init__.py index a221a3ad..85cd5d26 100644 --- a/forum/__init__.py +++ b/forum/__init__.py @@ -1 +1 @@ -__all__ = ['admin','auth','const','diff','feed','forms','managers','models','sitemap','urls','views'] +__all__ = ['admin','auth','const','feed','forms','managers','models','sitemap','urls','views'] diff --git a/forum/diff.py b/forum/diff.py deleted file mode 100644 index d741d788..00000000 --- a/forum/diff.py +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/python2.2 -"""HTML Diff: http://www.aaronsw.com/2002/diff -Rough code, badly documented. Send me comments and patches.""" - -__author__ = 'Aaron Swartz ' -__copyright__ = '(C) 2003 Aaron Swartz. GNU GPL 2.' -__version__ = '0.22' - -import difflib, string - -def isTag(x): return x[0] == "<" and x[-1] == ">" - -def textDiff(a, b): - """Takes in strings a and b and returns a human-readable HTML diff.""" - - out = [] - a, b = html2list(a), html2list(b) - s = difflib.SequenceMatcher(None, a, b) - for e in s.get_opcodes(): - if e[0] == "replace": - # @@ need to do something more complicated here - # call textDiff but not for html, but for some html... ugh - # gonna cop-out for now - out.append(''+''.join(a[e[1]:e[2]]) + ''+''.join(b[e[3]:e[4]])+"") - elif e[0] == "delete": - out.append(''+ ''.join(a[e[1]:e[2]]) + "") - elif e[0] == "insert": - out.append(''+''.join(b[e[3]:e[4]]) + "") - elif e[0] == "equal": - out.append(''.join(b[e[3]:e[4]])) - else: - raise "Um, something's broken. I didn't expect a '" + `e[0]` + "'." - return ''.join(out) - -def html2list(x, b=0): - mode = 'char' - cur = '' - out = [] - for c in x: - if mode == 'tag': - if c == '>': - if b: cur += ']' - else: cur += c - out.append(cur); cur = ''; mode = 'char' - else: cur += c - elif mode == 'char': - if c == '<': - out.append(cur) - if b: cur = '[' - else: cur = c - mode = 'tag' - elif c in string.whitespace: out.append(cur+c); cur = '' - else: cur += c - out.append(cur) - return filter(lambda x: x is not '', out) - -if __name__ == '__main__': - import sys - try: - a, b = sys.argv[1:3] - except ValueError: - print "htmldiff: highlight the differences between two html files" - print "usage: " + sys.argv[0] + " a b" - sys.exit(1) - print textDiff(open(a).read(), open(b).read()) - diff --git a/forum/middleware/anon_user.py b/forum/middleware/anon_user.py index 5295d9c0..e05e6f33 100644 --- a/forum/middleware/anon_user.py +++ b/forum/middleware/anon_user.py @@ -1,7 +1,7 @@ from django.http import HttpResponseRedirect from forum.utils.forms import get_next_url from django.utils.translation import ugettext as _ -from user_messages import create_message, get_and_delete_messages +from forum.user_messages import create_message, get_and_delete_messages from django.conf import settings import logging diff --git a/forum/user_messages/__init__.py b/forum/user_messages/__init__.py new file mode 100644 index 00000000..0136c888 --- /dev/null +++ b/forum/user_messages/__init__.py @@ -0,0 +1,36 @@ +""" +Lightweight session-based messaging system. + +Time-stamp: <2009-03-10 19:22:29 carljm __init__.py> + +""" +VERSION = (0, 1, 'pre') + +def create_message (request, message): + """ + Create a message in the current session. + + """ + assert hasattr(request, 'session'), "django-session-messages requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." + + try: + request.session['messages'].append(message) + except KeyError: + request.session['messages'] = [message] + +def get_and_delete_messages (request, include_auth=False): + """ + Get and delete all messages for current session. + + Optionally also fetches user messages from django.contrib.auth. + + """ + assert hasattr(request, 'session'), "django-session-messages requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." + + messages = request.session.pop('messages', []) + + if include_auth and request.user.is_authenticated(): + messages.extend(request.user.get_and_delete_messages()) + + return messages + diff --git a/forum/user_messages/context_processors.py b/forum/user_messages/context_processors.py new file mode 100644 index 00000000..2bf26269 --- /dev/null +++ b/forum/user_messages/context_processors.py @@ -0,0 +1,52 @@ +""" +Context processor for lightweight session messages. + +Time-stamp: <2008-07-19 23:16:19 carljm context_processors.py> + +""" +from django.utils.encoding import StrAndUnicode + +from forum.user_messages import get_and_delete_messages + +def user_messages (request): + """ + Returns session messages for the current session. + + """ + messages = request.user.get_and_delete_messages() + #if request.user.is_authenticated(): + #else: + # messages = LazyMessages(request) + return { 'user_messages': messages } + +class LazyMessages (StrAndUnicode): + """ + Lazy message container, so messages aren't actually retrieved from + session and deleted until the template asks for them. + + """ + def __init__(self, request): + self.request = request + + def __iter__(self): + return iter(self.messages) + + def __len__(self): + return len(self.messages) + + def __nonzero__(self): + return bool(self.messages) + + def __unicode__(self): + return unicode(self.messages) + + def __getitem__(self, *args, **kwargs): + return self.messages.__getitem__(*args, **kwargs) + + def _get_messages(self): + if hasattr(self, '_messages'): + return self._messages + self._messages = get_and_delete_messages(self.request) + return self._messages + messages = property(_get_messages) + diff --git a/forum/utils/diff.py b/forum/utils/diff.py new file mode 100644 index 00000000..d741d788 --- /dev/null +++ b/forum/utils/diff.py @@ -0,0 +1,66 @@ +#!/usr/bin/python2.2 +"""HTML Diff: http://www.aaronsw.com/2002/diff +Rough code, badly documented. Send me comments and patches.""" + +__author__ = 'Aaron Swartz ' +__copyright__ = '(C) 2003 Aaron Swartz. GNU GPL 2.' +__version__ = '0.22' + +import difflib, string + +def isTag(x): return x[0] == "<" and x[-1] == ">" + +def textDiff(a, b): + """Takes in strings a and b and returns a human-readable HTML diff.""" + + out = [] + a, b = html2list(a), html2list(b) + s = difflib.SequenceMatcher(None, a, b) + for e in s.get_opcodes(): + if e[0] == "replace": + # @@ need to do something more complicated here + # call textDiff but not for html, but for some html... ugh + # gonna cop-out for now + out.append(''+''.join(a[e[1]:e[2]]) + ''+''.join(b[e[3]:e[4]])+"") + elif e[0] == "delete": + out.append(''+ ''.join(a[e[1]:e[2]]) + "") + elif e[0] == "insert": + out.append(''+''.join(b[e[3]:e[4]]) + "") + elif e[0] == "equal": + out.append(''.join(b[e[3]:e[4]])) + else: + raise "Um, something's broken. I didn't expect a '" + `e[0]` + "'." + return ''.join(out) + +def html2list(x, b=0): + mode = 'char' + cur = '' + out = [] + for c in x: + if mode == 'tag': + if c == '>': + if b: cur += ']' + else: cur += c + out.append(cur); cur = ''; mode = 'char' + else: cur += c + elif mode == 'char': + if c == '<': + out.append(cur) + if b: cur = '[' + else: cur = c + mode = 'tag' + elif c in string.whitespace: out.append(cur+c); cur = '' + else: cur += c + out.append(cur) + return filter(lambda x: x is not '', out) + +if __name__ == '__main__': + import sys + try: + a, b = sys.argv[1:3] + except ValueError: + print "htmldiff: highlight the differences between two html files" + print "usage: " + sys.argv[0] + " a b" + sys.exit(1) + print textDiff(open(a).read(), open(b).read()) + diff --git a/forum/views/readers.py b/forum/views/readers.py index 28140d78..72378218 100644 --- a/forum/views/readers.py +++ b/forum/views/readers.py @@ -18,7 +18,7 @@ from django.utils.datastructures import SortedDict from forum.utils.html import sanitize_html from markdown2 import Markdown #from lxml.html.diff import htmldiff -from forum.diff import textDiff as htmldiff +from forum.utils.diff import textDiff as htmldiff from forum.forms import * from forum.models import * from forum.auth import * diff --git a/settings.py b/settings.py index 426a12ff..cc6f6460 100755 --- a/settings.py +++ b/settings.py @@ -36,7 +36,7 @@ TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.request', 'context.application_settings', #'django.core.context_processors.i18n', - 'user_messages.context_processors.user_messages',#must be before auth + 'forum.user_messages.context_processors.user_messages',#must be before auth 'django.core.context_processors.auth', #this is required for admin ) @@ -70,7 +70,6 @@ INSTALLED_APPS = [ 'forum', 'django_authopenid', 'debug_toolbar' , - 'user_messages', ] AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend',] diff --git a/user_messages/__init__.py b/user_messages/__init__.py deleted file mode 100644 index 0136c888..00000000 --- a/user_messages/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -""" -Lightweight session-based messaging system. - -Time-stamp: <2009-03-10 19:22:29 carljm __init__.py> - -""" -VERSION = (0, 1, 'pre') - -def create_message (request, message): - """ - Create a message in the current session. - - """ - assert hasattr(request, 'session'), "django-session-messages requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." - - try: - request.session['messages'].append(message) - except KeyError: - request.session['messages'] = [message] - -def get_and_delete_messages (request, include_auth=False): - """ - Get and delete all messages for current session. - - Optionally also fetches user messages from django.contrib.auth. - - """ - assert hasattr(request, 'session'), "django-session-messages requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." - - messages = request.session.pop('messages', []) - - if include_auth and request.user.is_authenticated(): - messages.extend(request.user.get_and_delete_messages()) - - return messages - diff --git a/user_messages/context_processors.py b/user_messages/context_processors.py deleted file mode 100644 index 894f5801..00000000 --- a/user_messages/context_processors.py +++ /dev/null @@ -1,52 +0,0 @@ -""" -Context processor for lightweight session messages. - -Time-stamp: <2008-07-19 23:16:19 carljm context_processors.py> - -""" -from django.utils.encoding import StrAndUnicode - -from user_messages import get_and_delete_messages - -def user_messages (request): - """ - Returns session messages for the current session. - - """ - messages = request.user.get_and_delete_messages() - #if request.user.is_authenticated(): - #else: - # messages = LazyMessages(request) - return { 'user_messages': messages } - -class LazyMessages (StrAndUnicode): - """ - Lazy message container, so messages aren't actually retrieved from - session and deleted until the template asks for them. - - """ - def __init__(self, request): - self.request = request - - def __iter__(self): - return iter(self.messages) - - def __len__(self): - return len(self.messages) - - def __nonzero__(self): - return bool(self.messages) - - def __unicode__(self): - return unicode(self.messages) - - def __getitem__(self, *args, **kwargs): - return self.messages.__getitem__(*args, **kwargs) - - def _get_messages(self): - if hasattr(self, '_messages'): - return self._messages - self._messages = get_and_delete_messages(self.request) - return self._messages - messages = property(_get_messages) - diff --git a/user_messages/models.py b/user_messages/models.py deleted file mode 100644 index b67ead6d..00000000 --- a/user_messages/models.py +++ /dev/null @@ -1,3 +0,0 @@ -""" -blank models.py -""" -- cgit v1.2.3-1-g7c22