repltalk 1.0.0 → 1.4.0

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/queries.rb +84 -0
  3. data/lib/repltalk.rb +114 -0
  4. metadata +18 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 32b5dc0fff67f57f37db1a77079dc65ebb3c16321e12f8b894e37c50ae1efc96
4
- data.tar.gz: fec0faaa7eede228e816c570d27e27d3beb74a35d74333e123ac724cece8bf43
3
+ metadata.gz: 65d203ef3528fe101026800562c7f63088f16ce6e92fc90227bb023cb4d7301c
4
+ data.tar.gz: a26cbd197e3268b40375a8eb435593792b9cabcbf99f560e06a44b5b25af85f8
5
5
  SHA512:
6
- metadata.gz: b09dc1d9d86ce9f596f3efce8a4bf613fdaf1704faaa9c9c0bc8b4a9c20f3a1d0ce6fa97a35e50345d94a930153c0bd01fc37e7cae19189b1c29c2b262169205
7
- data.tar.gz: 4337fc27b260cf4f4a0ef545e105af092aa77d84740a12044bdda57a4a935641065a3fe159555aad1009ed5d681634245b9d233098b15c5d13294125da10391b
6
+ metadata.gz: 7d77c7ca647951ca694e23786038c1df339d946b80fe9dee70c3897d2c67a4e85616558e9ce941c107c24b49587d896b28553c211e78bd86d524d81aca335497
7
+ data.tar.gz: 85e91cdb4b8f7c72951e03dc6de860ac3179635298db19cb7d263256343b76796e3af03f2831f9c4f329c8a95549bc4750881a8bc99f66013b6c1614f2d3f21b
data/lib/queries.rb CHANGED
@@ -298,6 +298,14 @@ class Queries
298
298
  }"
299
299
  end
300
300
 
301
+ def Queries.get_board
302
+ "query boardBySlug($slug: String!) {
303
+ board: boardBySlug(slug: $slug) {
304
+ #{@@board}
305
+ }
306
+ }"
307
+ end
308
+
301
309
  def Queries.get_posts
302
310
  "query PostsFeed($order: String, $after: String, $searchQuery: String, $languages: [String!], $count: Int, $boardSlugs: [String!], $pinAnnouncements: Boolean, $pinPinned: Boolean) {
303
311
  posts(order: $order, after: $after, searchQuery: $searchQuery, languages: $languages, count: $count, boardSlugs: $boardSlugs, pinAnnouncements: $pinAnnouncements, pinPinned: $pinPinned) {
@@ -318,4 +326,80 @@ class Queries
318
326
  }
319
327
  }"
320
328
  end
329
+ end
330
+
331
+
332
+ class Mutations < Queries
333
+ def Mutations.create_post
334
+ "mutation createPost($input: CreatePostInput!) {
335
+ createPost(input: $input) {
336
+ post {
337
+ #{@@post}
338
+ }
339
+ }
340
+ }"
341
+ end
342
+
343
+ def Mutations.edit_post
344
+ "mutation updatePost($input: UpdatePostInput!) {
345
+ updatePost(input: $input) {
346
+ post {
347
+ #{@@post}
348
+ }
349
+ }
350
+ }
351
+ "
352
+ end
353
+
354
+ def Mutations.delete_post
355
+ "mutation deletePost($id: Int!) {
356
+ deletePost(id: $id) {
357
+ id
358
+ }
359
+ }"
360
+ end
361
+
362
+ def Mutations.create_comment
363
+ "mutation createComment($input: CreateCommentInput!) {
364
+ createComment(input: $input) {
365
+ comment {
366
+ #{@@comment}
367
+ }
368
+ }
369
+ }"
370
+ end
371
+
372
+ def Mutations.edit_comment
373
+ "mutation updateComment($input: UpdateCommentInput!) {
374
+ updateComment(input: $input) {
375
+ comment {
376
+ #{@@comment}
377
+ }
378
+ }
379
+ }"
380
+ end
381
+
382
+ def Mutations.delete_comment
383
+ "mutation deleteComment($id: Int!) {
384
+ deleteComment(id: $id) {
385
+ id
386
+ }
387
+ }"
388
+ end
389
+
390
+ def Mutations.report_post
391
+ "mutation createBoardReport($id: Int!, $reason: String!) {
392
+ createBoardReport(postId: $id, reason: $reason) {
393
+ id
394
+ }
395
+ }"
396
+ end
397
+
398
+ def Mutations.report_comment
399
+ "mutation createBoardReport($id: Int!, $reason: String!) {
400
+ createBoardReport(commentId: $id, reason: $reason) {
401
+ id
402
+ }
403
+ }"
404
+ end
321
405
  end
data/lib/repltalk.rb CHANGED
@@ -208,6 +208,50 @@ class Comment
208
208
  c["comment"]["parentComment"] == nil ? nil : Comment.new(@client, c["comment"]["parentComment"])
209
209
  end
210
210
 
211
+ def create_comment(content)
212
+ c = @client.graphql(
213
+ "createComment",
214
+ Mutations.create_comment,
215
+ input: {
216
+ postId: @post_id,
217
+ commentId: @id,
218
+ body: content
219
+ }
220
+ )
221
+ Comment.new(@client, c["createComment"]["comment"])
222
+ end
223
+
224
+ def edit(content)
225
+ c = @client.graphql(
226
+ "updateComment",
227
+ Mutations.edit_comment,
228
+ input: {
229
+ id: @id,
230
+ body: content
231
+ }
232
+ )
233
+ Comment.new(@client, c["updateComment"]["comment"])
234
+ end
235
+
236
+ def delete
237
+ @client.graphql(
238
+ "deleteComment",
239
+ Mutations.delete_comment,
240
+ id: @id
241
+ )
242
+ nil
243
+ end
244
+
245
+ def report(reason)
246
+ @client.graphql(
247
+ "createBoardReport",
248
+ Mutations.report_comment,
249
+ id: @id,
250
+ reason: reason
251
+ )
252
+ nil
253
+ end
254
+
211
255
  def to_s
212
256
  @content
213
257
  end
@@ -270,6 +314,52 @@ class Post
270
314
  u["post"]["votes"]["items"].map { |vote| User.new(@client, vote["user"]) }
271
315
  end
272
316
 
317
+ def create_comment(content)
318
+ c = @client.graphql(
319
+ "createComment",
320
+ Mutations.create_comment,
321
+ input: {
322
+ postId: @id,
323
+ body: content
324
+ }
325
+ )
326
+ Comment.new(@client, c["createComment"]["comment"])
327
+ end
328
+
329
+ def edit(title: @title, content: @content, repl_id: @repl.id, show_hosted: false)
330
+ p = @client.graphql(
331
+ "updatePost",
332
+ Mutations.edit_post,
333
+ input: {
334
+ id: @id,
335
+ title: title,
336
+ body: content,
337
+ replId: repl_id,
338
+ showHosted: show_hosted
339
+ }
340
+ )
341
+ Post.new(@client, p["updatePost"]["post"])
342
+ end
343
+
344
+ def delete
345
+ @client.graphql(
346
+ "deletePost",
347
+ Mutations.delete_post,
348
+ id: @id
349
+ )
350
+ nil
351
+ end
352
+
353
+ def report(reason)
354
+ @client.graphql(
355
+ "createBoardReport",
356
+ Mutations.report_post,
357
+ id: @id,
358
+ reason: reason
359
+ )
360
+ nil
361
+ end
362
+
273
363
  def to_s
274
364
  @title
275
365
  end
@@ -438,6 +528,15 @@ class Client
438
528
  Repl.new(self, r["repl"])
439
529
  end
440
530
 
531
+ def get_board(name)
532
+ b = graphql(
533
+ "boardBySlug",
534
+ Queries.get_board,
535
+ slug: name
536
+ )
537
+ Board.new(b["board"])
538
+ end
539
+
441
540
  def get_leaderboard(count: nil, since: nil, after: nil)
442
541
  u = graphql(
443
542
  "LeaderboardQuery",
@@ -462,4 +561,19 @@ class Client
462
561
  )
463
562
  p["posts"]["items"].map { |post| Post.new(self, post) }
464
563
  end
564
+
565
+ def create_post(board_name, title, content, repl_id: nil, show_hosted: false)
566
+ p = graphql(
567
+ "createPost",
568
+ Mutations.create_post,
569
+ input: {
570
+ boardId: get_board(board_name).id,
571
+ title: title,
572
+ body: content,
573
+ replId: repl_id,
574
+ showHosted: show_hosted
575
+ }
576
+ )
577
+ Post.new(self, p["createPost"]["post"])
578
+ end
465
579
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: repltalk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - CodingCactus
@@ -14,30 +14,42 @@ dependencies:
14
14
  name: http
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.4'
17
20
  - - ">="
18
21
  - !ruby/object:Gem::Version
19
- version: '0'
22
+ version: 4.4.1
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '4.4'
24
30
  - - ">="
25
31
  - !ruby/object:Gem::Version
26
- version: '0'
32
+ version: 4.4.1
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: json
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.5'
31
40
  - - ">="
32
41
  - !ruby/object:Gem::Version
33
- version: '0'
42
+ version: 2.5.1
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '2.5'
38
50
  - - ">="
39
51
  - !ruby/object:Gem::Version
40
- version: '0'
52
+ version: 2.5.1
41
53
  description: With the repltalk gem, you can easily interect with the repltalk graphql
42
54
  api. See https://github.com/Coding-Cactus/repltalk for documentation
43
55
  email: codingcactus.cc@gmail.com
@@ -47,7 +59,7 @@ extra_rdoc_files: []
47
59
  files:
48
60
  - lib/queries.rb
49
61
  - lib/repltalk.rb
50
- homepage:
62
+ homepage: https://github.com/Coding-Cactus/repltalk
51
63
  licenses:
52
64
  - MIT
53
65
  metadata: