secondHandler 1.1.3 → 1.2.1

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: f952d71536a07bb62aae790d1d730f8a217b081c
4
- data.tar.gz: b0fa2b2eaf8c2ea0a46b731c90ab1fe30521b9a5
3
+ metadata.gz: 55f6fc7b82dfa5ac9a531e354340f6baaebfdd54
4
+ data.tar.gz: e10d2f2cba375d778b97a732f737b278bc1415ff
5
5
  SHA512:
6
- metadata.gz: 301df76e3792b4da0b818ecefbb6d740b1b7948354739b22ea2c7de98e1bd35b18a2db09f107a63c0b2c948f47edade2536ab7f089fed3c8a0ba8098d52afb85
7
- data.tar.gz: fad81956293e80d5e996492d23bc56ae7a72e805c375d938bf883f7f553bc19a8f722cc057d0784773ef4f2368154dc593981c6aeed23566d39c995676597580
6
+ metadata.gz: 6079c4924cedd3192af7af7b11f6c3e140f4bf5f2942c0504dc62a796e5b4e37d0f957fcf10f124cc3a4d836794dc0070714d27662115fb2a371a9b7cabdae5e
7
+ data.tar.gz: 8ae6af630295f716b63c8756d7fc6d80cf3ef99748847a608b99a848b69c82c1599195f0c4f605ca584359f97b01c71ff2740ab68615c8f8e505d577672fb38c
@@ -0,0 +1,26 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ addressable (2.4.0)
5
+ commander (4.3.5)
6
+ highline (~> 1.7.2)
7
+ faraday (0.9.2)
8
+ multipart-post (>= 1.2, < 3)
9
+ highline (1.7.8)
10
+ koala (2.2.0)
11
+ addressable
12
+ faraday
13
+ multi_json
14
+ minitest (5.8.3)
15
+ multi_json (1.11.2)
16
+ multipart-post (2.0.0)
17
+ rake (10.4.2)
18
+
19
+ PLATFORMS
20
+ ruby
21
+
22
+ DEPENDENCIES
23
+ commander
24
+ koala
25
+ minitest
26
+ rake
@@ -1,7 +1,9 @@
1
+
2
+
1
3
  module FbDataHandler
2
4
  FACEBOOK_URL = "https://www.facebook.com"
3
5
  private
4
- def attachment_helper (attach_hash, &func)
6
+ def attachment_helper (attach_hash,&func)
5
7
 
6
8
  clean_data = []
7
9
 
@@ -18,11 +20,10 @@ module FbDataHandler
18
20
  clean_data
19
21
  end
20
22
 
21
- def clean_post_content (item)
22
- {
23
+ def clean_post_content (item, &message_parser)
24
+ res = {
23
25
  "id" => item["id"],
24
26
  "origin_url" => FACEBOOK_URL+"/"+item["id"],
25
- "message" => item["message"],
26
27
  "updated_time" => item["updated_time"],
27
28
  "attachments" => attachment_helper(item["attachments"]),
28
29
  "from" => {
@@ -34,6 +35,13 @@ module FbDataHandler
34
35
  "comment_count"=> item["comments"]["summary"]["total_count"],
35
36
 
36
37
  }
38
+ if not message_parser.nil?
39
+ clean = yield item["message"]
40
+ res = res.merge(clean)
41
+
42
+ end
43
+ res
44
+
37
45
  end
38
46
 
39
47
  def clean_comment(item)
@@ -0,0 +1,27 @@
1
+ module FBParsers
2
+
3
+ @@parse_1730742887066429 = lambda do |message|
4
+ price = nil
5
+ title = nil
6
+ message_body = nil
7
+ price_regex = /NT\$([\d,\.]+)/
8
+ lines = message.split("\n")
9
+ if lines.length >= 3
10
+ unless price_regex.match(lines[1]).nil?
11
+ print price
12
+ price = price_regex.match(lines[1])[1]
13
+ end
14
+ end
15
+ if not price.nil?
16
+ {"price" => price.gsub(",","").to_i , "title" => lines[0] ,"body" => lines[2..-1].join("\n")}
17
+ else
18
+ raise ArgumentError, "message parse fail"
19
+ end
20
+
21
+ end
22
+ @@tools = {"1730742887066429" => @@parse_1730742887066429 }
23
+ def self.message_parser (gid)
24
+ @@tools[gid]
25
+ end
26
+
27
+ end
@@ -1,6 +1,7 @@
1
1
  require 'koala'
2
2
  require 'json'
3
3
  require_relative 'fb_data_handler'
4
+ require_relative 'parser_collection'
4
5
 
5
6
  module SecondHandler
6
7
 
@@ -101,6 +102,7 @@ module SecondHandler
101
102
  def initialize (access_token, group_id)
102
103
  @graph = Koala::Facebook::API.new(access_token)
103
104
  @group_id = group_id
105
+ @message_parser = FBParsers.message_parser @group_id
104
106
  end
105
107
 
106
108
  def first_page(page_token=nil,until_stamp=nil)
@@ -135,9 +137,14 @@ module SecondHandler
135
137
 
136
138
  # return feed of current page infomation , including image
137
139
  def get_content (&func)
138
- @feed.to_a.map do |single_post|
139
- clean_post_content(single_post)
140
+ data = Array.new
141
+ @feed.to_a.each do |single_post|
142
+ begin
143
+ data << clean_post_content(single_post, &@message_parser)
144
+ rescue
145
+ end
140
146
  end
147
+ data
141
148
  end
142
149
 
143
150
 
@@ -1,4 +1,4 @@
1
1
  module SecondHandler
2
- VERSION = '1.1.3'
2
+ VERSION = '1.2.1'
3
3
  DATE = '2016-01-07'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: secondHandler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sheng Jung Wu
@@ -64,11 +64,13 @@ extra_rdoc_files: []
64
64
  files:
65
65
  - ".gitignore"
66
66
  - Gemfile
67
+ - Gemfile.lock
67
68
  - LICENSE
68
69
  - README.md
69
70
  - Rakefile
70
71
  - bin/second_handler
71
72
  - lib/fb_data_handler.rb
73
+ - lib/parser_collection.rb
72
74
  - lib/second_handler.rb
73
75
  - lib/second_handler/version.rb
74
76
  - secondhandler.gemspec