fly_parser 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7e159421fc321f0df2f306091165a72155f57abd
4
- data.tar.gz: f7348be727d4ec8dc5a6e6bc7527f9b6e2a193b7
3
+ metadata.gz: b58e2ae6ddaf9e2a818755b0f5e78706d992bf40
4
+ data.tar.gz: 3fd32f1ef686336d6cd9e3d142b4092b771e23aa
5
5
  SHA512:
6
- metadata.gz: ab584fc837d217ede31b77d7f4cf06fae1b04955d2306b276f4d5928ba07eae7ff5a76dad798114ddb83bd85103f70ffe6826953a6bac32e3551e606a88fcd3a
7
- data.tar.gz: 80cd5806a09f8610bee270bde4257055a9f99eb3f2bd218201d9381347b0fa7245924ab607dfd07feefc662f5f6b14e293e1c6e36c9f8cb89b3e5aa1fd9a0cff
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
@@ -1,3 +1,3 @@
1
1
  module Parser
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -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
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fly_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruslan Korolev