Bot_Solr

Back to the bot directory

#!/usr/bin/python
# vi:si:et:sw=4:sts=4:ts=4
# -*- coding: UTF-8 -*-
# -*- Mode: Python -*-

from lib.AppdateHTTPRetriever import *

class Bot_Solr(AppdateHTTPRetriever):
  """Solr BOT"""
  
  def identify(self):
    return {
      'projectGroup': 'Solr',
      'projectName': 'Solr',
      'projectDescription': 'The Solr search server',
      'projectWebSite': 'http://lucene.apache.org/solr/'
    }
  
  def run(self):
    ##
    # Current Version
    ##
    self.sniffer.setBaseUrl('http://svn.apache.org/repos/asf/lucene/solr/tags')
    self.sniffer.setTargetPath('/')
    data = self.sniffer.setTargetPattern("""<li><a href=".*">(.*)</a></li>""").run(mode=FIND_ALL)
  
    if not data:
      self.say('Unable to retrieve version')
      return KO
    
    versionTag = data[-1][:-1]

    self.set('currentVersion', versionTag.replace('release-',''))
    
    ##
    # Release Notes
    ##
    self.set('releaseNotesUrl', "http://svn.apache.org/repos/asf/lucene/solr/tags/%s/CHANGES.txt" % versionTag)

    ##
    # Release Date
    ##
    self.sniffer.setBaseUrl('http://www.apache.org/dist/lucene/solr')
    self.sniffer.setTargetPath('/')
    data = self.sniffer.setTargetPattern("""<a href="%s/">%s/</a>(.*) .*:.* -""" % (self.get('currentVersion'), self.get('currentVersion'))).run()
    if data is not None:
      self.set('releaseDate', data.group(1).strip())

    ##
    # Download URL
    ##
    self.set('downloadUrl', "http://www.apache.org/dist/lucene/solr/%s" % self.get('currentVersion'))
    return OK

if __name__ == "__main__":
  bot = Bot_Solr()
  if bot.isRunnable():
    rc = bot.run()
    if rc is not OK:
      print "An error occurred while running this bot"
    else:
      print bot.getProperties()
      print bot.getOutput()


0.9beta7 2009/03/14 Web site Changelog