aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2008-06-06 00:15:36 +0000
committerRobin H. Johnson <robbat2@gentoo.org>2008-06-06 00:15:36 +0000
commit747a3ca40c41045c2584126d8e31cd4f53fe55aa (patch)
treee6043fbcdb153fca975374a833315e88673390dd /gentoo-data.rb
parentGroup like functions. (diff)
downloadrbot-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.rb37
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]