repltalk 4.0.1 → 4.2.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.
- checksums.yaml +4 -4
- data/lib/repltalk/client.rb +11 -21
- data/lib/repltalk/graphql.rb +6 -27
- data/lib/repltalk/structures.rb +18 -37
- data/lib/repltalk.rb +1 -1
- 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: a53c13e1afa3b083432593518f24be2413de67b4ac7c9c3d0a325e118ce5a21b
|
4
|
+
data.tar.gz: c3973f28be9f38c34c9fbab0b194bb9bc4c76dd8b6cea92f4fca6b135dd93656
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 838143889e780ba16a2701a3acaa108851f17f37dd806a1e75f9a078825e3851cfba69aae0ce43699d11d3bc0b5d0066ee3926f17b711c2e564eb3421ef64a44
|
7
|
+
data.tar.gz: 2b41a5f852a0afdb1ac84b2fb6ee8c51b137ac945f93a670d9af3680d801ba68fcd4c3e3cf9d5a1724c40f33b5330a9f0d024d7ebcfc0126fc7a58fa0d9a015c
|
data/lib/repltalk/client.rb
CHANGED
@@ -24,7 +24,7 @@ module ReplTalk
|
|
24
24
|
"X-Requested-With": "ReplTalk"
|
25
25
|
)
|
26
26
|
.post(
|
27
|
-
"#{$BASE_URL}/graphql",
|
27
|
+
"#{$BASE_URL}/graphql",
|
28
28
|
form: payload
|
29
29
|
)
|
30
30
|
begin data = JSON.parse(r)
|
@@ -120,30 +120,20 @@ module ReplTalk
|
|
120
120
|
return nil if b == nil || b["board"] == nil
|
121
121
|
Board.new(b["board"])
|
122
122
|
end
|
123
|
-
|
124
|
-
def get_leaderboard(count: nil, since: nil, after: nil)
|
125
|
-
u = graphql(
|
126
|
-
"LeaderboardQuery",
|
127
|
-
GQL::Queries::GET_LEADERBOARD,
|
128
|
-
count: count,
|
129
|
-
since: since,
|
130
|
-
after: after
|
131
|
-
)
|
132
|
-
u["leaderboard"]["items"].map { |user| LeaderboardUser.new(self, user) }
|
133
|
-
end
|
134
123
|
|
135
|
-
def get_posts(board: "all", order: "new", count: nil, after: nil, search: nil
|
124
|
+
def get_posts(board: "all", order: "new", count: nil, after: nil, search: nil)
|
136
125
|
p = graphql(
|
137
|
-
"
|
126
|
+
"ReplPostsFeed",
|
138
127
|
GQL::Queries::GET_POSTS,
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
128
|
+
options: {
|
129
|
+
boardSlugs: [board],
|
130
|
+
order: order.capitalize,
|
131
|
+
count: count,
|
132
|
+
after: after,
|
133
|
+
searchQuery: search
|
134
|
+
}
|
145
135
|
)
|
146
|
-
p["
|
136
|
+
p["replPosts"]["items"].map { |post| Post.new(self, post) }
|
147
137
|
end
|
148
138
|
|
149
139
|
def get_explore_featured_repls
|
data/lib/repltalk/graphql.rb
CHANGED
@@ -8,16 +8,6 @@ module ReplTalk
|
|
8
8
|
tagline
|
9
9
|
"
|
10
10
|
|
11
|
-
ORGANIZATION = "
|
12
|
-
id
|
13
|
-
name
|
14
|
-
country
|
15
|
-
postalCode
|
16
|
-
state
|
17
|
-
city
|
18
|
-
timeCreated
|
19
|
-
"
|
20
|
-
|
21
11
|
LANGUAGE = "
|
22
12
|
id
|
23
13
|
key
|
@@ -46,9 +36,6 @@ module ReplTalk
|
|
46
36
|
roles {
|
47
37
|
#{ROLES}
|
48
38
|
}
|
49
|
-
organization {
|
50
|
-
#{ORGANIZATION}
|
51
|
-
}
|
52
39
|
languages {
|
53
40
|
#{LANGUAGE}
|
54
41
|
}
|
@@ -139,7 +126,7 @@ module ReplTalk
|
|
139
126
|
isAnnouncement
|
140
127
|
timeCreated
|
141
128
|
isAnswered
|
142
|
-
isAnswerable
|
129
|
+
isAnswerable
|
143
130
|
voteCount
|
144
131
|
canVote
|
145
132
|
hasVoted
|
@@ -149,6 +136,9 @@ module ReplTalk
|
|
149
136
|
repl {
|
150
137
|
#{REPL}
|
151
138
|
}
|
139
|
+
replComment {
|
140
|
+
#{REPL_COMMENT}
|
141
|
+
}
|
152
142
|
board {
|
153
143
|
#{BOARD}
|
154
144
|
}
|
@@ -343,8 +333,8 @@ module ReplTalk
|
|
343
333
|
"
|
344
334
|
|
345
335
|
GET_POSTS = "
|
346
|
-
query
|
347
|
-
|
336
|
+
query ReplPostsFeed($options: ReplPostsQueryOptions) {
|
337
|
+
replPosts(options: $options) {
|
348
338
|
items {
|
349
339
|
#{Fields::POST}
|
350
340
|
}
|
@@ -352,17 +342,6 @@ module ReplTalk
|
|
352
342
|
}
|
353
343
|
"
|
354
344
|
|
355
|
-
GET_LEADERBOARD = "
|
356
|
-
query LeaderboardQuery($count: Int, $after: String, $since: KarmaSince) {
|
357
|
-
leaderboard(count: $count, after: $after, since: $since) {
|
358
|
-
items {
|
359
|
-
#{Fields::USER}
|
360
|
-
karmaSince: karma(since: $since)
|
361
|
-
}
|
362
|
-
}
|
363
|
-
}
|
364
|
-
"
|
365
|
-
|
366
345
|
GET_EXPLORE_FEATURED_REPLS = "
|
367
346
|
query ExploreFeaturedRepls {
|
368
347
|
featuredRepls {
|
data/lib/repltalk/structures.rb
CHANGED
@@ -18,26 +18,6 @@ module ReplTalk
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
class Organization
|
22
|
-
attr_reader :id, :name, :country, :postal_code, :state, :city, :timestamp
|
23
|
-
|
24
|
-
def initialize(organization)
|
25
|
-
@id = organization["id"]
|
26
|
-
@name = organization["name"]
|
27
|
-
@country = organization["country"]
|
28
|
-
@postal_code = organization["postalCode"]
|
29
|
-
@state = organization["state"]
|
30
|
-
@city = organization["city"]
|
31
|
-
@timestamp = organization["timeCreated"]
|
32
|
-
end
|
33
|
-
|
34
|
-
def to_s
|
35
|
-
@name
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
|
40
|
-
|
41
21
|
class Language
|
42
22
|
attr_reader :id, :key, :name, :tagline, :icon, :category
|
43
23
|
|
@@ -186,7 +166,7 @@ module ReplTalk
|
|
186
166
|
@url = $BASE_URL + repl["url"]
|
187
167
|
@title = repl["title"]
|
188
168
|
@author = User.new(@client, repl["user"])
|
189
|
-
@description = repl["description"]
|
169
|
+
@description = repl["description"].to_s
|
190
170
|
@timestamp = repl["timeCreated"]
|
191
171
|
@size = repl["size"]
|
192
172
|
@run_count = repl["runCount"]
|
@@ -406,14 +386,27 @@ module ReplTalk
|
|
406
386
|
@id = post["id"]
|
407
387
|
@url = $BASE_URL + post["url"]
|
408
388
|
@title = post["title"]
|
409
|
-
@content = post["body"]
|
410
|
-
@preview = post["preview"]
|
411
389
|
@timestamp = post["timeCreated"]
|
412
390
|
|
413
|
-
@board = Board.new(post["board"])
|
391
|
+
@board = post["board"].nil? ? nil : Board.new(post["board"])
|
414
392
|
@repl = post["repl"] == nil ? nil : Repl.new(@client, post["repl"])
|
415
393
|
@author = post["user"] == nil ? nil : User.new(@client, post["user"])
|
416
394
|
@answer = post["answer"] == nil ? nil : Comment.new(@client, post["answer"])
|
395
|
+
|
396
|
+
@content = post["body"]
|
397
|
+
@preview = post["preview"]
|
398
|
+
|
399
|
+
if @content == "" # new post type
|
400
|
+
if post["replComment"].nil? # no post attached
|
401
|
+
@url = @repl.url
|
402
|
+
@title = @repl.title
|
403
|
+
@content = @repl.description
|
404
|
+
else # post attached
|
405
|
+
@url = "#{@repl.url}?c=#{post["replComment"]["id"]}"
|
406
|
+
@content = post["replComment"]["body"]
|
407
|
+
end
|
408
|
+
@preview = @content.length > 150 ? @content[0..150] : @content
|
409
|
+
end
|
417
410
|
|
418
411
|
@vote_count = post["voteCount"]
|
419
412
|
@comment_count = post["commentCount"]
|
@@ -506,7 +499,7 @@ module ReplTalk
|
|
506
499
|
|
507
500
|
|
508
501
|
class User
|
509
|
-
attr_reader :id, :username, :name, :pfp, :bio, :cycles, :is_hacker, :timestamp, :subscription, :roles, :
|
502
|
+
attr_reader :id, :username, :name, :pfp, :bio, :cycles, :is_hacker, :timestamp, :subscription, :roles, :languages
|
510
503
|
|
511
504
|
def initialize(client, user)
|
512
505
|
return nil if user == nil
|
@@ -521,7 +514,6 @@ module ReplTalk
|
|
521
514
|
@is_hacker = user["isHacker"]
|
522
515
|
@timestamp = user["timeCreated"]
|
523
516
|
@roles = user["roles"].map { |role| Role.new(role) }
|
524
|
-
@organization = user["organization"] == nil ? nil : Organization.new(user["organization"])
|
525
517
|
@languages = user["languages"].map { |lang| Language.new(lang) }
|
526
518
|
end
|
527
519
|
|
@@ -569,15 +561,4 @@ module ReplTalk
|
|
569
561
|
@username
|
570
562
|
end
|
571
563
|
end
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
class LeaderboardUser < User
|
576
|
-
attr_reader :cycles_since
|
577
|
-
|
578
|
-
def initialize(client, user)
|
579
|
-
super(client, user)
|
580
|
-
@cycles_since = user["karmaSince"]
|
581
|
-
end
|
582
|
-
end
|
583
564
|
end
|
data/lib/repltalk.rb
CHANGED
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.0
|
4
|
+
version: 4.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CodingCactus
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|