sakaki 1.0.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 (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/sakaki.rb +58 -0
  3. metadata +58 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1ae2655d0e941c99f99c740079ac034180d8093e
4
+ data.tar.gz: 88d39b6d5830b752f5f6de3c33c1f089ca0592bb
5
+ SHA512:
6
+ metadata.gz: 7334fbcd7b8d1743ad4783110f0d6a0e44e9ad78bcfdda431ba117a0b694c7f43d0e43cc378ef7ad2b7754dcb4a7316693d00e28464ec49cf88a523097e21c9f
7
+ data.tar.gz: 3275bd9d89cc9229bd20b1aace7abb22c3bbbb1a3ed5c5a06e99e94f2da9977232d248e9b0ad7a7bfa064be7d3027b0253020c9d286dae4d134f248482534c80
@@ -0,0 +1,58 @@
1
+ # sakaki.rb - Ruby API wrapper for Sakaki
2
+ # (c) 2017 prefetcher
3
+
4
+ require 'socket'
5
+ require 'json'
6
+ require 'base64'
7
+
8
+ API = "/api/v1/"
9
+
10
+ class Sakaki
11
+ ###############
12
+ # Indexes a board
13
+ # Returns a hash of arrays
14
+ def index_board(board)
15
+ return JSON.parse(get(API + "board/" + board))
16
+ end
17
+
18
+ ###############
19
+ # Gets replies from thread
20
+ # Returns a hash of arrays
21
+ def get_thread_replies(id)
22
+ return JSON.parse(get(API + "thread/" + id.to_s))
23
+ end
24
+
25
+ ###############
26
+ # Gets all boards with their descriptions
27
+ # Returns a hash of arrays
28
+ def get_boards
29
+ return JSON.parse(get(API + "boards"))
30
+ end
31
+
32
+ ###############
33
+ # Replies to a thread
34
+ # Returns nothing
35
+ def reply(id, board, comment)
36
+ get("/" + board + "/reply/" + id.to_s, comment)
37
+ end
38
+
39
+ ###############
40
+ # Creates a new thread
41
+ # Returns nothing
42
+ def new_thread(board, title, comment)
43
+ get("/" + board + "/post/" + Base64.urlsafe_encode64(title), comment)
44
+ end
45
+
46
+ def get(location, query="")
47
+ socket = TCPSocket.new("gopher.dangeru.us", 70)
48
+
49
+ if query.empty? then
50
+ socket.print location + "\n"
51
+ else
52
+ socket.print location + "\t" + query + "\n"
53
+ end
54
+ response = socket.read
55
+
56
+ return response[0..-5]
57
+ end
58
+ end
metadata ADDED
@@ -0,0 +1,58 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sakaki
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - prefetcher
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-09-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: Gopher/u/ / Sakaki wrapper for Ruby
28
+ email: 0xlunaric@gmail.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/sakaki.rb
34
+ homepage: http://rubygems.org/gems/sakaki
35
+ licenses:
36
+ - MIT
37
+ metadata: {}
38
+ post_install_message:
39
+ rdoc_options: []
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ requirements: []
53
+ rubyforge_project:
54
+ rubygems_version: 2.6.11
55
+ signing_key:
56
+ specification_version: 4
57
+ summary: sakaki.rb
58
+ test_files: []