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 +4 -4
- data/Gemfile.lock +26 -0
- data/lib/fb_data_handler.rb +12 -4
- data/lib/parser_collection.rb +27 -0
- data/lib/second_handler.rb +9 -2
- data/lib/second_handler/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55f6fc7b82dfa5ac9a531e354340f6baaebfdd54
|
4
|
+
data.tar.gz: e10d2f2cba375d778b97a732f737b278bc1415ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6079c4924cedd3192af7af7b11f6c3e140f4bf5f2942c0504dc62a796e5b4e37d0f957fcf10f124cc3a4d836794dc0070714d27662115fb2a371a9b7cabdae5e
|
7
|
+
data.tar.gz: 8ae6af630295f716b63c8756d7fc6d80cf3ef99748847a608b99a848b69c82c1599195f0c4f605ca584359f97b01c71ff2740ab68615c8f8e505d577672fb38c
|
data/Gemfile.lock
ADDED
@@ -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
|
data/lib/fb_data_handler.rb
CHANGED
@@ -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
|
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
|
data/lib/second_handler.rb
CHANGED
@@ -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
|
-
|
139
|
-
|
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
|
|
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
|
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
|