From e431d2d4e4df7d84be42983522fb330f407c7427 Mon Sep 17 00:00:00 2001 From: coderanger Date: Wed, 11 Jan 2006 17:37:57 +0000 Subject: WikinfoPlugin: Repackaging Wikinfo to use setuptools. --- Wikinfo.egg-info/trac_plugin.txt | 1 + nlwikinfo.py | 127 --------------------------------------- wikinfo/__init__.py | 2 + wikinfo/wikinfo.py | 127 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 130 insertions(+), 127 deletions(-) create mode 100644 Wikinfo.egg-info/trac_plugin.txt delete mode 100644 nlwikinfo.py create mode 100644 wikinfo/__init__.py create mode 100644 wikinfo/wikinfo.py diff --git a/Wikinfo.egg-info/trac_plugin.txt b/Wikinfo.egg-info/trac_plugin.txt new file mode 100644 index 0000000..034499a --- /dev/null +++ b/Wikinfo.egg-info/trac_plugin.txt @@ -0,0 +1 @@ +wikinfo diff --git a/nlwikinfo.py b/nlwikinfo.py deleted file mode 100644 index 167f24c..0000000 --- a/nlwikinfo.py +++ /dev/null @@ -1,127 +0,0 @@ -# -*- coding: iso8859-1 -*- -# -# Copyright (C) 2005 Jani Tiainen -# -# Trac is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. -# -# NlWikinfo is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# Author: Jani Tiainen - -from __future__ import generators -import imp -import inspect -import os.path -import time -import shutil -import re - -try: - from cStringIO import StringIO -except ImportError: - from StringIO import StringIO - -from trac.core import * -from trac.wiki.api import IWikiMacroProvider, WikiSystem - -class NLWikinfoMacro(Component): - """ - Output different information by keyword. - - Currently supported infos: - - author - Author of first version - version - Latest version of page - changed_by - Page last changed by - comment - Latest comment of changed by - changed_ts - Page last changed timestamp - """ - implements(IWikiMacroProvider) - - # IWikiMacroProvider methods - def get_macros(self): - yield 'NlWikinfo' - - def get_macro_description(self, name): - return inspect.getdoc(NLWikinfoMacro) - - def render_macro(self, req, name, content): - if content: - keywords = [arg.strip() for arg in content.split(',')] - - buf = StringIO() - - for nfo in keywords: - try: - getattr(self, '_do_%s' % nfo)(req, name, content, buf) - except AttributeError: - buf.write('INVALID: %s' % nfo) - - return buf.getvalue() - - # Private methods - def _do_author(self, req, name, content, buf): - db = self.env.get_db_cnx() - cursor = db.cursor() - - sql = "SELECT author, version FROM wiki where name = '%s' order by version limit 1" % req.hdf['wiki.page_name'] - cursor.execute(sql) - - row = cursor.fetchone() - - buf.write(row[0]) - - def _do_version(self, req, name, content, buf): - db = self.env.get_db_cnx() - cursor = db.cursor() - - sql = "SELECT max(version) FROM wiki where name = '%s'" % req.hdf['wiki.page_name'] - cursor.execute(sql) - - row = cursor.fetchone() - - buf.write(str(row[0])) - - def _do_changed_by(self, req, name, content, buf): - db = self.env.get_db_cnx() - cursor = db.cursor() - - sql = "SELECT author, version FROM wiki where name = '%s' order by version desc limit 1" % req.hdf['wiki.page_name'] - cursor.execute(sql) - - row = cursor.fetchone() - - buf.write(row[0]) - - def _do_changed_ts(self, req, name, content, buf): - db = self.env.get_db_cnx() - cursor = db.cursor() - - sql = "SELECT time, version FROM wiki where name = '%s' order by version desc limit 1" % req.hdf['wiki.page_name'] - cursor.execute(sql) - - row = cursor.fetchone() - - buf.write(time.strftime('%x', time.localtime(row[0]))) - - def _do_comment(self, req, name, content, buf): - db = self.env.get_db_cnx() - cursor = db.cursor() - - sql = "SELECT comment, version FROM wiki where name = '%s' order by version desc limit 1" % req.hdf['wiki.page_name'] - cursor.execute(sql) - - row = cursor.fetchone() - - buf.write(row[0]) - diff --git a/wikinfo/__init__.py b/wikinfo/__init__.py new file mode 100644 index 0000000..ad24a8f --- /dev/null +++ b/wikinfo/__init__.py @@ -0,0 +1,2 @@ +# Wikinfo plugin v2.0 +from wikinfo import * diff --git a/wikinfo/wikinfo.py b/wikinfo/wikinfo.py new file mode 100644 index 0000000..d1efb41 --- /dev/null +++ b/wikinfo/wikinfo.py @@ -0,0 +1,127 @@ +# -*- coding: iso8859-1 -*- +# +# Copyright (C) 2005 Jani Tiainen +# +# Trac is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# NlWikinfo is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Author: Jani Tiainen + +from __future__ import generators +import imp +import inspect +import os.path +import time +import shutil +import re + +try: + from cStringIO import StringIO +except ImportError: + from StringIO import StringIO + +from trac.core import * +from trac.wiki.api import IWikiMacroProvider, WikiSystem + +class WikinfoMacro(Component): + """ + Output different information by keyword. + + Currently supported infos: + + author - Author of first version + version - Latest version of page + changed_by - Page last changed by + comment - Latest comment of changed by + changed_ts - Page last changed timestamp + """ + implements(IWikiMacroProvider) + + # IWikiMacroProvider methods + def get_macros(self): + yield 'Wikinfo' + + def get_macro_description(self, name): + return inspect.getdoc(WikinfoMacro) + + def render_macro(self, req, name, content): + if content: + keywords = [arg.strip() for arg in content.split(',')] + + buf = StringIO() + + for nfo in keywords: + try: + getattr(self, '_do_%s' % nfo)(req, name, content, buf) + except AttributeError: + buf.write('INVALID: %s' % nfo) + + return buf.getvalue() + + # Private methods + def _do_author(self, req, name, content, buf): + db = self.env.get_db_cnx() + cursor = db.cursor() + + sql = "SELECT author, version FROM wiki where name = '%s' order by version limit 1" % req.hdf['wiki.page_name'] + cursor.execute(sql) + + row = cursor.fetchone() + + buf.write(row[0]) + + def _do_version(self, req, name, content, buf): + db = self.env.get_db_cnx() + cursor = db.cursor() + + sql = "SELECT max(version) FROM wiki where name = '%s'" % req.hdf['wiki.page_name'] + cursor.execute(sql) + + row = cursor.fetchone() + + buf.write(str(row[0])) + + def _do_changed_by(self, req, name, content, buf): + db = self.env.get_db_cnx() + cursor = db.cursor() + + sql = "SELECT author, version FROM wiki where name = '%s' order by version desc limit 1" % req.hdf['wiki.page_name'] + cursor.execute(sql) + + row = cursor.fetchone() + + buf.write(row[0]) + + def _do_changed_ts(self, req, name, content, buf): + db = self.env.get_db_cnx() + cursor = db.cursor() + + sql = "SELECT time, version FROM wiki where name = '%s' order by version desc limit 1" % req.hdf['wiki.page_name'] + cursor.execute(sql) + + row = cursor.fetchone() + + buf.write(time.strftime('%x', time.localtime(row[0]))) + + def _do_comment(self, req, name, content, buf): + db = self.env.get_db_cnx() + cursor = db.cursor() + + sql = "SELECT comment, version FROM wiki where name = '%s' order by version desc limit 1" % req.hdf['wiki.page_name'] + cursor.execute(sql) + + row = cursor.fetchone() + + buf.write(row[0]) + -- cgit v1.2.3