aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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]