dxtitle_search 0.2.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/dxtitle_search.rb +61 -64
- data.tar.gz.sig +0 -0
- metadata +34 -32
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb844f529ab06c2cc4e084e3f5af0f41ab4425d6dc7b9194b210963f5e37da39
|
4
|
+
data.tar.gz: 80a837d7414e45ce4dee39e2a4025ad8419b090d3ae3f057c4236d4d6961a0b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6482d7adffc9dc3ba09925d770ef6ad6aacc0ba771b2e703540d4ef7d34b009b49b60318e8450d617d64ed865bc55d70c8b4b447bb06a2f0c3be86f6fe1cc327
|
7
|
+
data.tar.gz: fd11a8b0080b6f48790d5524c14144bdb578761b6e47c6a346c9cb7d736998f5f7b862bac28d91e37bf94abce5b429ed61e28a681e6061683da97cddb8b51a8c
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/dxtitle_search.rb
CHANGED
@@ -2,102 +2,99 @@
|
|
2
2
|
|
3
3
|
# file: dxtitle_search.rb
|
4
4
|
|
5
|
-
require '
|
5
|
+
require 'indexer101'
|
6
6
|
|
7
7
|
|
8
8
|
class DxTitleSearch
|
9
|
+
using ColouredText
|
9
10
|
|
10
|
-
def initialize(obj=nil, sources:
|
11
|
+
def initialize(obj=nil, sources: nil, level: 1, debug: false)
|
11
12
|
|
12
13
|
@debug = debug
|
14
|
+
@indexer = Indexer101.new debug: debug
|
15
|
+
@level = level
|
13
16
|
|
14
17
|
s = if sources then
|
15
|
-
|
18
|
+
|
19
|
+
puts "found sources".info if @debug
|
16
20
|
dx = Dynarex.new(sources)
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
obj
|
29
|
-
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
@h = h = s.lines.inject({}) do |r,x|
|
34
|
-
key, value = x.split(/\s+(?=[^\s]+$)/,2)
|
35
|
-
r.merge(key.rstrip => value)
|
21
|
+
|
22
|
+
puts 'before scan_dxindex' if @debug
|
23
|
+
a = dx.all.map(&:uri)
|
24
|
+
puts 'a: ' + a.inspect if @debug
|
25
|
+
@indexer.scan_dxindex a, level: level
|
26
|
+
|
27
|
+
elsif obj and (obj.is_a?(DxLite) or obj.is_a?(Dynarex)) or obj.lines.length < 2
|
28
|
+
|
29
|
+
@indexer.scan_dxindex obj, level: level
|
30
|
+
|
36
31
|
end
|
37
32
|
|
38
|
-
@
|
33
|
+
#jr230620 @indexer.build
|
39
34
|
|
40
35
|
end
|
41
36
|
|
42
|
-
def search(keywords)
|
43
|
-
|
44
|
-
|
37
|
+
def search(keywords, minchars: 3)
|
38
|
+
|
39
|
+
a2 = @indexer.search keywords.split(/[\s:"!\?\(\)£]+(?=[\w#_'-]+)/), \
|
40
|
+
minchars: minchars
|
41
|
+
# format each result as a Hash object
|
42
|
+
a3 = a2.map do |date, title, url|
|
43
|
+
|
44
|
+
{title: title, url: url, date: date}
|
45
45
|
|
46
|
-
# find out the keywords count for each entry found
|
47
|
-
a0 = keywords.split.flat_map do |x|
|
48
|
-
next if @a.length < 2
|
49
|
-
@a.grep /#{x}/i
|
50
46
|
end
|
51
|
-
|
52
|
-
|
53
|
-
|
47
|
+
|
48
|
+
puts 'a3: ' + a3.inspect if @debug
|
49
|
+
|
50
|
+
@dx = Dynarex.new('results/result(title, url, date)').import(a3)
|
51
|
+
|
52
|
+
def a3.to_dx()
|
53
|
+
Dynarex.new('results/result(title, url, date)').import(self)
|
54
54
|
end
|
55
55
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
-([x.last, x.first[/^\d+/], ] <=> [x2.last, x2.first[/^\d+/]])
|
56
|
+
def a3.to_tags()
|
57
|
+
a = self.map {|x| x[:title].scan(/(?<=#)(\w+)/)}.flatten
|
58
|
+
a.uniq.sort.map {|x| [x, a.count(x)]}
|
60
59
|
end
|
61
60
|
|
62
|
-
|
63
|
-
a3 = (phrases + a2).map do |x|
|
61
|
+
def a3.search(keywords)
|
64
62
|
|
65
|
-
|
66
|
-
line, _ = x
|
67
|
-
else
|
68
|
-
line = x
|
69
|
-
end
|
70
|
-
|
71
|
-
puts 'line: ' + line.inspect if @debug
|
72
|
-
|
73
|
-
rawtime, title = line.split(/ +/,2)
|
74
|
-
puts 'title: ' + title.inspect if @debug
|
63
|
+
dx = Dynarex.new('results/result(title, url, date)').import(self)
|
75
64
|
|
76
|
-
|
65
|
+
level = keywords[0] == '#' ? 0 : 1
|
66
|
+
dts = DxTitleSearch.new dx, level: level
|
67
|
+
dts.search keywords
|
77
68
|
|
78
69
|
end
|
79
70
|
|
80
|
-
|
71
|
+
def a3.tag_search(keywords)
|
81
72
|
|
82
|
-
|
73
|
+
dx = Dynarex.new('results/result(title, url, date)').import(self)
|
74
|
+
|
75
|
+
level = keywords[0] == '#' ? 0 : 1
|
76
|
+
dts = DxTitleSearch.new dx, level: level
|
77
|
+
dts.tag_search keywords
|
78
|
+
|
79
|
+
end
|
80
|
+
|
81
|
+
return Array.new(a3)
|
83
82
|
|
84
83
|
end
|
85
|
-
|
84
|
+
|
86
85
|
def tag_search(keywords)
|
87
|
-
|
88
|
-
|
86
|
+
r = @indexer.lookup *keywords.split(/[\W]+(?=[\w]+)/).map {|x| "#" + x}
|
87
|
+
r.map {|x| x.to_s[1..-1]}
|
89
88
|
end
|
90
|
-
|
91
|
-
private
|
92
|
-
|
93
|
-
def read(source)
|
94
89
|
|
95
|
-
|
90
|
+
def to_tags()
|
91
|
+
|
92
|
+
a = @indexer.index.map do |key, value|
|
93
|
+
[key.to_s[1..-1], value.length]
|
94
|
+
end
|
95
|
+
|
96
|
+
a.sort_by(&:first)
|
96
97
|
|
97
|
-
dx.all.map do |x|
|
98
|
-
"%d %s %s" % [Time.parse(x.created).to_i, x.title, x.url]
|
99
|
-
end.join("\n")
|
100
|
-
|
101
98
|
end
|
102
99
|
|
103
100
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dxtitle_search
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -11,54 +11,54 @@ cert_chain:
|
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
13
|
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
+
|
25
|
-
|
26
|
-
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjEwMjIyMDAxMTU0WhcN
|
15
|
+
MjIwMjIyMDAxMTU0WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDxwG7T
|
17
|
+
/9FLpGJct6ptTTRa2UnYj9qeRp2KmjnMpONFP7Owl1yjh2auzyIfDChG7G2W9kZ4
|
18
|
+
eOPno39R2GJOxt5IVTxmjgBpAUl8xW3n629b2jE7al1GJZ89Jm3Fqs1rBeUaC0wB
|
19
|
+
DIX4SVwHqfzxvZTVLVZ5LPIKqxNiJe8eUIRRzzc0/XzyFTh3Sg4SH1ncm04vvxWg
|
20
|
+
piQyL6iUeUuirHjotchLINWzi2A4PgO63/YYM3tYPzbykkiBrE/iJHnPuFEjNfIj
|
21
|
+
+tVTvPB0wXdCDNf6yHr9cfy0t97eVGTbwv+UhWX9Vmz6/t4bi9X2xhmdp32y9CK6
|
22
|
+
s/I16J3oC70JvsTKOhDAM3OMQFjCpBbtyFYuJDbDbQKD/elGXTHvAmCi5skCNJzE
|
23
|
+
oq1l5aVpp3IFrZQfLEimeDDEq8ulEajlllpitq1vD+vycRSydybtAhMs/kK7DY7D
|
24
|
+
kVGOI1HDz5p+A6e8wyXoecdaQeswH3gd3nkCKfV7ohKXXywW8JWMEBgYj4ECAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU1qWuKrKD
|
26
|
+
A90s8y+KBolbTgtLOP8wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
27
|
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAHJI3akrM/ne2v1zYcZOy0POu/LLfcBM93BuQcfiN
|
29
|
+
ok256P7VWXSjU2TaR8/vLDK0dbZo5V08WCKk08yuqOdzOII7JSVh0QHzzgFTR7yS
|
30
|
+
RG3xDZtp6j4MXzoAkLd06rIL1O21GXGc49Wkc7XHeFytbRF8XhT29e4H4s5KMoJ1
|
31
|
+
l9Ks2oMc4USzKo7loCU+1q0Sg8BQEpS2+9RNTpG7MKDdneWXhb2o6UTQ3WIDpfEt
|
32
|
+
ImShbAmoVHcdMa3HZUH0Pa+pzr/KrM0sg2fa2trlJS9oDq9pZl/cQO6Ryl76lqKg
|
33
|
+
bQ7jxCYFron1UH6iS3bJBPfFmIWcio3zT8VmeqVPhXatDDnb00JijkO/WThobMxb
|
34
|
+
aZJQ2A0sZWHF9u5v9gda8mq21CID3YMPRzQ1u5o4jjyNhcVyjW29GvfD8+8D4s46
|
35
|
+
g10O6gIBUztpsNHwbBTi9fHgtis4E5dAPAo4uzo4MCKVwi72iZQ3E92ACYb9zlxA
|
36
|
+
g6CsTY0vUjhgfh9taSRj3qxd
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date: 2022-01-25 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
|
-
name:
|
41
|
+
name: indexer101
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
46
|
+
version: '0.2'
|
47
47
|
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
49
|
+
version: 0.2.5
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: '
|
56
|
+
version: '0.2'
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version:
|
59
|
+
version: 0.2.5
|
60
60
|
description:
|
61
|
-
email:
|
61
|
+
email: digital.robertson@gmail.com
|
62
62
|
executables: []
|
63
63
|
extensions: []
|
64
64
|
extra_rdoc_files: []
|
@@ -83,8 +83,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
version: '0'
|
85
85
|
requirements: []
|
86
|
-
|
86
|
+
rubyforge_project:
|
87
|
+
rubygems_version: 2.7.10
|
87
88
|
signing_key:
|
88
89
|
specification_version: 4
|
89
|
-
summary:
|
90
|
+
summary: Originally intended to search title entries from plain text (derived from
|
91
|
+
a Dynarex document).
|
90
92
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|