X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/82b5933a517aaf239dbb577190e067f1d703bbc3..5b657c3e3fa3cf2724560a7e38fa59efa61558ad:/apps/api/handlers/library_handlers.py diff --git a/apps/api/handlers/library_handlers.py b/apps/api/handlers/library_handlers.py index 46038771..f97ff6ca 100755 --- a/apps/api/handlers/library_handlers.py +++ b/apps/api/handlers/library_handlers.py @@ -31,6 +31,10 @@ import api.response as response from api.utils import validate_form, hglibrary, natural_order from api.models import PartCache, PullRequest +from pygments import highlight +from pygments.lexers import DiffLexer +from pygments.formatters import HtmlFormatter + # import settings @@ -205,19 +209,23 @@ class DiffHandler(BaseHandler): allowed_methods = ('GET',) @hglibrary - def read(self, request, source_revision, target_revision, lib): - '''Return diff between source_revision and target_revision)''' - source_document = lib.document_for_revision(source_revision) - target_document = lib.document_for_revision(target_revision) - print source_document, - print target_document + def read(self, request, docid, lib): + '''Return diff between source_revision and target_revision)''' + revision = request.GET.get('revision') + if not revision: + return '' + source_document = lib.document(docid) + target_document = lib.document_for_revision(revision) + print source_document, target_document + diff = difflib.unified_diff( source_document.data('xml').splitlines(True), target_document.data('xml').splitlines(True), 'source', 'target') - return ''.join(list(diff)) + s = ''.join(list(diff)) + return highlight(s, DiffLexer(), HtmlFormatter(cssclass="pastie")) #