Introduction
Introduction Statistics Contact Development Disclaimer Help
Tweaks, automatch is still in development, but working (if slow) - warvox - VoI…
Log
Files
Refs
README
---
commit 2af809ed64362553e2fd7b309fd8da3490351bb6
parent dbcda197e69a49e32e286c87c4b9516d9718da20
Author: HD Moore <[email protected]>
Date: Fri, 13 Feb 2009 14:35:18 +0000
Tweaks, automatch is still in development, but working (if slow)
Diffstat:
M bin/automatch.rb | 76 +++++++++++++++++++++--------…
M lib/warvox/db.rb | 19 +++++--------------
2 files changed, 56 insertions(+), 39 deletions(-)
---
diff --git a/bin/automatch.rb b/bin/automatch.rb
@@ -15,37 +15,63 @@ require 'warvox'
# Script
#
-names = []
-inp = ARGV.shift() || exit
-fd = File.open(inp, "r")
-fd.each_line do |line|
- data = line.strip.split(/\s+/)
- if(data.shift =~ /(\d+)/)
- if(data.length < 20)
- puts "[*] Skipping carrier #{$1}..."
- next
- end
- names << $1
- end
+def usage
+ $stderr.puts "#{$0} [warvox.db] <db-threshold>"
+ exit
+end
+
+threads = 2
+inp = ARGV.shift || usage
+thresh = (ARGV.shift() || 800).to_i
+wdb = WarVOX::DB.new(inp, thresh)
+
+# Scrub the carriers out of the pool first
+car = wdb.find_carriers
+car.keys.each do |k|
+ wdb.delete(k)
end
+groups =
+{
+ "carriers" => car.keys
+}
-found = {}
+oset = wdb.keys.sort
+iset = oset.dup
-names.each do |n1|
- puts "[*] Searching for matches to #{n1}"
- best = 0
- names.each do |n2|
- next if found[n2]
- data = `ruby t.rb #{inp} #{n1} #{n2} 2>/dev/null`
- next if not data
-
- data.strip!
- head,dead = data.split(/\s+/, 2)
- next if not head
+
+
+while(not oset.empty?)
+
+ k = oset.shift
+
+ found = []
+ best = nil
+ next if not iset.include?(k)
+
+ iset.each do |n|
+ next if k == n
- p head
+ begin
+ res = wdb.find_sig(k,n)
+ rescue ::WarVOX::DB::Error
+ end
+ next if not res
+ next if res[:len] < 5
+ found << res
+ end
+
+ next if found.empty?
+
+ groups[k] = [ ]
+ found.each do |f|
+ groups[k] << [ f[:num2], f[:len] ]
end
+
+ $stdout.puts "#{k} " + groups[k].map{|x| "#{x[0]}-#{x[1]}" }.join(" ")
+ $stdout.flush
+
+ groups[k].unshift(k)
end
diff --git a/lib/warvox/db.rb b/lib/warvox/db.rb
@@ -1,17 +1,16 @@
module WarVOX
-class DB
+class DB < ::Hash
VERSION = '1.0'
class Error < ::RuntimeError
end
- attr_accessor :path, :nums, :threshold, :version
+ attr_accessor :path, :threshold, :version
def initialize(path, threshold=800)
self.path = path
self.threshold = threshold
- self.nums = {}
self.version = VERSION
File.open(path, "r") do |fd|
@@ -26,24 +25,16 @@ class DB
next if bits.empty?
- self.nums[name] = []
+ self[name] = []
bits.each do |d|
s,l,a = d.split(',')
next if l.to_i < self.threshold
- self.nums[name] << [s, l.to_i, a.to_i]
+ self[name] << [s, l.to_i, a.to_i]
end
end
end
end
- def [](num)
- self.nums[num]
- end
-
- def []=(num,val)
- self.nums[num] = val
- end
-
#
# Utility methods
#
@@ -137,7 +128,7 @@ class DB
def find_carriers
carriers = {}
- self.nums.keys.sort.each do |num|
+ self.keys.sort.each do |num|
begin
res = is_carrier?(num)
next if not res
You are viewing proxied material from jay.scot. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.