wx_ext 0.1.0 → 0.1.1

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: a4631ed141e2c9cd9f73992676c8878f91b4eece
4
- data.tar.gz: 20ac8d5e507c302968c970131dad22fab5ee904e
3
+ metadata.gz: 4d4dc7c81727a8fe95cec098764ca3b6ae5a6cb1
4
+ data.tar.gz: 455e5391ca5abb4c9d687b3d48d3881cea885157
5
5
  SHA512:
6
- metadata.gz: ca521708936968d7a586231173ad82b38d5d4c09cccd48283760b08dbdf8a07f6a279fa9b8dfb91f3ceaef55bd5ae75c7638a83573f28eaf42b4a31d15b7c4b6
7
- data.tar.gz: 403c3ee5bad9c24b007ecc1a8540c7722f172a2b641808e1d31c1246aaebf26af27376bb1559599502a0ee374e36de7ef28603e8a487e2b49dab41e214407cf2
6
+ metadata.gz: bc430085462ce84e094c10a7c1e713e45d0e3fa57be0b28467e757a4a3965ddb9cdae7e4d9cc97baf8c53cb95641b6ae91ba66d241ea4026a41a5ec8e1282b62
7
+ data.tar.gz: 4969fa8eaa4cbdabf692838c9ba35a8dc09a016197ebf4c3f11039312ee79577cdddf94aff52807b7d30d6aa08541dc2d08481060cd47e23c095206cee5fd455
data/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  Add this line to your application's Gemfile:
8
8
 
9
9
  ```ruby
10
- gem 'wx_ext', '~> 0.1.0'
10
+ gem 'wx_ext', '~> 0.1.1'
11
11
  ```
12
12
 
13
13
  And then execute:
@@ -22,6 +22,7 @@ And then execute:
22
22
 
23
23
  1. 修改 spec/wx_ext/weixin_spec.rb 文件中的账户密码
24
24
  2. rspec spec/wx_ext/weixin_spec.rb
25
+ 3. rspec spec/wx_ext/sougou_weixin_spec.rb
25
26
 
26
27
  ## Contributing
27
28
 
@@ -0,0 +1,68 @@
1
+ # encoding: UTF-8
2
+ require 'nokogiri'
3
+ require 'rest_client'
4
+ require 'json'
5
+ require 'open-uri'
6
+ module WxExt
7
+ class SougouWeixin
8
+ def self.spider_posts_from_sougou(openid, page_index = 1, date_last = '2000-01-01')
9
+ url = "http://weixin.sogou.com/gzhjs?openid=#{openid}&page=#{page_index}"
10
+ res = RestClient.get url, {:accept => :json}
11
+
12
+ date_last_arr = date_last.to_s.split('-')
13
+ date_last_to_com = Time.new(date_last_arr[0], date_last_arr[1], date_last_arr[2])
14
+
15
+ xml_articles = nil
16
+ response_time = nil
17
+ total_items = nil
18
+ total_pages = nil
19
+ page = nil
20
+
21
+ reg = /gzh\((.*)\).*\/\/<\!--.*--><\!--(\d+)-->/m
22
+ if reg =~ res.to_s
23
+ xml_articles = JSON.parse($1)['items']
24
+ total_items = JSON.parse($1)['totalItems']
25
+ total_pages = JSON.parse($1)['totalPages']
26
+ page = JSON.parse($1)['page']
27
+ response_time = $2.to_i
28
+ else
29
+ return {}
30
+ end
31
+ spider_posts = []
32
+ xml_articles.each do |xml|
33
+ doc = Nokogiri::XML(xml.to_s, nil, "UTF-8")
34
+ date = doc.at_xpath('//DOCUMENT/item/display/date').text
35
+
36
+ spider_post = {}
37
+
38
+ date_arr = date.to_s.split('-')
39
+ date_to_com = Time.new(date_arr[0], date_arr[1], date_arr[2])
40
+ if date_last_to_com < date_to_com
41
+ spider_post[:title] = doc.at_xpath('//DOCUMENT/item/display/title1').text
42
+ spider_post[:url] = doc.at_xpath('//DOCUMENT/item/display/url').text
43
+ spider_post[:img] = doc.at_xpath('//DOCUMENT/item/display/imglink').text
44
+ # logo = doc.at_xpath('//DOCUMENT/item/display/headimage').text
45
+ # sourcename = doc.at_xpath('//DOCUMENT/item/display/sourcename').text
46
+ spider_post[:content_short] = doc.at_xpath('//DOCUMENT/item/display/content168').text
47
+
48
+ doc_post = Nokogiri::HTML(open(url), nil, "UTF-8")
49
+ node_author = doc_post.css('div.rich_media_meta_list > em.rich_media_meta.rich_media_meta_text')[1]
50
+ spider_post[:author] = node_author ? node_author.content : '无'
51
+ spider_post[:content] = doc_post.css('div.rich_media_content').first.to_s
52
+ spider_posts.push spider_post
53
+ else
54
+ break
55
+ end
56
+ end
57
+ {
58
+ total_items: total_items,
59
+ total_pages: total_pages,
60
+ page: page,
61
+ response_time: response_time,
62
+ spider_posts: spider_posts,
63
+ original_count: xml_articles.count,
64
+ count: spider_posts.count
65
+ }
66
+ end
67
+ end
68
+ end
@@ -1,4 +1,4 @@
1
1
  # encoding: UTF-8
2
2
  module WxExt
3
- VERSION = '0.1.0'
3
+ VERSION = '0.1.1'
4
4
  end
data/lib/wx_ext.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  # encoding: UTF-8
2
2
  require 'wx_ext/version'
3
+ require 'wx_ext/sougou_weixin'
4
+
3
5
  require 'digest'
4
6
  require 'rest_client'
5
7
  require 'json'
@@ -0,0 +1,11 @@
1
+ # encoding: UTF-8
2
+ require 'spec_helper'
3
+
4
+ describe WxExt::SougouWeixin do
5
+
6
+ it 'should spider some posts from weixin.sougou.com' do
7
+ spider_posts = WxExt::SougouWeixin.spider_posts_from_sougou('oIWsFt-tphuh--mRkYQI-TePFFBo', 1)
8
+ puts spider_posts
9
+ expect(spider_posts[:original_count]).to eql(10)
10
+ end
11
+ end
@@ -3,8 +3,9 @@ require 'spec_helper'
3
3
 
4
4
  describe WxExt::WeiXin do
5
5
  before(:all) do
6
- @weixin = WxExt::WeiXin.new 'flowerwrong@hotmail.com', '1*flower@wrong*1'
6
+ @weixin = WxExt::WeiXin.new 'username', 'pass'
7
7
  end
8
+
8
9
  =begin
9
10
  it 'should login to the mp' do
10
11
  res_hash = @weixin.login
@@ -86,7 +87,7 @@ describe WxExt::WeiXin do
86
87
  expect(star_res_hash['ret'].to_s).to eql('0')
87
88
  end
88
89
  end
89
- =end
90
+
90
91
 
91
92
  it 'should get fans count' do
92
93
  res_hash = @weixin.login
@@ -112,7 +113,8 @@ describe WxExt::WeiXin do
112
113
  puts 'init failed'
113
114
  end
114
115
  end
115
- =begin
116
+
117
+
116
118
  it "should get new msg num" do
117
119
  res_hash = @weixin.login
118
120
  flag = @weixin.init
data/wx_ext.gemspec CHANGED
@@ -24,8 +24,4 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'rspec'
25
25
  spec.add_dependency 'rest_client'
26
26
  spec.add_dependency 'nokogiri'
27
- # spec.add_dependency 'mechanize'
28
- # spec.add_dependency 'phantomjs', '~> 1.9.7.1'
29
- # spec.add_dependency 'capybara'
30
- # spec.add_dependency 'poltergeist'
31
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wx_ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - flowerwrong
@@ -93,9 +93,11 @@ files:
93
93
  - README.md
94
94
  - Rakefile
95
95
  - lib/wx_ext.rb
96
+ - lib/wx_ext/sougou_weixin.rb
96
97
  - lib/wx_ext/version.rb
97
98
  - spec/spec_helper.rb
98
99
  - spec/test.png
100
+ - spec/wx_ext/sougou_weixin_spec.rb
99
101
  - spec/wx_ext/weixin_spec.rb
100
102
  - wx_ext.gemspec
101
103
  homepage: http://thecampus.cc
@@ -125,4 +127,5 @@ summary: a gem to hack mp.weixin.qq.com
125
127
  test_files:
126
128
  - spec/spec_helper.rb
127
129
  - spec/test.png
130
+ - spec/wx_ext/sougou_weixin_spec.rb
128
131
  - spec/wx_ext/weixin_spec.rb