repltalk 0.2.0 → 0.3.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/queries.rb +93 -1
- data/lib/repltalk.rb +29 -10
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 85e8d796ec5d9532272e6ffb20cfa6881e49a38990c13ec58b0f6126974c7d2b
         | 
| 4 | 
            +
              data.tar.gz: 2a9f9217d0af746f6dcec692e498c248480d68a8f8e1c2851eefa50a07933326
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 449d1a9f1f3a0af88d2d4ab6c316f73f437db0f6fca7d521fdc46b66ad783a2f305fc62ea5f72e2b9624a8a0529e026a8ca590f2ca39a161dc0e8ae41daa0aeb
         | 
| 7 | 
            +
              data.tar.gz: b37f383cb86062cf2f1a9788e4f2c6456d0f155fb9eb49932fbcbb7c5e55f8caa319549dcff10cf25dad845ddc0b06ade7f760c558995aa2c72492e52dad2daa
         | 
    
        data/lib/queries.rb
    CHANGED
    
    | @@ -20,6 +20,7 @@ class Queries | |
| 20 20 | 
             
            			bio
         | 
| 21 21 | 
             
            			karma
         | 
| 22 22 | 
             
            			isHacker
         | 
| 23 | 
            +
            			timeCreated
         | 
| 23 24 | 
             
            			roles {
         | 
| 24 25 | 
             
            				id
         | 
| 25 26 | 
             
            				name
         | 
| @@ -65,6 +66,7 @@ class Queries | |
| 65 66 | 
             
            			bio
         | 
| 66 67 | 
             
            			karma
         | 
| 67 68 | 
             
            			isHacker
         | 
| 69 | 
            +
            			timeCreated
         | 
| 68 70 | 
             
            			roles {
         | 
| 69 71 | 
             
            				id
         | 
| 70 72 | 
             
            				name
         | 
| @@ -193,6 +195,7 @@ class Queries | |
| 193 195 | 
             
            			id
         | 
| 194 196 | 
             
            			url
         | 
| 195 197 | 
             
            			username
         | 
| 198 | 
            +
            			timeCreated
         | 
| 196 199 | 
             
            			roles {
         | 
| 197 200 | 
             
            				id
         | 
| 198 201 | 
             
            				name
         | 
| @@ -243,6 +246,7 @@ class Queries | |
| 243 246 | 
             
            			body
         | 
| 244 247 | 
             
            			timeCreated
         | 
| 245 248 | 
             
            			url
         | 
| 249 | 
            +
            			isAnswer
         | 
| 246 250 | 
             
            			...CommentVoteControlComment
         | 
| 247 251 | 
             
            			user {
         | 
| 248 252 | 
             
            				id
         | 
| @@ -252,6 +256,7 @@ class Queries | |
| 252 256 | 
             
            				bio
         | 
| 253 257 | 
             
            				karma
         | 
| 254 258 | 
             
            				isHacker
         | 
| 259 | 
            +
            				timeCreated
         | 
| 255 260 | 
             
            				roles {
         | 
| 256 261 | 
             
            					id
         | 
| 257 262 | 
             
            					name
         | 
| @@ -353,7 +358,8 @@ class Queries | |
| 353 358 | 
             
            			isAnswerable
         | 
| 354 359 | 
             
            			...PostVoteControlPost
         | 
| 355 360 | 
             
            			user {
         | 
| 356 | 
            -
            				id | 
| 361 | 
            +
            				id
         | 
| 362 | 
            +
            				timeCreated		
         | 
| 357 363 | 
             
            				roles {
         | 
| 358 364 | 
             
            					id
         | 
| 359 365 | 
             
            					name
         | 
| @@ -451,4 +457,90 @@ class Queries | |
| 451 457 | 
             
            			__typename
         | 
| 452 458 | 
             
            		}"
         | 
| 453 459 | 
             
            	end
         | 
| 460 | 
            +
             | 
| 461 | 
            +
            	def Queries.get_comment
         | 
| 462 | 
            +
            		"query comment ($id: Int!) {
         | 
| 463 | 
            +
            			comment(id: $id) {
         | 
| 464 | 
            +
            				id
         | 
| 465 | 
            +
            				url
         | 
| 466 | 
            +
            				isAnswer
         | 
| 467 | 
            +
            				...CommentDetailComment
         | 
| 468 | 
            +
            				comments {
         | 
| 469 | 
            +
            					id
         | 
| 470 | 
            +
            					url
         | 
| 471 | 
            +
            					isAnswer
         | 
| 472 | 
            +
            					...CommentDetailComment
         | 
| 473 | 
            +
            					__typename
         | 
| 474 | 
            +
            				}
         | 
| 475 | 
            +
            				__typename
         | 
| 476 | 
            +
            			}
         | 
| 477 | 
            +
            		}
         | 
| 478 | 
            +
             | 
| 479 | 
            +
            		fragment DepreciatedUserLabelUser on User {
         | 
| 480 | 
            +
            			id
         | 
| 481 | 
            +
            			fullName
         | 
| 482 | 
            +
            			username
         | 
| 483 | 
            +
            			image
         | 
| 484 | 
            +
            			bio
         | 
| 485 | 
            +
            			karma
         | 
| 486 | 
            +
            			isHacker
         | 
| 487 | 
            +
            			timeCreated
         | 
| 488 | 
            +
            			roles {
         | 
| 489 | 
            +
            				id
         | 
| 490 | 
            +
            				name
         | 
| 491 | 
            +
            				key
         | 
| 492 | 
            +
            				tagline
         | 
| 493 | 
            +
            				__typename
         | 
| 494 | 
            +
            			}
         | 
| 495 | 
            +
            			organization {
         | 
| 496 | 
            +
            				id
         | 
| 497 | 
            +
            				name
         | 
| 498 | 
            +
            				__typename
         | 
| 499 | 
            +
            			}
         | 
| 500 | 
            +
            			languages {
         | 
| 501 | 
            +
            				id
         | 
| 502 | 
            +
            				key
         | 
| 503 | 
            +
            				displayName
         | 
| 504 | 
            +
            				tagline
         | 
| 505 | 
            +
            				icon
         | 
| 506 | 
            +
            				__typename
         | 
| 507 | 
            +
            			}
         | 
| 508 | 
            +
            			__typename
         | 
| 509 | 
            +
            		}
         | 
| 510 | 
            +
             | 
| 511 | 
            +
            		fragment CommentDetailComment on Comment {
         | 
| 512 | 
            +
            			id
         | 
| 513 | 
            +
            			body
         | 
| 514 | 
            +
            			timeCreated
         | 
| 515 | 
            +
            			url
         | 
| 516 | 
            +
            			isAnswer
         | 
| 517 | 
            +
            			...CommentVoteControlComment
         | 
| 518 | 
            +
            			user {
         | 
| 519 | 
            +
            				id
         | 
| 520 | 
            +
            				username
         | 
| 521 | 
            +
            				...DepreciatedUserLabelWithImageUser
         | 
| 522 | 
            +
            				__typename
         | 
| 523 | 
            +
            			}
         | 
| 524 | 
            +
            			post {
         | 
| 525 | 
            +
            				id
         | 
| 526 | 
            +
            				__typename
         | 
| 527 | 
            +
            			}
         | 
| 528 | 
            +
            			__typename
         | 
| 529 | 
            +
            		}
         | 
| 530 | 
            +
             | 
| 531 | 
            +
            		fragment DepreciatedUserLabelWithImageUser on User {
         | 
| 532 | 
            +
            			id
         | 
| 533 | 
            +
            			image
         | 
| 534 | 
            +
            			...DepreciatedUserLabelUser
         | 
| 535 | 
            +
            			__typename
         | 
| 536 | 
            +
            		}
         | 
| 537 | 
            +
             | 
| 538 | 
            +
            		fragment CommentVoteControlComment on Comment {
         | 
| 539 | 
            +
            			id
         | 
| 540 | 
            +
            			voteCount
         | 
| 541 | 
            +
            			canVote
         | 
| 542 | 
            +
            			hasVoted
         | 
| 543 | 
            +
            			__typename
         | 
| 544 | 
            +
            		}"
         | 
| 545 | 
            +
            	end
         | 
| 454 546 | 
             
            end
         | 
    
        data/lib/repltalk.rb
    CHANGED
    
    | @@ -89,21 +89,34 @@ end | |
| 89 89 |  | 
| 90 90 |  | 
| 91 91 | 
             
            class Comment
         | 
| 92 | 
            -
            	attr_reader :id, :url, :author, :content, :vote_count, :can_vote, :has_voted
         | 
| 92 | 
            +
            	attr_reader :id, :url, :author, :content, :post_id, :is_answer, :vote_count, :timestamp, :comments, :can_vote, :has_voted
         | 
| 93 93 |  | 
| 94 94 | 
             
            	def initialize(client, comment)
         | 
| 95 95 | 
             
            		@client = client
         | 
| 96 96 |  | 
| 97 97 | 
             
            		@id = comment["id"]
         | 
| 98 98 | 
             
            		@url = comment["url"]
         | 
| 99 | 
            -
            		@author = User.new(@client, comment["user"])
         | 
| 99 | 
            +
            		@author = comment["user"] == nil ? "[deleted user]" : User.new(@client, comment["user"])
         | 
| 100 100 | 
             
            		@content = comment["body"]
         | 
| 101 | 
            +
            		@post_id = comment["post"]["id"]
         | 
| 102 | 
            +
            		@is_answer = comment["isAnswer"]
         | 
| 101 103 | 
             
            		@vote_count = comment["voteCount"]
         | 
| 104 | 
            +
            		@timestamp = comment["timeCreated"]
         | 
| 105 | 
            +
            		@comments = comment.include?("comments") ? comment["comments"].map { |c| Comment.new(@client, c)} : Array.new
         | 
| 102 106 |  | 
| 103 107 | 
             
            		@can_vote = comment["canVote"]
         | 
| 104 108 | 
             
            		@has_voted = comment["hasVoted"]
         | 
| 105 109 | 
             
            	end
         | 
| 106 110 |  | 
| 111 | 
            +
            	def get_post
         | 
| 112 | 
            +
            		p = @client.graphql(
         | 
| 113 | 
            +
            			"post",
         | 
| 114 | 
            +
            			Queries.get_post,
         | 
| 115 | 
            +
            			id: @post_id
         | 
| 116 | 
            +
            		)
         | 
| 117 | 
            +
            		Post.new(self, p["post"])
         | 
| 118 | 
            +
            	end
         | 
| 119 | 
            +
             | 
| 107 120 | 
             
            	def to_s
         | 
| 108 121 | 
             
            		@content
         | 
| 109 122 | 
             
            	end
         | 
| @@ -125,8 +138,8 @@ class Post | |
| 125 138 | 
             
            		@timestamp = post["timeCreated"]
         | 
| 126 139 |  | 
| 127 140 | 
             
            		@board = Board.new(post["board"])
         | 
| 128 | 
            -
            		@author = User.new(@client, post["user"])
         | 
| 129 141 | 
             
            		@repl = post["repl"] == nil ? nil : Repl.new(post["repl"])
         | 
| 142 | 
            +
            		@author = post["user"] == nil ? "[deleted user]" : User.new(@client, post["user"])
         | 
| 130 143 |  | 
| 131 144 | 
             
            		@vote_count = post["voteCount"]
         | 
| 132 145 | 
             
            		@comment_count = post["commentCount"]
         | 
| @@ -151,7 +164,7 @@ end | |
| 151 164 |  | 
| 152 165 |  | 
| 153 166 | 
             
            class User
         | 
| 154 | 
            -
            	attr_reader :id, :username, :name, :pfp, :bio, :cycles, :is_hacker, :roles, :organization, :languages
         | 
| 167 | 
            +
            	attr_reader :id, :username, :name, :pfp, :bio, :cycles, :is_hacker, :timestamp, :roles, :organization, :languages
         | 
| 155 168 |  | 
| 156 169 | 
             
            	def initialize(client, user)
         | 
| 157 170 | 
             
            		@client = client
         | 
| @@ -163,6 +176,7 @@ class User | |
| 163 176 | 
             
            		@bio = user["bio"]
         | 
| 164 177 | 
             
            		@cycles = user["karma"]
         | 
| 165 178 | 
             
            		@is_hacker = user["isHacker"]
         | 
| 179 | 
            +
            		@timestamp = user["timeCreated"]
         | 
| 166 180 | 
             
            		@roles = user["roles"].map { |role| Role.new(role) }
         | 
| 167 181 | 
             
            		@organization = user["organization"] == nil ? nil : Organization.new(user["organization"])
         | 
| 168 182 | 
             
            		@languages = user["languages"].map { |lang| Language.new(lang) }
         | 
| @@ -177,9 +191,7 @@ class User | |
| 177 191 | 
             
            			count: count,
         | 
| 178 192 | 
             
            			after: after
         | 
| 179 193 | 
             
            		)
         | 
| 180 | 
            -
            		posts  | 
| 181 | 
            -
            		p["user"]["posts"]["items"].each { |post| posts << Post.new(@client, post) }
         | 
| 182 | 
            -
            		posts
         | 
| 194 | 
            +
            		p["user"]["posts"]["items"].map { |post| Post.new(@client, post) }
         | 
| 183 195 | 
             
            	end
         | 
| 184 196 |  | 
| 185 197 | 
             
            	def get_comments(order: "new", count: nil, after: nil)
         | 
| @@ -191,9 +203,7 @@ class User | |
| 191 203 | 
             
            			count: count,
         | 
| 192 204 | 
             
            			after: after
         | 
| 193 205 | 
             
            		)
         | 
| 194 | 
            -
            		comments  | 
| 195 | 
            -
            		c["user"]["comments"]["items"].each { |comment| comments << Comment.new(@client, comment) }
         | 
| 196 | 
            -
            		comments
         | 
| 206 | 
            +
            		c["user"]["comments"]["items"].map { |comment| Comment.new(@client, comment) }
         | 
| 197 207 | 
             
            	end
         | 
| 198 208 |  | 
| 199 209 | 
             
            	def to_s
         | 
| @@ -263,4 +273,13 @@ class Client | |
| 263 273 | 
             
            		)
         | 
| 264 274 | 
             
            		Post.new(self, p["post"])
         | 
| 265 275 | 
             
            	end
         | 
| 276 | 
            +
             | 
| 277 | 
            +
            	def get_comment(id)
         | 
| 278 | 
            +
            		c = graphql(
         | 
| 279 | 
            +
            			"comment",
         | 
| 280 | 
            +
            			Queries.get_comment,
         | 
| 281 | 
            +
            			id: id
         | 
| 282 | 
            +
            		)
         | 
| 283 | 
            +
            		Comment.new(self, c["comment"])
         | 
| 284 | 
            +
            	end
         | 
| 266 285 | 
             
            end
         |