niwa_textream 0.1.0

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.
@@ -0,0 +1,40 @@
1
+ require 'niwa_textream/pages/main/main_page.rb'
2
+ require 'niwa_textream/pages/category/category_page.rb'
3
+
4
+ module NiwaTextream
5
+ # Textream's top page (http://textream.yahoo.co.jp/)
6
+ class TopPage < MainPage
7
+ attr_accessor :categories
8
+ @@url = "http://textream.yahoo.co.jp/"
9
+ @categories = nil
10
+
11
+ def initialize(mechanize)
12
+ super(mechanize)
13
+ set_categories
14
+ end
15
+
16
+ # search categories mechanize objects
17
+ def set_categories
18
+ @categories = {}
19
+ @mechanize.page.search('//*[@id="prtcalst"]//li').each do |cat|
20
+ cat_link = cat.search('a')[0]
21
+ cat_name = cat.search('.//em')[0].inner_text()
22
+ catObj = Category.new()
23
+ catObj.elem = cat_link
24
+ catObj.name = cat_name
25
+ @categories[cat_name] = catObj
26
+
27
+ puts("#{cat_name}")
28
+ puts("-------------------")
29
+ end
30
+ end
31
+
32
+ # click category.
33
+ # * +name+ - category name(string)
34
+ # return: CategoryPage (If you click this link, you will move to CategoryPage)
35
+ def clickCategory(name)
36
+ @mechanize.click(@categories[name].elem)
37
+ return NiwaTextream::CategoryPage.new(@mechanize)
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,14 @@
1
+ module NiwaTextream
2
+ class TimeUtil
3
+ def self.getDateTime(str_date)
4
+ begin
5
+ ret = DateTime.strptime(str_date, "%Y年%m月%d日 %H:%M")
6
+ return ret if ret != nil
7
+ rescue ArgumentError
8
+ # do nothing
9
+ end
10
+
11
+ ret = DateTime.strptime(str_date, "%m月%d日 %H:%M")
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,3 @@
1
+ module NiwaTextream
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,41 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'niwa_textream/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "niwa_textream"
8
+ spec.version = NiwaTextream::VERSION
9
+ spec.authors = ["niwatolli3"]
10
+ spec.email = ["niwatolli3@gmail.com"]
11
+
12
+ spec.summary = %q{A scraping library for Yahoo! Textream}
13
+ spec.description = %q{NiwaTextream provides scraping feature for Yahoo! Textream.}
14
+ spec.homepage = "https://github.com/niwatolli3/niwa_textream"
15
+ spec.license = "MIT"
16
+
17
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
19
+ if spec.respond_to?(:metadata)
20
+ spec.metadata['allowed_push_host'] = "https://rubygems.org"
21
+ else
22
+ raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
23
+ end
24
+
25
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_development_dependency "bundler", "~> 1.12"
31
+ spec.add_development_dependency "rake", "~> 10.0"
32
+
33
+ # for test
34
+ spec.add_development_dependency "rspec"
35
+
36
+ spec.add_development_dependency "codeclimate-test-reporter"
37
+
38
+ # for this gem
39
+ spec.add_dependency "nokogiri"
40
+ spec.add_dependency "mechanize"
41
+ end
metadata ADDED
@@ -0,0 +1,163 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: niwa_textream
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - niwatolli3
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-08-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.12'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.12'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: codeclimate-test-reporter
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: nokogiri
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: mechanize
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: NiwaTextream provides scraping feature for Yahoo! Textream.
98
+ email:
99
+ - niwatolli3@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".codeclimate.yml"
105
+ - ".gitignore"
106
+ - ".idea/.rakeTasks"
107
+ - ".idea/dbnavigator.xml"
108
+ - ".idea/misc.xml"
109
+ - ".idea/modules.xml"
110
+ - ".idea/niwa_textream.iml"
111
+ - ".idea/vcs.xml"
112
+ - ".idea/workspace.xml"
113
+ - ".rspec"
114
+ - ".rubocop.yml"
115
+ - ".travis.yml"
116
+ - CODE_OF_CONDUCT.md
117
+ - Gemfile
118
+ - LICENSE
119
+ - README.md
120
+ - Rakefile
121
+ - bin/console
122
+ - bin/setup
123
+ - lib/niwa_textream.rb
124
+ - lib/niwa_textream/models/base_model.rb
125
+ - lib/niwa_textream/models/category.rb
126
+ - lib/niwa_textream/models/message.rb
127
+ - lib/niwa_textream/models/thread.rb
128
+ - lib/niwa_textream/pages/category/category_page.rb
129
+ - lib/niwa_textream/pages/main/main_page.rb
130
+ - lib/niwa_textream/pages/message/message_header.rb
131
+ - lib/niwa_textream/pages/message/message_page.rb
132
+ - lib/niwa_textream/pages/thread/thread_page.rb
133
+ - lib/niwa_textream/pages/top/top_page.rb
134
+ - lib/niwa_textream/utils/TimeUtil.rb
135
+ - lib/niwa_textream/version.rb
136
+ - niwa_textream.gemspec
137
+ homepage: https://github.com/niwatolli3/niwa_textream
138
+ licenses:
139
+ - MIT
140
+ metadata:
141
+ allowed_push_host: https://rubygems.org
142
+ post_install_message:
143
+ rdoc_options: []
144
+ require_paths:
145
+ - lib
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ requirements: []
157
+ rubyforge_project:
158
+ rubygems_version: 2.5.1
159
+ signing_key:
160
+ specification_version: 4
161
+ summary: A scraping library for Yahoo! Textream
162
+ test_files: []
163
+ has_rdoc: