redd 0.8.8 → 0.9.0.pre.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -1
- data/CONTRIBUTING.md +63 -0
- data/Guardfile +7 -0
- data/README.md +6 -5
- data/Rakefile +1 -1
- data/TODO.md +423 -0
- data/bin/console +91 -77
- data/bin/guard +2 -0
- data/lib/redd.rb +7 -5
- data/lib/redd/api_client.rb +2 -3
- data/lib/redd/auth_strategies/auth_strategy.rb +7 -2
- data/lib/redd/auth_strategies/script.rb +7 -0
- data/lib/redd/auth_strategies/userless.rb +7 -0
- data/lib/redd/auth_strategies/web.rb +6 -1
- data/lib/redd/client.rb +0 -3
- data/lib/redd/errors.rb +56 -0
- data/lib/redd/middleware.rb +10 -8
- data/lib/redd/models/access.rb +30 -18
- data/lib/redd/models/comment.rb +185 -27
- data/lib/redd/models/front_page.rb +16 -36
- data/lib/redd/models/gildable.rb +1 -1
- data/lib/redd/models/inboxable.rb +13 -3
- data/lib/redd/models/listing.rb +27 -6
- data/lib/redd/models/live_thread.rb +76 -23
- data/lib/redd/models/live_update.rb +46 -0
- data/lib/redd/models/messageable.rb +1 -1
- data/lib/redd/models/mod_action.rb +59 -0
- data/lib/redd/models/model.rb +23 -0
- data/lib/redd/models/moderatable.rb +6 -6
- data/lib/redd/models/modmail.rb +61 -0
- data/lib/redd/models/modmail_conversation.rb +154 -0
- data/lib/redd/models/modmail_message.rb +35 -0
- data/lib/redd/models/more_comments.rb +29 -5
- data/lib/redd/models/multireddit.rb +63 -20
- data/lib/redd/models/paginated_listing.rb +113 -0
- data/lib/redd/models/postable.rb +11 -13
- data/lib/redd/models/private_message.rb +78 -11
- data/lib/redd/models/replyable.rb +2 -2
- data/lib/redd/models/reportable.rb +14 -0
- data/lib/redd/models/searchable.rb +2 -2
- data/lib/redd/models/self.rb +17 -0
- data/lib/redd/models/session.rb +75 -31
- data/lib/redd/models/submission.rb +309 -56
- data/lib/redd/models/subreddit.rb +330 -103
- data/lib/redd/models/trophy.rb +34 -0
- data/lib/redd/models/user.rb +185 -46
- data/lib/redd/models/wiki_page.rb +37 -16
- data/lib/redd/utilities/error_handler.rb +13 -13
- data/lib/redd/utilities/unmarshaller.rb +7 -5
- data/lib/redd/version.rb +1 -1
- data/redd.gemspec +18 -15
- metadata +82 -16
- data/lib/redd/error.rb +0 -53
- data/lib/redd/models/basic_model.rb +0 -80
- data/lib/redd/models/lazy_model.rb +0 -75
- data/lib/redd/models/mod_mail.rb +0 -142
- data/lib/redd/utilities/stream.rb +0 -61
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2390ae91194cc27f480a767e8d3c6aeaf8f4d649
|
4
|
+
data.tar.gz: ff8f69a3280a4403094fb6f5836167a6810704df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24cb20848f3d9c6b863b6b37f91b44380dca1eeacbfd1387568ee4b745e85e3e6e87c960a8cdd43e41a6ce821ab0a31fa68447629aa58d33656c86bce7959dfd
|
7
|
+
data.tar.gz: d3ece323ea83e671ea7f618fad231a29fbf9ba50b5cb1fdf138f49636907280fe8b9b726c41fb10acdb07830f50253f56269a6b13d713149edba06cffe2d2f86
|
data/.rubocop.yml
CHANGED
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
# Contributing
|
2
|
+
|
3
|
+
This is the documentation that contains information on contributing to Redd.
|
4
|
+
Note that I would appreciate contributions to this document itself.
|
5
|
+
|
6
|
+
There isn't an official code of conduct, just
|
7
|
+
[don't be a dick](https://twitter.com/wilw/status/5966220832).
|
8
|
+
|
9
|
+
### Filing an Issue / Making a Pull Request
|
10
|
+
|
11
|
+
**The quickest way to get a feature into Redd is by raising an issue.**
|
12
|
+
|
13
|
+
Please try to provide as much information as possible when submitting an
|
14
|
+
issue. I'm not going to get mad if the issue is inconsequential, so don't
|
15
|
+
hesitate to ask even simple questions about the gem.
|
16
|
+
|
17
|
+
When making a pull request, you don't really have to write tests for the
|
18
|
+
time being (what a relief for you!). Just make sure you have manually tested
|
19
|
+
the call yourself and rubocop doesn't whine about it too much.
|
20
|
+
|
21
|
+
### Architecture
|
22
|
+
The central part of the gem is the `Client`. It knows how to make HTTP
|
23
|
+
requests. For specific reddit behaviour, there is a subclass named
|
24
|
+
`APIClient`. Keep in mind that neither of these are actually aware of the API
|
25
|
+
methods, just how to interact with the API.
|
26
|
+
|
27
|
+
To simplify the architecture as much as humanly possible, everything is
|
28
|
+
represented as a model. A model holds a client and some attributes. It has
|
29
|
+
some methods that make API requests using the client and maybe some of its
|
30
|
+
attributes.
|
31
|
+
|
32
|
+
Each authentication method has an `AuthStrategy` associated with it. This only
|
33
|
+
provides API keys and is aware of the OAuth2 protocol.
|
34
|
+
|
35
|
+
The `Redd.it` method combines all of these:
|
36
|
+
|
37
|
+
1. It creates an `AuthStrategy`.
|
38
|
+
2. It creates an `APIClient` using the `AuthStrategy`.
|
39
|
+
3. It creates a `Session` model using the `APIClient`.
|
40
|
+
4. It returns the created `Session`.
|
41
|
+
|
42
|
+
This seems complicated but trust me on this, this gem has gone through three
|
43
|
+
rewrites.
|
44
|
+
|
45
|
+
### Reddit API
|
46
|
+
|
47
|
+
Here are some links where you can find helpful information about the reddit
|
48
|
+
API:
|
49
|
+
|
50
|
+
1. [API reference](https://www.reddit.com/dev/api)
|
51
|
+
2. [GitHub Wiki](https://github.com/reddit/reddit/wiki/API)
|
52
|
+
3. [API Subreddit](https://www.reddit.com/r/redditdev)
|
53
|
+
|
54
|
+
### Testing
|
55
|
+
|
56
|
+
Unit testing has turned out to be ultimately pointless; the API is a total
|
57
|
+
mess and requires a deep knowledge of how reddit works. Testing the multitude
|
58
|
+
of parameters that each call takes, it's safe to assume individual unit tests
|
59
|
+
will span a few thousand lines and be incredibly brittle. So when you submit a
|
60
|
+
pull-request, I expect you to have *manually tested the calls yourself*.
|
61
|
+
|
62
|
+
To help you, there is a console that can be found at `./bin/console`. Give it
|
63
|
+
a shot — I think you'll love it!
|
data/Guardfile
ADDED
data/README.md
CHANGED
@@ -31,6 +31,8 @@
|
|
31
31
|
|
32
32
|
### Demo
|
33
33
|
|
34
|
+
#### Reddit Bot
|
35
|
+
|
34
36
|
```ruby
|
35
37
|
require 'redd'
|
36
38
|
|
@@ -42,7 +44,7 @@ session = Redd.it(
|
|
42
44
|
password: 'hunter2'
|
43
45
|
)
|
44
46
|
|
45
|
-
session.subreddit('all').
|
47
|
+
session.subreddit('all').comments.stream do |comment|
|
46
48
|
if comment.body.include?('roll a dice')
|
47
49
|
comment.reply("It's a #{rand(1..6)}!")
|
48
50
|
elsif comment.body.include?('flip a coin')
|
@@ -51,6 +53,8 @@ session.subreddit('all').comment_stream do |comment|
|
|
51
53
|
end
|
52
54
|
```
|
53
55
|
|
56
|
+
#### Web Application
|
57
|
+
|
54
58
|
```ruby
|
55
59
|
require 'sinatra'
|
56
60
|
require 'redd/middleware'
|
@@ -98,10 +102,7 @@ end
|
|
98
102
|
Check out the [**official subreddit**](https://www.reddit.com/r/Redd) or raise a [**GitHub issue**](https://github.com/avinashbot/redd/issues/new).
|
99
103
|
|
100
104
|
#### How do I request a feature / contribute?
|
101
|
-
|
102
|
-
- The quickest way to get a feature into Redd is to raise a [**GitHub issue**](https://github.com/avinashbot/redd/issues/new).
|
103
|
-
- Pull requests are also appreciated!
|
104
|
-
- Don't hesitate! There are no stupid questions!
|
105
|
+
Take a look at [**CONTRIBUTING.md**](https://github.com/avinashbot/redd/blob/master/CONTRIBUTING.md).
|
105
106
|
|
106
107
|
#### How can I contact you?
|
107
108
|
[Reddit](https://www.reddit.com/message/compose/?to=Mustermind) /
|
data/Rakefile
CHANGED
data/TODO.md
ADDED
@@ -0,0 +1,423 @@
|
|
1
|
+
# TODO
|
2
|
+
|
3
|
+
This page contains all the calls from the reddit api along with their
|
4
|
+
implementations in Redd. The API docs are located
|
5
|
+
[**here**](https://www.reddit.com/dev/api).
|
6
|
+
|
7
|
+
## Account
|
8
|
+
|
9
|
+
- **GET /api/v1/me**
|
10
|
+
- **Implemented**: [Redd::Models::Session#me](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#me-instance_method)
|
11
|
+
- **GET /api/v1/me/karma**
|
12
|
+
- **Implemented**: [Redd::Models::Session#karma_breakdown](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#karma_breakdown-instance_method)
|
13
|
+
- **GET /api/v1/me/prefs**
|
14
|
+
- **Implemented**: [Redd::Models::Session#my_preferences](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#my_preferences-instance_method)
|
15
|
+
- **PATCH /api/v1/me/prefs**
|
16
|
+
- **Implemented**: [Redd::Models::Session#edit_preferences](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#edit_preferences-instance_method)
|
17
|
+
- **GET /api/v1/me/trophies**
|
18
|
+
- **Won't Implement**: Already implemented for User.
|
19
|
+
- **GET /prefs/where**
|
20
|
+
- **Partially Implemented**: [Redd::Models::Session](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session) (for friends, blocked, and trusted)
|
21
|
+
|
22
|
+
## Captcha
|
23
|
+
|
24
|
+
- **GET /api/needs_captcha**
|
25
|
+
- **Won't Implement**: Not necessary for OAuth2 clients
|
26
|
+
|
27
|
+
## Flair
|
28
|
+
|
29
|
+
- **POST [/r/subreddit]/api/clearflairtemplates**
|
30
|
+
- **Not Implemented**
|
31
|
+
- **POST [/r/subreddit]/api/deleteflair**
|
32
|
+
- **Implemented**: [Redd::Models::Subreddit#delete_flair](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#delete_flair-instance_method)
|
33
|
+
- **POST [/r/subreddit]/api/deleteflairtemplate**
|
34
|
+
- **Not Implemented**
|
35
|
+
- **POST [/r/subreddit]/api/flair**
|
36
|
+
- **Implemented**: [Redd::Models::Subreddit#set_flair](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#set_flair-instance_method)
|
37
|
+
- **POST [/r/subreddit]/api/flairconfig**
|
38
|
+
- **Not Implemented**
|
39
|
+
- **POST [/r/subreddit]/api/flaircsv**
|
40
|
+
- **Not Implemented**
|
41
|
+
- **GET [/r/subreddit]/api/flairlist**
|
42
|
+
- **Implemented**: [Redd::Models::Subreddit#flair_listing](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#flair_listing-instance_method)
|
43
|
+
- **POST [/r/subreddit]/api/flairselector**
|
44
|
+
- **Not Implemented**
|
45
|
+
- **POST [/r/subreddit]/api/flairtemplate**
|
46
|
+
- **Not Implemented**
|
47
|
+
- **GET [/r/subreddit]/api/link_flair**
|
48
|
+
- **Not Implemented**
|
49
|
+
- **POST [/r/subreddit]/api/selectflair**
|
50
|
+
- **Implemented**: [Redd::Models::Subreddit#set_flair_template](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#set_flair_template-instance_method)
|
51
|
+
- **POST [/r/subreddit]/api/setflairenabled**
|
52
|
+
- **Not Implemented**
|
53
|
+
- **GET [/r/subreddit]/api/user_flair**
|
54
|
+
- **Not Implemented**
|
55
|
+
|
56
|
+
## Reddit Gold
|
57
|
+
|
58
|
+
- **POST /api/v1/gold/gild/fullname**
|
59
|
+
- **Implemented**: [Redd::Models::Gildable#gild](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Gildable#gild-instance_method)
|
60
|
+
- **POST /api/v1/gold/give/username**
|
61
|
+
- **Implemented**: [Redd::Models::User#gift_gold](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/User#gift_gold-instance_method)
|
62
|
+
|
63
|
+
## Links & Comments
|
64
|
+
|
65
|
+
- **POST /api/comment**
|
66
|
+
- **Implemented**: [Redd::Models::Replyable#reply](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Replyable#reply-instance_method)
|
67
|
+
- **POST /api/del**
|
68
|
+
- **Implemented**: [Redd::Models::Postable#delete](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Postable#delete-instance_method)
|
69
|
+
- **POST /api/editusertext**
|
70
|
+
- **Implemented**: [Redd::Models::Postable#edit](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Postable#edit-instance_method)
|
71
|
+
- **POST /api/hide**
|
72
|
+
- **Implemented**: [Redd::Models::Postable#hide](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Postable#hide-instance_method)
|
73
|
+
- **GET [/r/subreddit]/api/info**
|
74
|
+
- **Implemented**
|
75
|
+
- [Redd::Models::Session#from_fullnames](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#from_fullnames-instance_method)
|
76
|
+
- Also implemented as part of lazy loaders.
|
77
|
+
- **POST /api/lock**
|
78
|
+
- **Implemented**: [Redd::Models::Submission#lock](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#lock-instance_method)
|
79
|
+
- **POST /api/marknsfw**
|
80
|
+
- **Implemented**: [Redd::Models::Submission#mark_as_nsfw](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#mark_as_nsfw-instance_method)
|
81
|
+
- **GET /api/morechildren**
|
82
|
+
- TODO: add implementation/documentation link
|
83
|
+
- **POST /api/report**
|
84
|
+
- **Implemented**: [Redd::Models::Reportable#report](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Reportable#report-instance_method)
|
85
|
+
- **POST /api/save**
|
86
|
+
- **Implemented**: [Redd::Models::Postable#save](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Postable#save-instance_method)
|
87
|
+
- **GET /api/saved_categories**
|
88
|
+
- **Implemented**: [Redd::Models::Session#saved_categories](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#saved_categories-instance_method)
|
89
|
+
- **POST /api/sendreplies**
|
90
|
+
- **Implemented**: [Redd::Models::Postable#enable_inbox_replies](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Postable#enable_inbox_replies-instance_method)
|
91
|
+
- **POST /api/set_contest_mode**
|
92
|
+
- **Implemented**: [Redd::Models::Submission#enable_contest_mode](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#enable_contest_mode-instance_method)
|
93
|
+
- **POST /api/set_subreddit_sticky**
|
94
|
+
- **Implemented**: [Redd::Models::Submission#make_sticky](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#make_sticky-instance_method)
|
95
|
+
- **POST /api/set_suggested_sort**
|
96
|
+
- **Implemented**: [Redd::Models::Submission#set_suggested_sort](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#set_suggested_sort-instance_method)
|
97
|
+
- **POST /api/spoiler**
|
98
|
+
- **Implemented**: [Redd::Models::Submission#mark_as_spoiler](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#mark_as_spoiler-instance_method)
|
99
|
+
- **POST /api/store_visits**
|
100
|
+
- **Not Implemented**
|
101
|
+
- **POST /api/submit**
|
102
|
+
- **Implemented**: [Redd::Models::Subreddit#submit](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#submit-instance_method)
|
103
|
+
- **POST /api/unhide**
|
104
|
+
- **Implemented**: [Redd::Models::Postable#unhide](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Postable#unhide-instance_method)
|
105
|
+
- **POST /api/unlock**
|
106
|
+
- **Implemented**: [Redd::Models::Submission#unlock](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#unlock-instance_method)
|
107
|
+
- **POST /api/unmarknsfw**
|
108
|
+
- **Implemented**: [Redd::Models::Submission#unmark_as_nsfw](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#unmark_as_nsfw-instance_method)
|
109
|
+
- **POST /api/unsave**
|
110
|
+
- **Implemented**: [Redd::Models::Postable#unsave](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Postable#unsave-instance_method)
|
111
|
+
- **POST /api/unspoiler**
|
112
|
+
- **Implemented**: [Redd::Models::Submission#unmark_as_spoiler](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#unmark_as_spoiler-instance_method)
|
113
|
+
- **POST /api/vote**
|
114
|
+
- **Implemented**:
|
115
|
+
- [Redd::Models::Postable#upvote](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Postable#upvote-instance_method)
|
116
|
+
- [Redd::Models::Postable#downvote](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Postable#downvote-instance_method)
|
117
|
+
- [Redd::Models::Postable#undo_vote](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Postable#undo_vote-instance_method)
|
118
|
+
|
119
|
+
## Listings
|
120
|
+
|
121
|
+
- **GET /api/trending_subreddits**
|
122
|
+
- **Implemented**: [Redd::Models::Session#trending_subreddits](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#trending_subreddits-instance_method)
|
123
|
+
- **GET /by_id/names**
|
124
|
+
- **Not Implemented**: See `/api/info`.
|
125
|
+
- **GET [/r/subreddit]/comments/article**
|
126
|
+
- **Implemented**: Part of lazy-loading in Submission and Comment.
|
127
|
+
- **GET /duplicates/article**
|
128
|
+
- **Implemented**: [Redd::Models::Submission#duplicates](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#duplicates-instance_method)
|
129
|
+
- **GET [/r/subreddit]/hot**
|
130
|
+
- **Implemented**: [Redd::Models::FrontPage#hot](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/FrontPage#hot-instance_method)
|
131
|
+
- **Implemented**: [Redd::Models::Submission#hot](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#hot-instance_method)
|
132
|
+
- **GET [/r/subreddit]/new**
|
133
|
+
- **Implemented**: [Redd::Models::FrontPage#new](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/FrontPage#new-instance_method)
|
134
|
+
- **Implemented**: [Redd::Models::Submission#new](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#new-instance_method)
|
135
|
+
- **GET [/r/subreddit]/random**
|
136
|
+
- **Implemented**: [Redd::Models::FrontPage#random](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/FrontPage#random-instance_method)
|
137
|
+
- **Implemented**: [Redd::Models::Submission#random](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#random-instance_method)
|
138
|
+
- **GET [/r/subreddit]/rising**
|
139
|
+
- **Implemented**: [Redd::Models::FrontPage#rising](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/FrontPage#rising-instance_method)
|
140
|
+
- **Implemented**: [Redd::Models::Submission#rising](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#rising-instance_method)
|
141
|
+
- **GET [/r/subreddit]/sort**
|
142
|
+
- **Implemented**: [Redd::Models::FrontPage#listing](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/FrontPage#listing-instance_method)
|
143
|
+
- **Implemented**: [Redd::Models::Submission#listing](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Submission#listing-instance_method)
|
144
|
+
|
145
|
+
## Live Threads
|
146
|
+
|
147
|
+
- **GET /api/live/by_id/names**
|
148
|
+
- **Not Implemented**
|
149
|
+
- **POST /api/live/create**
|
150
|
+
- **Not Implemented**
|
151
|
+
- **GET /api/live/happening_now**
|
152
|
+
- **Not Implemented**
|
153
|
+
- **POST /api/live/thread/accept_contributor_invite**
|
154
|
+
- **Not Implemented**
|
155
|
+
- **POST /api/live/thread/close_thread**
|
156
|
+
- **Not Implemented**
|
157
|
+
- **POST /api/live/thread/delete_update**
|
158
|
+
- **Implemented**: [Redd::Models::LiveThread#delete_update](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/LiveThread#delete_update-instance_method)
|
159
|
+
- **POST /api/live/thread/edit**
|
160
|
+
- **Implemented**: [Redd::Models::LiveThread#configure](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/LiveThread#configure-instance_method)
|
161
|
+
- **POST /api/live/thread/invite_contributor**
|
162
|
+
- **Not Implemented**
|
163
|
+
- **POST /api/live/thread/leave_contributor**
|
164
|
+
- **Not Implemented**
|
165
|
+
- **POST /api/live/thread/report**
|
166
|
+
- **Not Implemented**
|
167
|
+
- **POST /api/live/thread/rm_contributor**
|
168
|
+
- **Not Implemented**
|
169
|
+
- **POST /api/live/thread/rm_contributor_invite**
|
170
|
+
- **Not Implemented**
|
171
|
+
- **POST /api/live/thread/set_contributor_permissions**
|
172
|
+
- **Not Implemented**
|
173
|
+
- **POST /api/live/thread/strike_update**
|
174
|
+
- **Implemented**: [Redd::Models::LiveThread#strike_update](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/LiveThread#strike_update-instance_method)
|
175
|
+
- **POST /api/live/thread/update**
|
176
|
+
- **Implemented**: [Redd::Models::LiveThread#update](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/LiveThread#update-instance_method)
|
177
|
+
- **GET /live/thread**
|
178
|
+
- **Implemented**: [Redd::Models::LiveThread#updates](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/LiveThread#updates-instance_method)
|
179
|
+
- **GET /live/thread/about**
|
180
|
+
- **Implemented**: [Redd::Models::Session#live_thread](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#live_thread-instance_method)
|
181
|
+
- **GET /live/thread/contributors**
|
182
|
+
- **Implemented**: [Redd::Models::LiveThread#contributors](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/LiveThread#contributors-instance_method)
|
183
|
+
- **GET /live/thread/discussions**
|
184
|
+
- **Implemented**: [Redd::Models::LiveThread#discussions](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/LiveThread#discussions-instance_method)
|
185
|
+
|
186
|
+
## Private Messages
|
187
|
+
|
188
|
+
- **POST /api/block**
|
189
|
+
- **Implemented**: [Redd::Models::Inboxable#block](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Inboxable#block-instance_method)
|
190
|
+
- **POST /api/collapse_message**
|
191
|
+
- **Implemented**: [Redd::Models::Inboxable#collapse](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Inboxable#collapse-instance_method)
|
192
|
+
- **POST /api/compose**
|
193
|
+
- **Implemented**: [Redd::Models::Messageable#send_message](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Messageable#send_message-instance_method)
|
194
|
+
- **POST /api/del_msg**
|
195
|
+
- **Implemented**: [Redd::Models::PrivateMessage#delete](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/PrivateMessage#delete-instance_method)
|
196
|
+
- **POST /api/read_all_messages**
|
197
|
+
- **Implemented**: [Redd::Models::Session#read_all_messages](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#read_all_messages-instance_method)
|
198
|
+
- **POST /api/read_message**
|
199
|
+
- **Implemented**: [Redd::Models::Inboxable#mark_as_read](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Inboxable#mark_as_read-instance_method)
|
200
|
+
- **POST /api/unblock_subreddit**
|
201
|
+
- **Not Implemented**
|
202
|
+
- **POST /api/uncollapse_message**
|
203
|
+
- **Implemented**: [Redd::Models::Inboxable#uncollapse](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Inboxable#uncollapse-instance_method)
|
204
|
+
- **POST /api/unread_message**
|
205
|
+
- **Implemented**: [Redd::Models::Inboxable#mark_as_unread](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Inboxable#mark_as_unread-instance_method)
|
206
|
+
- **GET /message/where**
|
207
|
+
- **Implemented**: [Redd::Models::Session#my_messages](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#my_messages-instance_method)
|
208
|
+
|
209
|
+
## Miscellaneous
|
210
|
+
|
211
|
+
- **GET /api/v1/scopes**
|
212
|
+
- **Not Implemented**
|
213
|
+
|
214
|
+
## Moderation
|
215
|
+
|
216
|
+
- **GET [/r/subreddit]/about/log**
|
217
|
+
- **Implemented**: [Redd::Models::Subreddit#mod_log](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#mod_log-instance_method)
|
218
|
+
- **GET [/r/subreddit]/about/location**
|
219
|
+
- **Implemented**: [Redd::Models::Subreddit#moderator_listing](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#moderator_listing-instance_method)
|
220
|
+
- **POST [/r/subreddit]/api/accept_moderator_invite**
|
221
|
+
- **Implemented**: [Redd::Models::Subreddit#accept_moderator_invite](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#accept_moderator_invite-instance_method)
|
222
|
+
- **POST /api/approve**
|
223
|
+
- **Implemented**: [Redd::Models::Moderatable#approve](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Moderatable#approve-instance_method)
|
224
|
+
- **POST /api/distinguish**
|
225
|
+
- **Implemented**: [Redd::Models::Moderatable#distinguish](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Moderatable#distinguish-instance_method)
|
226
|
+
- **POST /api/ignore_reports**
|
227
|
+
- **Implemented**: [Redd::Models::Moderatable#ignore_reports](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Moderatable#ignore_reports-instance_method)
|
228
|
+
- **POST /api/leavecontributor**
|
229
|
+
- **Implemented**: [Redd::Models::Subreddit#leave_contributor](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#leave_contributor-instance_method)
|
230
|
+
- **POST /api/leavemoderator**
|
231
|
+
- **Implemented**: [Redd::Models::Subreddit#leave_moderator](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#leave_moderator-instance_method)
|
232
|
+
- **POST /api/mute_message_author**
|
233
|
+
- **Implemented**: [Redd::Models::PrivateMessage#mute_author](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/PrivateMessage#mute_author-instance_method)
|
234
|
+
- **POST /api/remove**
|
235
|
+
- **Implemented**: [Redd::Models::Moderatable#remove](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Moderatable#remove-instance_method)
|
236
|
+
- **POST /api/unignore_reports**
|
237
|
+
- **Implemented**: [Redd::Models::Moderatable#unignore_reports](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Moderatable#unignore_reports-instance_method)
|
238
|
+
- **POST /api/unmute_message_author**
|
239
|
+
- **Implemented**: [Redd::Models::PrivateMessage#unmute_author](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/PrivateMessage#unmute_author-instance_method)
|
240
|
+
- **GET [/r/subreddit]/stylesheet**
|
241
|
+
- **Implemented**: [Redd::Models::Subreddit#stylesheet](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#stylesheet-instance_method)
|
242
|
+
|
243
|
+
## New Modmail
|
244
|
+
|
245
|
+
- **POST /api/mod/bulk_read**
|
246
|
+
- **Not Implemented**
|
247
|
+
- **GET /api/mod/conversations**
|
248
|
+
- **Implemented**: [Redd::Models::Modmail#conversations](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Modmail#conversations-instance_method)
|
249
|
+
- **POST /api/mod/conversations**
|
250
|
+
- **Implemented**: [Redd::Models::Modmail#create](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Modmail#create-instance_method)
|
251
|
+
- **GET /api/mod/conversations/:conversation_id**
|
252
|
+
- **Implemented**: [Redd::Models::Modmail#get](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Modmail#get-instance_method)
|
253
|
+
- **POST /api/mod/conversations/:conversation_id**
|
254
|
+
- **Implemented**: [Redd::Models::ModmailConversation#reply](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/ModmailConversation#reply-instance_method)
|
255
|
+
- **POST /api/mod/conversations/:conversation_id/archive**
|
256
|
+
- **Implemented**: [Redd::Models::ModmailConversation#archive](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/ModmailConversation#archive-instance_method)
|
257
|
+
- **DELETE /api/mod/conversations/:conversation_id/highlight**
|
258
|
+
- **Implemented**: [Redd::Models::ModmailConversation#unhighlight](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/ModmailConversation#unhighlight-instance_method)
|
259
|
+
- **POST /api/mod/conversations/:conversation_id/highlight**
|
260
|
+
- **Implemented**: [Redd::Models::ModmailConversation#highlight](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/ModmailConversation#highlight-instance_method)
|
261
|
+
- **POST /api/mod/conversations/:conversation_id/mute**
|
262
|
+
- **Implemented**: [Redd::Models::ModmailConversation#mute](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/ModmailConversation#mute-instance_method)
|
263
|
+
- **POST /api/mod/conversations/:conversation_id/unarchive**
|
264
|
+
- **Implemented**: [Redd::Models::ModmailConversation#unarchive](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/ModmailConversation#unarchive-instance_method)
|
265
|
+
- **POST /api/mod/conversations/:conversation_id/unmute**
|
266
|
+
- **Implemented**: [Redd::Models::ModmailConversation#unmute](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/ModmailConversation#unmute-instance_method)
|
267
|
+
- **GET /api/mod/conversations/:conversation_id/user**
|
268
|
+
- **Not Implemented**
|
269
|
+
- **POST /api/mod/conversations/read**
|
270
|
+
- **Partially Implemented**: [Redd::Models::ModmailConversation#mark_as_read](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/ModmailConversation#mark_as_read-instance_method)
|
271
|
+
- Bulk read not implemented
|
272
|
+
- **GET /api/mod/conversations/subreddits**
|
273
|
+
- **Implemented**: [Redd::Models::Modmail#enrolled](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Modmail#enrolled-instance_method)
|
274
|
+
- **POST /api/mod/conversations/unread**
|
275
|
+
- **Partially Implemented**: [Redd::Models::ModmailConversation#mark_as_unread](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/ModmailConversation#mark_as_unread-instance_method)
|
276
|
+
- Bulk unread not implemented
|
277
|
+
- **GET /api/mod/conversations/unread/count**
|
278
|
+
- **Implemented**: [Redd::Models::Modmail#unread_count](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Modmail#unread_count-instance_method)
|
279
|
+
|
280
|
+
## Multis
|
281
|
+
|
282
|
+
- **POST /api/multi/copy**
|
283
|
+
- **Not Implemented**
|
284
|
+
- **GET /api/multi/mine**
|
285
|
+
- **Not Implemented**
|
286
|
+
- **POST /api/multi/rename**
|
287
|
+
- **Not Implemented**
|
288
|
+
- **GET /api/multi/user/username**
|
289
|
+
- **Not Implemented**
|
290
|
+
- **DELETE /api/multi/multipath**
|
291
|
+
- **Not Implemented**
|
292
|
+
- **GET /api/multi/multipath**
|
293
|
+
- **Implemented**: [Redd::Models::Session#multi](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#multi-instance_method)
|
294
|
+
- **POST /api/multi/multipath**
|
295
|
+
- **Not Implemented**
|
296
|
+
- **PUT /api/multi/multipath**
|
297
|
+
- **Not Implemented**
|
298
|
+
- **GET /api/multi/multipath/description**
|
299
|
+
- **Not Implemented**
|
300
|
+
- **PUT /api/multi/multipath/description**
|
301
|
+
- **Not Implemented**
|
302
|
+
- **DELETE /api/multi/multipath/r/srname**
|
303
|
+
- **Not Implemented**
|
304
|
+
- **GET /api/multi/multipath/r/srname**
|
305
|
+
- **Not Implemented**
|
306
|
+
- **PUT /api/multi/multipath/r/srname**
|
307
|
+
- **Not Implemented**
|
308
|
+
|
309
|
+
## Search
|
310
|
+
|
311
|
+
- **GET [/r/subreddit]/search**
|
312
|
+
- **Implemented**: [Redd::Models::Searchable#search](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Searchable#search-instance_method)
|
313
|
+
|
314
|
+
## Subreddits
|
315
|
+
|
316
|
+
- **GET [/r/subreddit]/about/where**
|
317
|
+
- **Implemented**: [Redd::Models::Subreddit#relationship_listing](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#relationship_listing-instance_method)
|
318
|
+
- **POST [/r/subreddit]/api/delete_sr_banner**
|
319
|
+
- **Implemented**: [Redd::Models::Subreddit#delete_image](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#delete_image-instance_method)
|
320
|
+
- **POST [/r/subreddit]/api/delete_sr_header**
|
321
|
+
- **Implemented**: [Redd::Models::Subreddit#delete_image](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#delete_image-instance_method)
|
322
|
+
- **POST [/r/subreddit]/api/delete_sr_icon**
|
323
|
+
- **Implemented**: [Redd::Models::Subreddit#delete_image](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#delete_image-instance_method)
|
324
|
+
- **POST [/r/subreddit]/api/delete_sr_img**
|
325
|
+
- **Implemented**: [Redd::Models::Subreddit#delete_image](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#delete_image-instance_method)
|
326
|
+
- **GET /api/recommend/sr/srnames**
|
327
|
+
- **Not Implemented**
|
328
|
+
- **POST /api/search_reddit_names**
|
329
|
+
- **Not Implemented**
|
330
|
+
- **POST /api/search_subreddits**
|
331
|
+
- **Not Implemented**
|
332
|
+
- **POST /api/site_admin**
|
333
|
+
- **Implemented**: [Redd::Models::Subreddit#modify_settings](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#modify_settings-instance_method)
|
334
|
+
- **GET [/r/subreddit]/api/submit_text**
|
335
|
+
- **Won't Implement**: Already covered by the Subreddit model.
|
336
|
+
- **GET /api/subreddit_autocomplete**
|
337
|
+
- **Not Implemented**
|
338
|
+
- **POST [/r/subreddit]/api/subreddit_stylesheet**
|
339
|
+
- **Implemented**: [Redd::Models::Subreddit#update_stylesheet](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#update_stylesheet-instance_method)
|
340
|
+
- **GET /api/subreddits_by_topic**
|
341
|
+
- **Not Implemented**
|
342
|
+
- **POST /api/subscribe**
|
343
|
+
- **Implemented**: [Redd::Models::Subreddit#subscribe](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#subscribe-instance_method)
|
344
|
+
- **POST [/r/subreddit]/api/upload_sr_img**
|
345
|
+
- **Implemented**: [Redd::Models::Subreddit#upload_image](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#upload_image-instance_method)
|
346
|
+
- **GET /r/subreddit/about**
|
347
|
+
- **Implemented**: [Redd::Models::Session#subreddit](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#subreddit-instance_method)
|
348
|
+
- **GET /r/subreddit/about/edit**
|
349
|
+
- **Implemented**: [Redd::Models::Subreddit#settings](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#settings-instance_method)
|
350
|
+
- **GET /r/subreddit/about/rules**
|
351
|
+
- **Not Implemented**
|
352
|
+
- **GET /r/subreddit/about/traffic**
|
353
|
+
- **Not Implemented**
|
354
|
+
- **GET [/r/subreddit]/sidebar**
|
355
|
+
- **Won't Implement**: Already covered by Subreddit's "description" property.
|
356
|
+
- **GET [/r/subreddit]/sticky**
|
357
|
+
- **Not Implemented**
|
358
|
+
- **GET /subreddits/mine/where**
|
359
|
+
- **Implemented**: [Redd::Models::Session#my_subreddits](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#my_subreddits-instance_method)
|
360
|
+
- **GET /subreddits/search**
|
361
|
+
- **Not Implemented**
|
362
|
+
- **GET /subreddits/where**
|
363
|
+
- **Not Implemented**
|
364
|
+
- **GET /users/where**
|
365
|
+
- **Not Implemented**
|
366
|
+
|
367
|
+
## Users
|
368
|
+
|
369
|
+
- **POST /api/block_user**
|
370
|
+
- **Implemented**: [Redd::Models::User#block](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/User#block-instance_method)
|
371
|
+
- **POST [/r/subreddit]/api/friend**
|
372
|
+
- **Implemented**: Used in multiple methods.
|
373
|
+
- **POST /api/report_user**
|
374
|
+
- **Not Implemented**
|
375
|
+
- **POST [/r/subreddit]/api/setpermissions**
|
376
|
+
- **Not Implemented**
|
377
|
+
- **POST [/r/subreddit]/api/unfriend**
|
378
|
+
- **Implemented**: Used in multiple methods.
|
379
|
+
- **GET /api/user_data_by_account_ids**
|
380
|
+
- **Not Implemented**: [Redd::Models::Session#from_fullnames](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#from_fullnames-instance_method)
|
381
|
+
- Currently commented out (will uncoment when adding cache check feature to lazy_lazer).
|
382
|
+
- Not implemented for batch calls, only individual.
|
383
|
+
- **GET /api/username_available**
|
384
|
+
- **Implemented**: [Redd::Models::Session#username_available?](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#username_available?-instance_method)
|
385
|
+
- **DELETE /api/v1/me/friends/username**
|
386
|
+
- **Implemented**: [Redd::Models::User#unfriend](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/User#unfriend-instance_method)
|
387
|
+
- **GET /api/v1/me/friends/username**
|
388
|
+
- TODO: add implementation/documentation link
|
389
|
+
- **PUT /api/v1/me/friends/username**
|
390
|
+
- **Implemented**: [Redd::Models::User#friend](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/User#friend-instance_method)
|
391
|
+
- **GET /api/v1/user/username/trophies**
|
392
|
+
- **Implemented**: [Redd::Models::User#trophies](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/User#trophies-instance_method)
|
393
|
+
- **GET /user/username/about**
|
394
|
+
- **Implemented**: [Redd::Models::Session#user](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Session#user-instance_method)
|
395
|
+
- **GET /user/username/where**
|
396
|
+
- **Implemented**: [Redd::Models::User#listing](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/User#listing-instance_method)
|
397
|
+
|
398
|
+
## Wiki
|
399
|
+
|
400
|
+
- **POST [/r/subreddit]/api/wiki/alloweditor/act**
|
401
|
+
- **Not Implemented**
|
402
|
+
- **POST [/r/subreddit]/api/wiki/edit**
|
403
|
+
- **Implemented**: [Redd::Models::WikiPage#edit](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/WikiPage#edit-instance_method)
|
404
|
+
- **POST [/r/subreddit]/api/wiki/hide**
|
405
|
+
- **Not Implemented**
|
406
|
+
- **POST [/r/subreddit]/api/wiki/revert**
|
407
|
+
- **Not Implemented**
|
408
|
+
- **GET [/r/subreddit]/wiki/discussions/page**
|
409
|
+
- **Not Implemented**
|
410
|
+
- **GET [/r/subreddit]/wiki/pages**
|
411
|
+
- **Implemented**: [Redd::Models::FrontPage#wiki_pages](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/FrontPage#wiki_pages-instance_method)
|
412
|
+
- **Implemented**: [Redd::Models::Subreddit#wiki_pages](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#wiki_pages-instance_method)
|
413
|
+
- **GET [/r/subreddit]/wiki/revisions**
|
414
|
+
- **Not Implemented**
|
415
|
+
- **GET [/r/subreddit]/wiki/revisions/page**
|
416
|
+
- **Not Implemented**
|
417
|
+
- **GET [/r/subreddit]/wiki/settings/page**
|
418
|
+
- **Not Implemented**
|
419
|
+
- **POST [/r/subreddit]/wiki/settings/page**
|
420
|
+
- **Not Implemented**
|
421
|
+
- **GET [/r/subreddit]/wiki/page**
|
422
|
+
- **Implemented**: [Redd::Models::FrontPage#wiki_page](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/FrontPage#wiki_page-instance_method)
|
423
|
+
- **Implemented**: [Redd::Models::Subreddit#wiki_page](http://www.rubydoc.info/github/avinashbot/redd/master/Redd/Models/Subreddit#wiki_page-instance_method)
|