diff options
author | 2008-06-06 00:15:36 +0000 | |
---|---|---|
committer | 2008-06-06 00:15:36 +0000 | |
commit | 747a3ca40c41045c2584126d8e31cd4f53fe55aa (patch) | |
tree | e6043fbcdb153fca975374a833315e88673390dd /gentoo-data.rb | |
parent | Group like functions. (diff) | |
download | rbot-gentoo-747a3ca40c41045c2584126d8e31cd4f53fe55aa.tar.gz rbot-gentoo-747a3ca40c41045c2584126d8e31cd4f53fe55aa.tar.bz2 rbot-gentoo-747a3ca40c41045c2584126d8e31cd4f53fe55aa.zip |
Split out the package name validation for seperate caching.
Diffstat (limited to 'gentoo-data.rb')
-rw-r--r-- | gentoo-data.rb | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/gentoo-data.rb b/gentoo-data.rb index d48f1fd..4f94773 100644 --- a/gentoo-data.rb +++ b/gentoo-data.rb @@ -137,23 +137,34 @@ class GentooPlugin < Plugin m.reply 'TODO' end + def get_pkgindex(m) + now = Time.now.tv_sec + #m.reply "In validate_package" + @@cached['pkgindex'] = [0, nil] unless + unless @@cached.key?('pkgindex') and @@cached['pkgindex'][0] > now-600 + #m.reply "Fetch #{@@cached['pkgindex'][0]} > #{now-600}" + pkgindex_a = @bot.httputil.get("http://tinderbox.dev.gentoo.org/misc/qsearch.txt").split("\n") + pkgindex = {} + pkgindex_a.each do |pkg| + cp, desc = pkg.split(' ', 2) + pkgindex[cp] = desc + end + @@cached['pkgindex'] = [now, pkgindex] + else + #m.reply "Cache #{@@cached['pkgindex'][0]} > #{now-600}" + pkgindex = @@cached['pkgindex'][1] + end + return pkgindex + end + def validate_package(m, pn) begin - now = Time.now.tv_sec - m.reply "In validate_package" - @@cached['pkgindex'] = [0, nil] unless - unless @@cached.key?('pkgindex') and @@cached['pkgindex'][0] > now-600 - m.reply "Fetch #{@@cached['pkgindex'][0]} > #{now-600}" - pkgindex = @bot.httputil.get("http://tinderbox.x86.dev.gentoo.org/misc/rindex/.rindex").split("\n") - @@cached['pkgindex'] = [now, pkgindex] - else - m.reply "Cache #{@@cached['pkgindex'][0]} > #{now-600}" - pkgindex = @@cached['pkgindex'][1] - end + pkgindex = get_pkgindex(m) + + rx = (pn =~ /\//) ? /^#{pn}$/ : /\/#{pn}$/ - rx = (pn =~ /\//) ? /^#{pn}/ : /\/#{pn}/ + packages = pkgindex.keys.grep(rx) - packages = pkgindex.grep(rx) case packages.length when 1 return packages[0] |