repltalk 1.0.1 → 2.0.1
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 +4 -4
- data/lib/queries.rb +135 -0
- data/lib/repltalk.rb +185 -16
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ada3715121c7d61ea64ba460d56d128540495ad5d0e6e40f7b2b3356449a6928
|
4
|
+
data.tar.gz: f514edbaeb4ffe4bfd90b5d9821329349e5c917d70e7cc91f32c9ce4d74d9684
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32cf8cc7d8d8bbcee551ef1fe73ddc1c54102a655fc26d0ea465e77f576ee297f446b4ec9314a9a7e198b9ad9e0566743491a4a52905c3f4ea4e318901b3243f
|
7
|
+
data.tar.gz: a06595ab22910394812a9144bae621a90570a110785c1d5acf1964e8c58737a3d8d0c2b5847817189c410e4c213b483e53e55960821473d1cd6886d55405e37c
|
data/lib/queries.rb
CHANGED
@@ -298,6 +298,25 @@ class Queries
|
|
298
298
|
}"
|
299
299
|
end
|
300
300
|
|
301
|
+
def Queries.get_repl_comment
|
302
|
+
"query ReplViewComment($id: Int!) {
|
303
|
+
replComment(id: $id) {
|
304
|
+
... on ReplComment {
|
305
|
+
#{@@repl_comment}
|
306
|
+
}
|
307
|
+
}
|
308
|
+
}"
|
309
|
+
end
|
310
|
+
|
311
|
+
|
312
|
+
def Queries.get_board
|
313
|
+
"query boardBySlug($slug: String!) {
|
314
|
+
board: boardBySlug(slug: $slug) {
|
315
|
+
#{@@board}
|
316
|
+
}
|
317
|
+
}"
|
318
|
+
end
|
319
|
+
|
301
320
|
def Queries.get_posts
|
302
321
|
"query PostsFeed($order: String, $after: String, $searchQuery: String, $languages: [String!], $count: Int, $boardSlugs: [String!], $pinAnnouncements: Boolean, $pinPinned: Boolean) {
|
303
322
|
posts(order: $order, after: $after, searchQuery: $searchQuery, languages: $languages, count: $count, boardSlugs: $boardSlugs, pinAnnouncements: $pinAnnouncements, pinPinned: $pinPinned) {
|
@@ -318,4 +337,120 @@ class Queries
|
|
318
337
|
}
|
319
338
|
}"
|
320
339
|
end
|
340
|
+
end
|
341
|
+
|
342
|
+
|
343
|
+
class Mutations < Queries
|
344
|
+
def Mutations.create_post
|
345
|
+
"mutation createPost($input: CreatePostInput!) {
|
346
|
+
createPost(input: $input) {
|
347
|
+
post {
|
348
|
+
#{@@post}
|
349
|
+
}
|
350
|
+
}
|
351
|
+
}"
|
352
|
+
end
|
353
|
+
|
354
|
+
def Mutations.edit_post
|
355
|
+
"mutation updatePost($input: UpdatePostInput!) {
|
356
|
+
updatePost(input: $input) {
|
357
|
+
post {
|
358
|
+
#{@@post}
|
359
|
+
}
|
360
|
+
}
|
361
|
+
}
|
362
|
+
"
|
363
|
+
end
|
364
|
+
|
365
|
+
def Mutations.delete_post
|
366
|
+
"mutation deletePost($id: Int!) {
|
367
|
+
deletePost(id: $id) {
|
368
|
+
id
|
369
|
+
}
|
370
|
+
}"
|
371
|
+
end
|
372
|
+
|
373
|
+
def Mutations.create_comment
|
374
|
+
"mutation createComment($input: CreateCommentInput!) {
|
375
|
+
createComment(input: $input) {
|
376
|
+
comment {
|
377
|
+
#{@@comment}
|
378
|
+
}
|
379
|
+
}
|
380
|
+
}"
|
381
|
+
end
|
382
|
+
|
383
|
+
def Mutations.edit_comment
|
384
|
+
"mutation updateComment($input: UpdateCommentInput!) {
|
385
|
+
updateComment(input: $input) {
|
386
|
+
comment {
|
387
|
+
#{@@comment}
|
388
|
+
}
|
389
|
+
}
|
390
|
+
}"
|
391
|
+
end
|
392
|
+
|
393
|
+
def Mutations.delete_comment
|
394
|
+
"mutation deleteComment($id: Int!) {
|
395
|
+
deleteComment(id: $id) {
|
396
|
+
id
|
397
|
+
}
|
398
|
+
}"
|
399
|
+
end
|
400
|
+
|
401
|
+
def Mutations.create_repl_comment
|
402
|
+
"mutation ReplViewCreateReplComment($input: CreateReplCommentInput!) {
|
403
|
+
createReplComment(input: $input) {
|
404
|
+
... on ReplComment {
|
405
|
+
#{@@repl_comment}
|
406
|
+
}
|
407
|
+
}
|
408
|
+
}"
|
409
|
+
end
|
410
|
+
|
411
|
+
def Mutations.reply_repl_comment
|
412
|
+
"mutation ReplViewCreateReplCommentReply($input: CreateReplCommentReplyInput!) {
|
413
|
+
createReplCommentReply(input: $input) {
|
414
|
+
... on ReplComment {
|
415
|
+
#{@@repl_comment}
|
416
|
+
}
|
417
|
+
}
|
418
|
+
}"
|
419
|
+
end
|
420
|
+
|
421
|
+
def Mutations.edit_repl_comment
|
422
|
+
"mutation ReplViewCommentsUpdateReplComment($input: UpdateReplCommentInput!) {
|
423
|
+
updateReplComment(input: $input) {
|
424
|
+
... on ReplComment {
|
425
|
+
#{@@repl_comment}
|
426
|
+
}
|
427
|
+
}
|
428
|
+
}"
|
429
|
+
end
|
430
|
+
|
431
|
+
def Mutations.delete_repl_comment
|
432
|
+
"mutation ReplViewCommentsDeleteReplComment($id: Int!) {
|
433
|
+
deleteReplComment(id: $id) {
|
434
|
+
... on ReplComment {
|
435
|
+
id
|
436
|
+
}
|
437
|
+
}
|
438
|
+
}"
|
439
|
+
end
|
440
|
+
|
441
|
+
def Mutations.report_post
|
442
|
+
"mutation createBoardReport($id: Int!, $reason: String!) {
|
443
|
+
createBoardReport(postId: $id, reason: $reason) {
|
444
|
+
id
|
445
|
+
}
|
446
|
+
}"
|
447
|
+
end
|
448
|
+
|
449
|
+
def Mutations.report_comment
|
450
|
+
"mutation createBoardReport($id: Int!, $reason: String!) {
|
451
|
+
createBoardReport(commentId: $id, reason: $reason) {
|
452
|
+
id
|
453
|
+
}
|
454
|
+
}"
|
455
|
+
end
|
321
456
|
end
|
data/lib/repltalk.rb
CHANGED
@@ -76,6 +76,23 @@ end
|
|
76
76
|
|
77
77
|
|
78
78
|
|
79
|
+
class Board
|
80
|
+
attr_reader :id, :name, :color, :description
|
81
|
+
|
82
|
+
def initialize(board)
|
83
|
+
@id = board["id"]
|
84
|
+
@name = board["name"]
|
85
|
+
@color = board["color"]
|
86
|
+
@description = board["description"]
|
87
|
+
end
|
88
|
+
|
89
|
+
def to_s
|
90
|
+
@name
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
|
79
96
|
class ReplComment
|
80
97
|
attr_reader :id, :content, :author, :repl, :replies
|
81
98
|
|
@@ -89,6 +106,40 @@ class ReplComment
|
|
89
106
|
@replies = comment["replies"] == nil ? nil : comment["replies"].map { |c| ReplComment.new(@client, c) }
|
90
107
|
end
|
91
108
|
|
109
|
+
def create_comment(content)
|
110
|
+
c = @client.graphql(
|
111
|
+
"ReplViewCreateReplCommentReply",
|
112
|
+
Mutations.reply_repl_comment,
|
113
|
+
input: {
|
114
|
+
replCommentId: @id,
|
115
|
+
body: content
|
116
|
+
}
|
117
|
+
)
|
118
|
+
ReplComment.new(@client, c["createReplCommentReply"])
|
119
|
+
end
|
120
|
+
|
121
|
+
def edit(content)
|
122
|
+
c = @client.graphql(
|
123
|
+
"ReplViewCommentsUpdateReplComment",
|
124
|
+
Mutations.edit_repl_comment,
|
125
|
+
input: {
|
126
|
+
id: @id,
|
127
|
+
body: content
|
128
|
+
}
|
129
|
+
)
|
130
|
+
puts c
|
131
|
+
ReplComment.new(@client, c["updateReplComment"])
|
132
|
+
end
|
133
|
+
|
134
|
+
def delete
|
135
|
+
@client.graphql(
|
136
|
+
"ReplViewCommentsDeleteReplComment",
|
137
|
+
Mutations.delete_repl_comment,
|
138
|
+
id: @id
|
139
|
+
)
|
140
|
+
nil
|
141
|
+
end
|
142
|
+
|
92
143
|
def to_s
|
93
144
|
@content
|
94
145
|
end
|
@@ -138,25 +189,20 @@ class Repl
|
|
138
189
|
c["repl"]["comments"]["items"].map { |comment| ReplComment.new(@client, comment) }
|
139
190
|
end
|
140
191
|
|
141
|
-
def
|
142
|
-
@
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
def initialize(board)
|
152
|
-
@id = board["id"]
|
153
|
-
@name = board["name"]
|
154
|
-
@color = board["color"]
|
155
|
-
@description = board["description"]
|
192
|
+
def create_comment(content)
|
193
|
+
c = @client.graphql(
|
194
|
+
"ReplViewCreateReplComment",
|
195
|
+
Mutations.create_repl_comment,
|
196
|
+
input: {
|
197
|
+
replId: @id,
|
198
|
+
body: content
|
199
|
+
}
|
200
|
+
)
|
201
|
+
ReplComment.new(@client, c["createReplComment"])
|
156
202
|
end
|
157
203
|
|
158
204
|
def to_s
|
159
|
-
@
|
205
|
+
@title
|
160
206
|
end
|
161
207
|
end
|
162
208
|
|
@@ -208,6 +254,50 @@ class Comment
|
|
208
254
|
c["comment"]["parentComment"] == nil ? nil : Comment.new(@client, c["comment"]["parentComment"])
|
209
255
|
end
|
210
256
|
|
257
|
+
def create_comment(content)
|
258
|
+
c = @client.graphql(
|
259
|
+
"createComment",
|
260
|
+
Mutations.create_comment,
|
261
|
+
input: {
|
262
|
+
postId: @post_id,
|
263
|
+
commentId: @id,
|
264
|
+
body: content
|
265
|
+
}
|
266
|
+
)
|
267
|
+
Comment.new(@client, c["createComment"]["comment"])
|
268
|
+
end
|
269
|
+
|
270
|
+
def edit(content)
|
271
|
+
c = @client.graphql(
|
272
|
+
"updateComment",
|
273
|
+
Mutations.edit_comment,
|
274
|
+
input: {
|
275
|
+
id: @id,
|
276
|
+
body: content
|
277
|
+
}
|
278
|
+
)
|
279
|
+
Comment.new(@client, c["updateComment"]["comment"])
|
280
|
+
end
|
281
|
+
|
282
|
+
def delete
|
283
|
+
@client.graphql(
|
284
|
+
"deleteComment",
|
285
|
+
Mutations.delete_comment,
|
286
|
+
id: @id
|
287
|
+
)
|
288
|
+
nil
|
289
|
+
end
|
290
|
+
|
291
|
+
def report(reason)
|
292
|
+
@client.graphql(
|
293
|
+
"createBoardReport",
|
294
|
+
Mutations.report_comment,
|
295
|
+
id: @id,
|
296
|
+
reason: reason
|
297
|
+
)
|
298
|
+
nil
|
299
|
+
end
|
300
|
+
|
211
301
|
def to_s
|
212
302
|
@content
|
213
303
|
end
|
@@ -270,6 +360,52 @@ class Post
|
|
270
360
|
u["post"]["votes"]["items"].map { |vote| User.new(@client, vote["user"]) }
|
271
361
|
end
|
272
362
|
|
363
|
+
def create_comment(content)
|
364
|
+
c = @client.graphql(
|
365
|
+
"createComment",
|
366
|
+
Mutations.create_comment,
|
367
|
+
input: {
|
368
|
+
postId: @id,
|
369
|
+
body: content
|
370
|
+
}
|
371
|
+
)
|
372
|
+
Comment.new(@client, c["createComment"]["comment"])
|
373
|
+
end
|
374
|
+
|
375
|
+
def edit(title: @title, content: @content, repl_id: @repl.id, show_hosted: false)
|
376
|
+
p = @client.graphql(
|
377
|
+
"updatePost",
|
378
|
+
Mutations.edit_post,
|
379
|
+
input: {
|
380
|
+
id: @id,
|
381
|
+
title: title,
|
382
|
+
body: content,
|
383
|
+
replId: repl_id,
|
384
|
+
showHosted: show_hosted
|
385
|
+
}
|
386
|
+
)
|
387
|
+
Post.new(@client, p["updatePost"]["post"])
|
388
|
+
end
|
389
|
+
|
390
|
+
def delete
|
391
|
+
@client.graphql(
|
392
|
+
"deletePost",
|
393
|
+
Mutations.delete_post,
|
394
|
+
id: @id
|
395
|
+
)
|
396
|
+
nil
|
397
|
+
end
|
398
|
+
|
399
|
+
def report(reason)
|
400
|
+
@client.graphql(
|
401
|
+
"createBoardReport",
|
402
|
+
Mutations.report_post,
|
403
|
+
id: @id,
|
404
|
+
reason: reason
|
405
|
+
)
|
406
|
+
nil
|
407
|
+
end
|
408
|
+
|
273
409
|
def to_s
|
274
410
|
@title
|
275
411
|
end
|
@@ -438,6 +574,24 @@ class Client
|
|
438
574
|
Repl.new(self, r["repl"])
|
439
575
|
end
|
440
576
|
|
577
|
+
def get_repl_comment(id)
|
578
|
+
c = graphql(
|
579
|
+
"ReplViewComment",
|
580
|
+
Queries.get_repl_comment,
|
581
|
+
id: id
|
582
|
+
)
|
583
|
+
ReplComment.new(self, c["replComment"])
|
584
|
+
end
|
585
|
+
|
586
|
+
def get_board(name)
|
587
|
+
b = graphql(
|
588
|
+
"boardBySlug",
|
589
|
+
Queries.get_board,
|
590
|
+
slug: name
|
591
|
+
)
|
592
|
+
Board.new(b["board"])
|
593
|
+
end
|
594
|
+
|
441
595
|
def get_leaderboard(count: nil, since: nil, after: nil)
|
442
596
|
u = graphql(
|
443
597
|
"LeaderboardQuery",
|
@@ -462,4 +616,19 @@ class Client
|
|
462
616
|
)
|
463
617
|
p["posts"]["items"].map { |post| Post.new(self, post) }
|
464
618
|
end
|
619
|
+
|
620
|
+
def create_post(board_name, title, content, repl_id: nil, show_hosted: false)
|
621
|
+
p = graphql(
|
622
|
+
"createPost",
|
623
|
+
Mutations.create_post,
|
624
|
+
input: {
|
625
|
+
boardId: get_board(board_name).id,
|
626
|
+
title: title,
|
627
|
+
body: content,
|
628
|
+
replId: repl_id,
|
629
|
+
showHosted: show_hosted
|
630
|
+
}
|
631
|
+
)
|
632
|
+
Post.new(self, p["createPost"]["post"])
|
633
|
+
end
|
465
634
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: repltalk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CodingCactus
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|