fly_parser 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fly_parser/sources/news.rb +10 -1
- data/lib/fly_parser/version.rb +1 -1
- data/lib/fly_parser/xml_base.rb +6 -0
- data/lib/fly_parser.rb +9 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b58e2ae6ddaf9e2a818755b0f5e78706d992bf40
|
4
|
+
data.tar.gz: 3fd32f1ef686336d6cd9e3d142b4092b771e23aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 251c6c19abfa823941005f9ab0a4718fb541957fcaac0f4d5669f4b2b3695be64402cca5cfbf5b24542118b0c72017926cb58f042f128a8b57eefa1f565d22a3
|
7
|
+
data.tar.gz: 7e114561345cfb88a4b0711026521e6a717b3ac0899ab706fd7a2f99432ee73e89c6bf36a79455e0073d9496b2f1d5c48629aea0b57155f55b04c9bebcac56a7
|
@@ -23,10 +23,19 @@ module Parser
|
|
23
23
|
full_desc.search('.inject-data').remove()
|
24
24
|
full_desc.search('a').remove()
|
25
25
|
|
26
|
+
tags = @enable_tags ? parse_tags(page) : nil
|
27
|
+
|
26
28
|
copyright = "<p>Источник: <a href='#{@copyright[:url]}'>#{@copyright[:title]}</a></p>"
|
27
29
|
content = "<p>#{short_desc}</p>" + full_desc.inner_html + copyright
|
28
|
-
{title: title, content: content, poster_image: poster_image}
|
30
|
+
{title: title, content: content, poster_image: poster_image, tags: tags }
|
29
31
|
end.compact
|
30
32
|
end
|
33
|
+
|
34
|
+
def parse_tags(page)
|
35
|
+
tags_wrapper = page.search('.article_tags_overview_list')
|
36
|
+
tags = tags_wrapper.search('li a')
|
37
|
+
tags.map(&:text)
|
38
|
+
end
|
39
|
+
|
31
40
|
end
|
32
41
|
end
|
data/lib/fly_parser/version.rb
CHANGED
data/lib/fly_parser/xml_base.rb
CHANGED
@@ -7,6 +7,7 @@ module Parser
|
|
7
7
|
@copyright = copyright(options)
|
8
8
|
@source = Parser.connect(source)
|
9
9
|
@delay ||= 10
|
10
|
+
@enable_tags = tags(options)
|
10
11
|
end
|
11
12
|
|
12
13
|
def fake_url(source)
|
@@ -24,5 +25,10 @@ module Parser
|
|
24
25
|
title: source['copyright_title']
|
25
26
|
}
|
26
27
|
end
|
28
|
+
|
29
|
+
def tags(options)
|
30
|
+
source = options[:source]
|
31
|
+
source['tags']
|
32
|
+
end
|
27
33
|
end
|
28
34
|
end
|
data/lib/fly_parser.rb
CHANGED
@@ -55,11 +55,20 @@ module Parser
|
|
55
55
|
item = Article.new(title: article[:title], content: article[:content])
|
56
56
|
item.categories = [Category.find(options[:category_id])]
|
57
57
|
item.remote_image_url = article[:poster_image]
|
58
|
+
|
59
|
+
if article[:tags]
|
60
|
+
item.tags = tags(article[:tags])
|
61
|
+
end
|
62
|
+
|
58
63
|
next unless item.valid?
|
59
64
|
item.save
|
60
65
|
end
|
61
66
|
end
|
62
67
|
|
68
|
+
def tags(tags)
|
69
|
+
tags.map { |tag_name| Tag.find_or_create_by!(title: tag_name) }
|
70
|
+
end
|
71
|
+
|
63
72
|
def start
|
64
73
|
puts Time.now
|
65
74
|
|