fanswatch 0.1.2 → 0.1.3

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: 1e3637b918747c94553b75f4d9a57aa6e5e6b04e
4
- data.tar.gz: c56ee9df0e9ef5728ed83751c83539d170f3e7b2
3
+ metadata.gz: edb3f785533dba5470c392c2f72c6806cc377fef
4
+ data.tar.gz: 4a74de3d6e7af5c49a7986f3355e9a162eb4030c
5
5
  SHA512:
6
- metadata.gz: 11c00ee81bf709d61ea5d6c88f713b8e5f80c1f119f7a2049f7e5dd5ff2ec60dad038511933aced09982b04a09a50d34dbc0f2e3d46855d3298660bd981fc03a
7
- data.tar.gz: 34e2afcfa01de3148f3d93cf34b76c67d426b0e6c1633c2c5b28a977b514545fbd9e8cf6bc17cd07058d3bb375aa6c79bb4a3b5c1a8c2ee6c6a9cec298fbcad0
6
+ metadata.gz: 9b344ae198261f514b6e8c365df995ab255b040dfd6be8a12dd6a92ea95b9f3d8886deb6f49e06d282d63578267a8483ce87c0d38841f0828533c27c8a4e708d
7
+ data.tar.gz: ee994011f0b580671d5024d21f46ffa28db51fa383a0c58d464c7ed888032b504cef8c0ffa73c4c1ba2854993d7f6e66e51997d5f0d87f8a257466b4fd7c3635
data/README.md CHANGED
@@ -1,7 +1,55 @@
1
1
  # FansWatch
2
+ [![Gem Version](https://badge.fury.io/rb/fanswatch.svg)](https://badge.fury.io/rb/fanswatch)
3
+ [![Build Status](https://travis-ci.org/wtlin1228/FansWatch.svg?branch=master)](https://travis-ci.org/wtlin1228/FansWatch)
2
4
 
3
- ## It will provide an api for tracing the facebook's pages.
5
+ FaceGroup is a gem that specializes in getting data from public Facebook Pages.
4
6
 
5
- ## Refactor the api to class variables and class methods done.
7
+ ## Installation
6
8
 
7
- ## Prepare publishing fanswatch gem now.
9
+ If you are working on a project, add this to your Gemfile: `gem 'fanswatch'`
10
+
11
+ For ad hoc installation from command line:
12
+
13
+ ```$ gem install fanswatch```
14
+
15
+ ## Setup Facebook Credentials
16
+
17
+ Please setup your Facebook developer credentials by creating an app profile on Facebook Developer: https://developers.facebook.com – you should get a "client ID" and "client secret".
18
+
19
+ ## Usage
20
+
21
+ Require FaceGroup gem in your code: `require 'fanswatch'`
22
+
23
+ Supply your Facebook credentials to our library in one of two ways:
24
+ - Setup environment variables: `ENV[FB_CLIENT_ID]` and `ENV[FB_CLIENT_SECRET]`
25
+ - or, provide them directly to FansWatch:
26
+
27
+ ```
28
+ FansWatch::FbApi.config = { client_id: ENV['FB_CLIENT_ID'],
29
+ client_secret: ENV['FB_CLIENT_SECRET'] }
30
+ ```
31
+
32
+ See the following example code for more usage details:
33
+
34
+ ```ruby
35
+ # Access the page
36
+ page = FansWatch::Page.find(
37
+ id: ENV['FB_PAGE_ID']
38
+ )
39
+
40
+ puts page.name
41
+
42
+ feed = page.feed
43
+
44
+ puts feed.count
45
+
46
+ page.feed.postings.each do |posting|
47
+ puts posting.id
48
+ puts posting.created_time
49
+ puts posting.message
50
+ if posting.attachment
51
+ puts posting.attachment.description
52
+ puts posting.attachment.url
53
+ end
54
+ end
55
+ ```
data/fanswatch.gemspec CHANGED
@@ -26,7 +26,6 @@ Gem::Specification.new do |s|
26
26
  s.add_development_dependency 'flog', '~> 4.4'
27
27
  s.add_development_dependency 'flay', '~> 2.8'
28
28
  s.add_development_dependency 'rubocop', '~> 0.42'
29
- s.add_development_dependency 'codeclimate-test-reporter', '~> 0.6'
30
29
  s.homepage = 'https://github.com/wtlin1228/FansWatch'
31
30
  s.license = 'MIT'
32
31
  end
@@ -39,6 +39,19 @@ module FansWatch
39
39
  client_secret: ENV['FB_CLIENT_SECRET'] }
40
40
  end
41
41
 
42
+ # Get page_id by url
43
+ # ex: http "https://graph.facebook.com/v2.8/cyberbuzz?
44
+ # access_token=1311663858901254|UhNPeFDGUdXZVJwagwNxBK49t-4"
45
+ #
46
+ # {
47
+ # "id": "159425621565",
48
+ # "name": "Inside 硬塞的網路趨勢觀察"
49
+ # }
50
+ def self.page_id(url)
51
+ fb_page_name = url.split('/')[3]
52
+ response = fb_resource(fb_page_name)
53
+ return response['id']
54
+ end
42
55
 
43
56
  # Get the fans page's name and id
44
57
  # ex: @id="159425621565",
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FansWatch
4
+ # Executable code for file(s) in bin/ folder
5
+ class Runner
6
+ def self.run!(args)
7
+ page_id = args[0] || ENV['FB_PAGE_ID']
8
+ puts page_id
9
+ unless page_id
10
+ puts 'USAGE: fanswatch [page_id]'
11
+ exit(1)
12
+ end
13
+ page = FansWatch::Page.find(id: page_id)
14
+
15
+ output_info(page)
16
+ end
17
+
18
+ def self.output_info(page)
19
+ page_name = page.name
20
+ separator = Array.new(page.name.length) { '-' }.join
21
+ page_info =
22
+ page.feed.postings.first(3).map.with_index do |post, index|
23
+ posting_info(post, index)
24
+ end.join
25
+
26
+ [page_name, separator, page_info].join("\n")
27
+ end
28
+
29
+ def self.posting_info(post, index)
30
+ [
31
+ "#{index + 1}: ",
32
+ message_output(post.message),
33
+ 'Attached: ' + attachment_output(post.attachment),
34
+ "\n\n"
35
+ ].join
36
+ end
37
+
38
+ def self.message_output(message)
39
+ message ? message : '(blank)'
40
+ end
41
+
42
+ def self.attachment_output(attachment)
43
+ attachment ? attachment.url.to_s : '(none)'
44
+ end
45
+ end
46
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FansWatch
4
- VERSION = '0.1.2'
4
+ VERSION = '0.1.3'
5
5
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,4 @@
1
1
  # frozen_string_literal: true
2
- require 'codeclimate-test-reporter'
3
- CodeClimate::TestReporter.start
4
2
  require 'simplecov'
5
3
  SimpleCov.start
6
4
 
@@ -43,5 +41,4 @@ VCR.configure do |c|
43
41
  c.filter_sensitive_data('<CLIENT_ID>') { ENV['FB_CLIENT_ID'] }
44
42
  c.filter_sensitive_data('<CLIENT_SECRET>') { ENV['FB_CLIENT_SECRET'] }
45
43
 
46
- c.ignore_hosts 'codeclimate.com'
47
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fanswatch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wei-Tang Lin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-28 00:00:00.000000000 Z
11
+ date: 2016-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -150,20 +150,6 @@ dependencies:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0.42'
153
- - !ruby/object:Gem::Dependency
154
- name: codeclimate-test-reporter
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '0.6'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '0.6'
167
153
  description: Extracts feed, postings, and attachments from FB fans pages
168
154
  email:
169
155
  - wtlin0711@gmail.com
@@ -186,6 +172,7 @@ files:
186
172
  - lib/fanswatch/feed.rb
187
173
  - lib/fanswatch/page.rb
188
174
  - lib/fanswatch/posting.rb
175
+ - lib/fanswatch/runner.rb
189
176
  - lib/fanswatch/version.rb
190
177
  - spec/fanswatch_spec.rb
191
178
  - spec/fixtures/results.yml