fbwish 1.0.1 → 1.0.2

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Mzc0OTA3MTAxMjMyMDlhYTU1ZTA4NGM0MmY5ZWU1MjYxZjA4NjhmMg==
4
+ NmRhNzNhMmZhOGU2MWFhZjM2YjliNDI5N2NkMmMxY2MxNTE3NTNlOA==
5
5
  data.tar.gz: !binary |-
6
- NWRlODExZThlYzhlODAxZWQ2ZWVlYjBhNTY0MTk2OTY4NGJmYjM0NA==
6
+ ZTI2Y2UzYmRiNjE3NmZiMjg2ODljZGJmZjE0OTNhZTZlMzBjYzE4ZQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NjU0MzhlOWI0ZmZhMTgxNjhiMmMzMDk1NDZkY2U5ZTViZGRiYWIyNzA0NzY2
10
- ODM2NDkxNDNmYzdiNzUxOWJlODcwYTg0NjVmNDdhMmVlOGNkYzJhOGQwYjAw
11
- NGQ4OGExNGFlNGM2NTVkNDZjODg4MjI1YjE4Y2FkZGUyZWQ1N2Y=
9
+ ZDI3MTlhNzI2MzNjYjQ0OTgxNDNlNTMwMjJmMzVjZjM2MDUwNjJmOTIzNDE1
10
+ MTdmZmQ2Y2M1OWNlZDcyYmYwOTlkMThmYTI2ZTEwMThlZmNmODEyMjM0ZmNj
11
+ MWFjYTFiYTg4NzVmZjQ5ODAxZmU2ZWExYjBlYzQ2MzIxOGNmYjI=
12
12
  data.tar.gz: !binary |-
13
- YjlmYTY1ZTZhYzUwYmYzODFmYThjZWMwZWY0NTYwMDI0NmI5ZTc0NzkwZWYx
14
- ZThlM2MwNzdkYTg1YWFhOWRiODgyNGFkMDZhYzJlN2JhZTJkNTNlMDk2NTI1
15
- MWJhNjc4ZWQ5YTk2ZmEyY2I2ODBjNTdhYjIwYTUxODAyZmU0MWM=
13
+ NTYwOWEyZDljNmY3YTA4MWMzNjk4ZDUzNDMyYmQ4OGIwOTBhZmY5ZjZjMzQ5
14
+ YjA1OWE2Y2ZkZDYyMmFkNGZjOWVlZDU2ZmNkZmVlMGE3YTcwODE2MWU1OTQ0
15
+ NzY2ZjYyNTVlOTJhMjU1NTZlOTI2YjcwM2ExOWNkNzcyOWRlMzY=
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  Ruby Gem to automate facebook like & comment on the birthday wishes using Graph API.
4
4
 
5
+ If you have alot of friends in your facebook network & when they wish you on your birthday, it's pretty cumbersome to reply to each one of them. This gem helps you in automating your replies by liking & commenting on those wishes using facebook's graph API (powered by ruby gem [koala](https://github.com/arsduo/koala)).
6
+
5
7
  ## Installation
6
8
 
7
9
  Add this line to your application's Gemfile:
@@ -18,11 +20,55 @@ Or install it yourself as:
18
20
 
19
21
  ## Usage
20
22
 
21
- TODO: Write usage instructions here
23
+ Getting your facebook access token
24
+
25
+ 1. Goto [Graph API Explorer](https://developers.facebook.com/tools/explorer)
26
+ 2. Click `Get Access Token`
27
+ 3. Make sure only `publish_actions` & `read_stream` is checked under **Extended Permissions** tab. Also nothing should be checked under **User Data Permissions** tab.
28
+ 4. Click `Get Access Token` button.
29
+ 5. Allow access when a popup is displayed.
30
+ 6. Copy the generated access token.
31
+
32
+ #### Final step
33
+ ```ruby
34
+ require('fbwish')
35
+ wisher = Fbwish::Wisher.new({
36
+ # A valid ruby regular expression based on the wishes you've received.
37
+ matcher: /(happy)|(birthday)|(b[\']?day)|(B[\']?DAY)|(hbd)/i,
38
+ # Set of replies that you'd like to wish
39
+ replies: ["Thank you :D", "Thanks :D", "Thx a lot :-)", "Hey, thx !!! :-)","Thnk U !!!", "Hey Thanks ! :D "],
40
+ access_token: "PASTE YOUR ACCESS TOKEN HERE",
41
+ # Number of people who wished you on your birthday, you'll know this
42
+ # on your timeline when facebook says "foo, bar & 254 others wished you"
43
+ wish_count: 256
44
+ })
45
+ wisher.wish_em_all! # Sit back & relax ;-)
46
+ ```
47
+
48
+ ### Advanced stuff
49
+ Sometimes people wish you in multiple languages & you might want to reply back in the same language. In that case you might want to namespace corresponding `matcher` & `replies` as follows:
50
+ ```ruby
51
+ require('fbwish')
52
+ wisher = Fbwish::Wisher.new({
53
+ matcher: {
54
+ # regex to match english wishes
55
+ en: /(happy)|(birthday)|(b[\']?day)|(B[\']?DAY)|(hbd)/i,
56
+ # regex to match tamil wishes (or your own language )
57
+ tam: /(iniya)|(inya)|(இனிய)|(பிறந்தநாள்)|(வாழ்த்துக்கள்)/i
58
+ },
59
+ replies: {
60
+ # namespace with the same key i.e. "en"
61
+ en: ["Thank you :D", "Thanks :D", "Thx a lot :-)"],
62
+ tam: ["நன்றி !!! :D"]
63
+ },
64
+ access_token: "PASTE YOUR ACCESS TOKEN HERE",
65
+ wish_count: 256
66
+ })
67
+ ```
22
68
 
23
69
  ## Contributing
24
70
 
25
- 1. Fork it ( https://github.com/[my-github-username]/fbwish/fork )
71
+ 1. Fork it ( https://github.com/mudassir0909/fbwish/fork )
26
72
  2. Create your feature branch (`git checkout -b my-new-feature`)
27
73
  3. Commit your changes (`git commit -am 'Add some feature'`)
28
74
  4. Push to the branch (`git push origin my-new-feature`)
@@ -1,3 +1,3 @@
1
1
  module Fbwish
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
data/lib/fbwish.rb CHANGED
@@ -3,23 +3,28 @@ require "koala"
3
3
 
4
4
  module Fbwish
5
5
  class Wisher
6
+
7
+ attr_accessor :graph, :matcher, :replies, :wish_count
8
+
6
9
  def initialize(options={})
7
- required_options = [:access_token, :matcher, :replies]
8
- unspecified_options = options.keys.reject{ |key| options[key] }
10
+ required_options = [:access_token, :matcher, :replies, :wish_count]
11
+ unspecified_options = required_options.reject{ |key| options[key] }
9
12
 
10
13
  unless unspecified_options.empty?
11
- raise ArgumentError("Following options are required: #{unspecified_options.join(', ')}")
14
+ raise ArgumentError, "Following options are required: #{unspecified_options.join(', ')}"
12
15
  end
13
16
 
14
17
  self.graph = Koala::Facebook::API.new(options[:access_token])
15
18
  self.matcher = options[:matcher]
16
19
  self.replies = options[:replies]
20
+ self.wish_count = options[:wish_count]
17
21
  end
18
22
 
19
23
  def wish_em_all!
20
24
  wishes = nil
25
+ iteration_count = (wish_count.to_f / 25).ceil
21
26
 
22
- 1.upto(13) do |idx|
27
+ 1.upto(iteration_count) do |idx|
23
28
  wishes = wishes.next_page rescue graph.get_connections('me', 'feed')
24
29
 
25
30
  wishes.each do |wish|
@@ -42,7 +47,7 @@ module Fbwish
42
47
  end
43
48
 
44
49
  def like_and_comment(wish)
45
- if matcher.is_a?(Object)
50
+ if matcher.is_a?(Hash)
46
51
  matcher.each do |locale, regex|
47
52
  if regex.match(wish['message'])
48
53
  like(wish)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fbwish
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mudassir Ali
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-21 00:00:00.000000000 Z
11
+ date: 2014-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler