fbwish 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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