[cmsiki-svn] SF.net SVN: cmsiki: [26] trunk/cmsiki/cmsikireplace.py
Status: Pre-Alpha
Brought to you by:
cnu
From: <cn...@us...> - 2007-04-15 19:31:00
|
Revision: 26 http://cmsiki.svn.sourceforge.net/cmsiki/?rev=26&view=rev Author: cnu Date: 2007-04-15 12:30:58 -0700 (Sun, 15 Apr 2007) Log Message: ----------- Added getRecentChanges function to cmsikireplace module Modified Paths: -------------- trunk/cmsiki/cmsikireplace.py Modified: trunk/cmsiki/cmsikireplace.py =================================================================== --- trunk/cmsiki/cmsikireplace.py 2007-04-15 16:59:49 UTC (rev 25) +++ trunk/cmsiki/cmsikireplace.py 2007-04-15 19:30:58 UTC (rev 26) @@ -181,6 +181,47 @@ return str(page_string_info) +def getRecentChanges(tag): + '''Returns a list of all the changed pages till the given date.''' + date_pattern = re.compile(r':\d+@') + wiki_pattern = re.compile('@[a-zA-Z]+\]') + date_match = date_pattern.findall(tag)[0] + date = date_match[1:-1] + wiki_match = wiki_pattern.findall(tag)[0] + wiki_name = wiki_match[1:-1] + try: + wiki = wikirpc(wiki_name) + except WikiNameError: + return '' + srcwiki = xmlrpclib.ServerProxy(wiki['xmlrpc']) + try: + recent_changes = srcwiki.getRecentChanges(date) + table_begin = ''' + <table class="recentchanges"> + <tr> + <th>Name</th> + <th>Author</th> + <th>Version</th> + <th>Last Modified</th> + </tr>''' + except httplib.socket.error: + recent_changes = '' + table_begin = '' + row_pages = [] + for page in recent_changes: + row = '''<tr> + <td>%s</td> + <td>%s</td> + <td>%s</td> + <td>%s</td> + </tr>''' %(page['name'], page['author'], page['version'], page['lastModified']) + row_pages.append(row) + table_middle = "\n".join(row_pages) + table_end = "</table>" + table = table_begin + table_middle + table_end + return table + + def getLink(tag): '''Returns the URL of the page in a particular wiki.''' page_pattern = re.compile(':\w+@') @@ -197,6 +238,8 @@ return "<a href=\"%s\">%s</a>" %(wikiurl, page_name) + + dict_func = {'getPage':getPage, 'getPageHTML':getPageHTML, 'getPageInfo':getPageInfo, @@ -204,7 +247,7 @@ 'getPageVersion':getPageVersion, 'getPageInfoVersion':getPageInfoVersion, 'getPageHTMLVersion':getPageHTMLVersion, - + 'getRecentChanges':getRecentChanges, } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |