wykop 0.6

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.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/.travis.yml +5 -0
  4. data/Contributors.md +0 -0
  5. data/Gemfile +8 -0
  6. data/README.md +52 -0
  7. data/Rakefile +8 -0
  8. data/TODO.md +7 -0
  9. data/doc/diggs/add.md +7 -0
  10. data/doc/diggs/favorites.md +17 -0
  11. data/doc/diggs/links.md +14 -0
  12. data/doc/diggs/observatory.md +15 -0
  13. data/doc/diggs/popular.md +14 -0
  14. data/doc/diggs/related.md +20 -0
  15. data/doc/diggs/stream.md +25 -0
  16. data/doc/diggs/tag.md +41 -0
  17. data/doc/diggs/tags.md +11 -0
  18. data/doc/diggs/top.md +44 -0
  19. data/doc/index.md +18 -0
  20. data/doc/search.md +44 -0
  21. data/doc/user/basic.md +81 -0
  22. data/doc/user/link.md +14 -0
  23. data/doc/user/pm.md +13 -0
  24. data/doc/user/rank.md +12 -0
  25. data/lib/wykop.rb +8 -0
  26. data/lib/wykop/client.rb +77 -0
  27. data/lib/wykop/configuration.rb +29 -0
  28. data/lib/wykop/error.rb +14 -0
  29. data/lib/wykop/operations/add.rb +22 -0
  30. data/lib/wykop/operations/favorites.rb +27 -0
  31. data/lib/wykop/operations/link.rb +55 -0
  32. data/lib/wykop/operations/links.rb +18 -0
  33. data/lib/wykop/operations/message.rb +30 -0
  34. data/lib/wykop/operations/observatory.rb +35 -0
  35. data/lib/wykop/operations/popular.rb +18 -0
  36. data/lib/wykop/operations/rank.rb +23 -0
  37. data/lib/wykop/operations/related.rb +24 -0
  38. data/lib/wykop/operations/request.rb +39 -0
  39. data/lib/wykop/operations/search.rb +42 -0
  40. data/lib/wykop/operations/stream.rb +26 -0
  41. data/lib/wykop/operations/tag.rb +33 -0
  42. data/lib/wykop/operations/tags.rb +17 -0
  43. data/lib/wykop/operations/top.rb +52 -0
  44. data/lib/wykop/operations/user.rb +55 -0
  45. data/lib/wykop/version.rb +3 -0
  46. data/spec/spec_helper.rb +16 -0
  47. data/spec/user_spec.rb +70 -0
  48. data/wykop.gemspec +26 -0
  49. metadata +141 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ef857b8dc4ef8b2257e4046344fd762a49a90908
4
+ data.tar.gz: d009a48c9e3f1616556cf7f80c6a063c1b85f765
5
+ SHA512:
6
+ metadata.gz: 60a6cf6fe39f8b6a2dda736fe6aa7a0b9db803be856faff1abae2229eb6ac69c58bc5a59eddc298e43beb3d3a60ed79e8b618c0c93127282c2317563881dee91
7
+ data.tar.gz: 87582eacb622ed29c125b989470cf7c7c012064865485d6a9e3b4eb6212a9d12346297dae5d8f70aaf007af783ee9e34a9a4bd06c80fd8518b55a2ff086e0b42
@@ -0,0 +1,6 @@
1
+ sample-client.rb
2
+ *~
3
+ .DS_Store
4
+ /.idea/
5
+ Gemfile.lock
6
+ prepare.sh
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - ruby-2.1.0
4
+ gemfile:
5
+ - Gemfile
File without changes
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ # Requirements
2
+ source 'https://rubygems.org'
3
+ gem 'awesome_print'
4
+ gem 'httparty'
5
+ gem 'chronic'
6
+ gem 'rspec-core'
7
+ gem 'rspec'
8
+ gem 'rake'
@@ -0,0 +1,52 @@
1
+ # Gem for wykop.pl API
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/wykop.svg)](http://badge.fury.io/rb/wykop)
4
+ [![Code Climate](https://codeclimate.com/github/lukaszraczylo/wykop-ruby/badges/gpa.svg)](https://codeclimate.com/github/lukaszraczylo/wykop-ruby)
5
+ [![Build Status](https://travis-ci.org/lukaszraczylo/wykop-ruby.svg?branch=master)](https://travis-ci.org/lukaszraczylo/wykop-ruby)
6
+ [![Gratipay](https://img.shields.io/gratipay/lukaszraczylo.svg)](https://gratipay.com/lukaszraczylo/)
7
+
8
+ This is a Ruby Gem for the Wykop.pl API. It should simplify the process of consuming data from the Wykop.pl API for developers using Ruby.
9
+
10
+
11
+ ### Heads up
12
+
13
+ Until version 0.9+ gem will and should be considered as 'under heavy development'. Please be aware and don't bitch too much.
14
+ Current gem version: [![Gem Version](https://badge.fury.io/rb/wykop.svg)](http://badge.fury.io/rb/wykop)
15
+
16
+ If you'd like to contribute - I'm really happy with your pull requests so feel free!
17
+
18
+ ### Installation
19
+ Add following to your application Gemfile:
20
+
21
+ ```
22
+ gem 'wykop', require: 'wykop'
23
+ ```
24
+
25
+ And then execute:
26
+
27
+ ```
28
+ $ bundle
29
+ ```
30
+
31
+ Or install it on your own:
32
+
33
+ ```
34
+ $ gem install wykop
35
+ ```
36
+
37
+
38
+
39
+ ### Documentation
40
+
41
+ * [Read the f** doc](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/index.md)
42
+
43
+ ### Usage
44
+
45
+ ##### Basic usage
46
+ The gem uses a client model to query against the API. To create and configure client with your API keys and make requests through that add the following:
47
+
48
+ ```
49
+ require 'wykop'
50
+ client = Wykop::Client.new( { app_user_key: WYKOP_DEV_APP_KEY, app_user_secret: WYKOP_DEV_APP_SECRET,
51
+ app_generated_key: WYKOP_DEV_APP_GENERATED_KEY, app_username: WYKOP_USERNAME, api_host: 'http://a.wykop.pl' })
52
+ ```
@@ -0,0 +1,8 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+ task :default => :spec
4
+
5
+ desc "Run all wykop gem specs"
6
+ task :spec do
7
+ exec "rspec -c spec"
8
+ end
data/TODO.md ADDED
@@ -0,0 +1,7 @@
1
+ ### TODO
2
+
3
+ Following need some polishing & love:
4
+
5
+ * add rest of wykop API functions
6
+ * remove repetitive parts ( DRY )
7
+ * create examples
@@ -0,0 +1,7 @@
1
+ ## Adding new digg
2
+
3
+ Adds new link to the waiting room.
4
+
5
+ ```
6
+ client.add_new(:group => 'wykop', :url => 'https://github.com/lukaszraczylo/wykop-ruby', :title => 'test - wykop.pl ruby gem', :description => 'test gema dla API wykop.pl', :tags => 'programowanie ruby api usunto', :type => 'news', :plus18 => 0)
7
+ ```
@@ -0,0 +1,17 @@
1
+ ## Favorites
2
+
3
+ Checking list of favorite user links
4
+ ```
5
+ client.favorite_index(:param1 => 56072)
6
+ ```
7
+
8
+ Where:
9
+ * param1 - list ID
10
+
11
+ There's no parameters for following:
12
+
13
+ ```
14
+ client.favorite_comments
15
+ client.favorite_entries
16
+ client.favorite_lists
17
+ ```
@@ -0,0 +1,14 @@
1
+ ## Links
2
+
3
+ Displays links from the main page
4
+
5
+ ```
6
+ client.popular_show({:category => 'promoted'})
7
+ ```
8
+
9
+ Available switches
10
+
11
+ ```
12
+ * promoted
13
+ * upcoming
14
+ ```
@@ -0,0 +1,15 @@
1
+ ### Observatory
2
+
3
+ ```
4
+ #Latest 50 votes
5
+ client.observatory_votes
6
+
7
+ #Latest 25 comments
8
+ client.observatory_comments
9
+
10
+ #Latest 25 microblog posts
11
+ client.observatory_entries
12
+
13
+ #Latest 25 microblog posts comments
14
+ client.observatory_entries_comments
15
+ ```
@@ -0,0 +1,14 @@
1
+ ## Popular
2
+
3
+ Displays links from the "ostatnio popularne" frame
4
+
5
+ ```
6
+ client.popular_show({:category => 'promoted'})
7
+ ```
8
+
9
+ Available switches
10
+
11
+ ```
12
+ * promoted
13
+ * upcoming
14
+ ```
@@ -0,0 +1,20 @@
1
+ ## Related links
2
+
3
+
4
+ #### Voting
5
+
6
+ ```
7
+ client.related_vote_up(:param1 => { :param1 => 2242488, :param2 => 27794764 })
8
+ client.related_vote_down(:param1 => { :param1 => 2242488, :param2 => 27794764 })
9
+ ```
10
+
11
+ Where
12
+
13
+ * param1 => digg ID
14
+ * param2 => related ID
15
+
16
+ #### Adding new
17
+
18
+ ```
19
+ client.related_add({ :param1 => 2242488, :url => 'http://github.com/lukaszraczylo/wykop-ruby', :title => '(test) ruby gem dla wykop.pl', :plus18 => 0})
20
+ ```
@@ -0,0 +1,25 @@
1
+ ## Stream
2
+
3
+ Displays information from stream ( "mikroblog" )
4
+
5
+ #### stream_show
6
+
7
+ Displays stream
8
+
9
+ ```
10
+ client.stream_show
11
+
12
+ # Displays page 3 of the stream
13
+ client.stream_show({:page => 3})
14
+ ```
15
+
16
+ #### stream_hot
17
+
18
+ Displays stream from 'hot' category
19
+
20
+ ```
21
+ client.stream_hot
22
+
23
+ # Displays page 3 of the stream
24
+ client.stream_hot({:page => 3})
25
+ ```
@@ -0,0 +1,41 @@
1
+ ## Tag
2
+
3
+ Works with diggs related to tags
4
+
5
+ #### tag_show
6
+
7
+ Returns an array of diggs assigned to given tag
8
+
9
+ ```
10
+ client.tag_show(:param1 => 'polityka', :type => 'links', :page => 3)
11
+ ```
12
+
13
+ Available types:
14
+ ```
15
+ - index ( all diggs )
16
+ - links
17
+ - entries ( mikroblog )
18
+ ```
19
+
20
+ If no type specified it fails back to **index**
21
+
22
+
23
+ #### tag_observe / tag_unobserve
24
+
25
+ Add / remove tag from observed list
26
+
27
+ ```
28
+ client.tag_observe(:param1 => 'polityka')
29
+ client.tag_unobserve(:param1 => 'polityka')
30
+ ```
31
+
32
+ Returns **error 999 / "Cos kombinujesz" ** if you apply change more than once to the same tag.
33
+
34
+ #### tag_block / tag_unblock
35
+
36
+ Add / remove tag from blocked list
37
+
38
+ ```
39
+ client.tag_block(:param1 => 'polityka')
40
+ client.tag_unblock(:param1 => 'polityka')
41
+ ```
@@ -0,0 +1,11 @@
1
+ ## Tags
2
+
3
+ Displays information about top tags
4
+
5
+ #### tags_show
6
+
7
+ Returns an array of available tags
8
+
9
+ ```
10
+ client.tags_show
11
+ ```
@@ -0,0 +1,44 @@
1
+ ## Top
2
+
3
+ Displays information about top diggs
4
+
5
+ #### top_index
6
+
7
+ Hits of the year
8
+
9
+ ```
10
+ client.top_index
11
+ client.top_index({:year => 2013 })
12
+ ```
13
+
14
+ #### top_date
15
+
16
+ Hits of the month
17
+
18
+ ```
19
+ #current
20
+ client.top_date
21
+
22
+ #year
23
+ client.top_date({:year => 2013})
24
+
25
+ #year and month
26
+ client.top_date({:year => 2013, :month => 12})
27
+
28
+ #year month and page
29
+ client.top_date({:year => 2013, :month => 12, :page => 1})
30
+ ```
31
+
32
+ Default values ( if not specified ) are:
33
+ - last year
34
+ - January
35
+ - 0 page ( first )
36
+
37
+
38
+ #### top_hits
39
+
40
+ Hits, random ones - from 'wybrane hity'
41
+
42
+ ```
43
+ client.top_hits
44
+ ```
@@ -0,0 +1,18 @@
1
+ ## wykop API Gem docs
2
+
3
+ * User
4
+ * [user basics](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/user/basic.md)
5
+ * [rank](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/user/rank.md)
6
+ * [link](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/user/link.md)
7
+ * [messages](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/user/pm.md)
8
+ * Diggs
9
+ * [add new](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/diggs/add.md)
10
+ * [tags](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/diggs/tags.md)
11
+ * [links](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/diggs/links.md)
12
+ * [stream](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/diggs/stream.md)
13
+ * [popular](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/diggs/popular.md)
14
+ * [related](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/diggs/related.md)
15
+ * [favorites](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/diggs/favorites.md)
16
+ * [top diggs](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/diggs/top.md)
17
+ * [observatory](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/diggs/observatory.md)
18
+ * [Search](https://github.com/lukaszraczylo/wykop-ruby/tree/master/doc/search.md)
@@ -0,0 +1,44 @@
1
+ ### Search
2
+
3
+ #### Searching index
4
+
5
+ ```
6
+ client.search_index({:q => 'potato'})
7
+
8
+ # Taking 3rd page of results
9
+ client.search_index({:q => 'potato', :page => 3})
10
+ ```
11
+
12
+ #### Searching entries
13
+
14
+ ```
15
+ client.search_entries({:q => 'potato'})
16
+
17
+ # Taking 2nd page of results
18
+ client.search_entries({:q => 'potato', :page => 2})
19
+ ```
20
+
21
+ #### Searching profiles
22
+
23
+ ```
24
+ client.search_profiles({:q => 'ouna-'})
25
+ ```
26
+
27
+ #### Searching links
28
+
29
+ ```
30
+ # what – rodzaj znalezisk: all (wszystkie), promoted (na głównej), archive (zarchiwizowane), duplicates (duplikaty)
31
+ # sort – sortowanie: best (najlepsze), diggs (po liczbie wykopów), comments (po liczbie komentarzy), new (po czasie dodania)
32
+ # kind – rodzaj znalezisk: all (wszystkie), today (dzisiaj), yesterday (wczoraj), week (ostatni tydzień), month (ostatni miesiąc), range (zakres czasu)
33
+
34
+ # Searching for 'banana'
35
+ client.search_links({:q => 'potato'})
36
+
37
+ # ... and page of results
38
+ client.search_links({:q => 'potato', :page => 2})
39
+
40
+ # ... from the main page
41
+ client.search_links({:q => 'potato', :page => 2, :what => 'promoted'})
42
+
43
+ # ... etc.
44
+ ```
@@ -0,0 +1,81 @@
1
+ ### User
2
+
3
+ #### Logging in
4
+
5
+ ```
6
+ client = Wykop::Client.new({ app_user_key: CFG_USER_KEY, app_user_secret: CFG_USER_SECRET,
7
+ app_username: CFG_USER_NAME, app_generated_key: CFG_GEN_SECRET, api_host: 'http://a.wykop.pl' })
8
+ if client.login
9
+ (...)
10
+ end
11
+ ```
12
+
13
+ #### Getting user favorites
14
+
15
+ ```
16
+ client.favorites
17
+ ```
18
+
19
+ #### Getting user observed diggs
20
+
21
+ ```
22
+ client.observed
23
+ ```
24
+
25
+ #### Getting user observed tags
26
+
27
+ ```
28
+ client.tags
29
+ ```
30
+
31
+ #### Getting user information
32
+
33
+ ```
34
+ client.info
35
+ ```
36
+
37
+ Returns all available client information ( after successful log in )
38
+
39
+ ```
40
+ client.info('signup_date')
41
+ ```
42
+
43
+ Returns sign up date for client account. Acceptable parameters:
44
+
45
+ ```
46
+ {
47
+ "login" => "ouna-",
48
+ "email" => "224af1bddf5::banana",
49
+ "public_email" => "",
50
+ "name" => "",
51
+ "www" => "",
52
+ "jabber" => "",
53
+ "gg" => "",
54
+ "city" => "",
55
+ "about" => "Sysadmin.",
56
+ "author_group" => 1,
57
+ "links_added" => 71,
58
+ "links_published" => 6,
59
+ "comments" => 2617,
60
+ "rank" => 1380,
61
+ "followers" => 20,
62
+ "following" => 5,
63
+ "entries" => 5,
64
+ "entries_comments" => 15,
65
+ "diggs" => 3971,
66
+ "buries" => 1521,
67
+ "groups" => 0,
68
+ "related_links" => 59,
69
+ "signup_date" => "2007-12-04 11:50:25",
70
+ "avatar" => "http://xG.cdn03.imgwykop.pl/c3397992/ouna-_GMaL3lbIGi,q60.jpg",
71
+ "avatar_big" => "http://xG.cdn03.imgwykop.pl/c3397992/ouna-_GMaL3lbIGi,q150.jpg",
72
+ "avatar_med" => "http://xG.cdn03.imgwykop.pl/c3397992/ouna-_GMaL3lbIGi,q48.jpg",
73
+ "avatar_lo" => "http://xG.cdn03.imgwykop.pl/c3397992/ouna-_GMaL3lbIGi,q30.jpg",
74
+ "is_observed" => nil,
75
+ "is_blocked" => nil,
76
+ "sex" => "male",
77
+ "url" => "http://www.wykop.pl/ludzie/ouna-/",
78
+ "violation_url" => nil,
79
+ "userkey" => "aooo::potato"
80
+ }
81
+ ```