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 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