jekyll-hackclub 1.1.0 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a6983799f7f157799ee42dc525700706a97d24a4c6e67da64baeb9b91520b411
4
- data.tar.gz: 83032a1f6dc44f6da7e1b8698a2ee05543fb6d581a4c7d45008fb8ae7d55c587
3
+ metadata.gz: de886c16f8e0135c5cf61d9918210a0ea31905bb51f5292d539fcd1ff27aaf4c
4
+ data.tar.gz: 6649112e691948cb83a94829364d5a4c0b22b617c4c3e5d600aeccab79973200
5
5
  SHA512:
6
- metadata.gz: 5338d85198e7446012bc68eeecc3d740bb9d99b9c577693074e973450b23e97e7e70fd5ad102931875a02ad9dfaa60130c93d2bb55a50e5017731c6a01797d1c
7
- data.tar.gz: cdce15077066008b97d13a0328b1b68c0023d12ff350f9a13541bf3133f850247c227a4a00cda414e4a7209b83b8b818dd69aa2733ae0197e0fa33447a57171f
6
+ metadata.gz: 9fef2b54b058eba122b6ef06cf801d271fdefc4d00e71b9a5c554f09a6fe03272f194a5f0d629c45f8a812ba1a1ec0091f0f0795df31cf9df4f99bcbfe0ef6af
7
+ data.tar.gz: f39585ba8cc849022224092743768f83c8d2864942523526aade46a4326b6de4efcb2603ca1ec81d89572c97c840c808bdc7c581799026d78de2b5d1b4dc63fe
@@ -0,0 +1,24 @@
1
+ require "jekyll"
2
+ require_relative "./server-bridge"
3
+
4
+ module Jekyll
5
+ class HackclubChannelTag < Liquid::Tag
6
+ def initialize(tagName, content, tokens)
7
+ super
8
+ content = content.strip()
9
+ @id, *rest = content.split(" ", 2)
10
+ keys = rest.join.split(".")
11
+ @data = HackclubRequest.raw_channel(@id).dig("channel").dig(*keys)
12
+ end
13
+
14
+ def render(context)
15
+ if @data == nil
16
+ %Q{null}
17
+ else
18
+ %Q{#{@data}}
19
+ end
20
+ end
21
+ end
22
+
23
+ Liquid::Template.register_tag "channel", HackclubChannelTag
24
+ end
data/lib/emoji.rb CHANGED
@@ -5,7 +5,7 @@ module Jekyll
5
5
  class HackclubEmoji < Liquid::Tag
6
6
  def initialize(tagName, content, tokens)
7
7
  super
8
- @id = content.gsub(/\A:+|:+\z/, '')
8
+ @id = content.gsub(/\A:+|:+\z/, '').strip
9
9
  @img_url = HackclubRequest.resolve_emoji(@id)
10
10
  end
11
11
 
@@ -1,3 +1,5 @@
1
1
  require_relative "./emoji"
2
2
  require_relative "./mentions"
3
- require_relative "./server-bridge"
3
+ require_relative "./server-bridge"
4
+ require_relative "./user-tag"
5
+ require_relative "./channel-tag"
data/lib/server-bridge.rb CHANGED
@@ -21,6 +21,18 @@ module HackclubRequest
21
21
  end
22
22
  end
23
23
 
24
+ def self.raw_user(userid)
25
+ uri = URI("#{host}/users.info/#{userid}")
26
+ res = Net::HTTP.get_response(uri)
27
+
28
+ data = JSON.parse(res.body)
29
+ if res.is_a?(Net::HTTPSuccess)
30
+ data
31
+ else
32
+ {}
33
+ end
34
+ end
35
+
24
36
  def self.resolve_username(userid)
25
37
  uri = URI("#{host}/users.info/#{userid}")
26
38
  res = Net::HTTP.get_response(uri)
@@ -37,6 +49,18 @@ module HackclubRequest
37
49
  end
38
50
  end
39
51
 
52
+ def self.raw_channel(channelid)
53
+ uri = URI("#{host}/conversations.info/#{channelid}")
54
+ res = Net::HTTP.get_response(uri)
55
+
56
+ data = JSON.parse(res.body)
57
+ if res.is_a?(Net::HTTPSuccess)
58
+ data
59
+ else
60
+ {}
61
+ end
62
+ end
63
+
40
64
  def self.resolve_channel(channelid)
41
65
  uri = URI("#{host}/conversations.info/#{channelid}")
42
66
  res = Net::HTTP.get_response(uri)
data/lib/user-tag.rb ADDED
@@ -0,0 +1,24 @@
1
+ require "jekyll"
2
+ require_relative "./server-bridge"
3
+
4
+ module Jekyll
5
+ class HackclubUserTag < Liquid::Tag
6
+ def initialize(tagName, content, tokens)
7
+ super
8
+ content = content.strip()
9
+ @id, *rest = content.split(" ", 2)
10
+ keys = rest.join.split(".")
11
+ @data = HackclubRequest.raw_user(@id).dig("user").dig(*keys)
12
+ end
13
+
14
+ def render(context)
15
+ if @data == nil
16
+ %Q{null}
17
+ else
18
+ %Q{#{@data}}
19
+ end
20
+ end
21
+ end
22
+
23
+ Liquid::Template.register_tag "user", HackclubUserTag
24
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-hackclub
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - MathiasDPX
@@ -41,10 +41,12 @@ executables: []
41
41
  extensions: []
42
42
  extra_rdoc_files: []
43
43
  files:
44
+ - lib/channel-tag.rb
44
45
  - lib/emoji.rb
45
46
  - lib/jekyll-hackclub.rb
46
47
  - lib/mentions.rb
47
48
  - lib/server-bridge.rb
49
+ - lib/user-tag.rb
48
50
  licenses:
49
51
  - MIT
50
52
  metadata: {}