brutalismbot 1.5.0 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/brutalismbot/reddit/post.rb +39 -9
- data/lib/brutalismbot/reddit/stub.rb +3 -2
- data/lib/brutalismbot/twitter/client.rb +7 -9
- data/lib/brutalismbot/version.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: 28218fbe0be73eed7c6f58124f4845c2ddcbcd5734055295c93ab544767455cf
|
4
|
+
data.tar.gz: 304ae833546888f31d9177e907bc6caba0f486a11048b8a16b2fcbe71ec2166b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd8b2c2d014f52ce4a4d845e7342b4c5c8c4e5d62269b390376ea7de198b2098f800e9dea9931ec55e4c0ce17a4ca8badb66a2c92113c95c89901600cfbf2127
|
7
|
+
data.tar.gz: 254fed1155712f30f0440f38fb05576aabda571a9f6a592b8598f27f6b3bce4dbe27ac798b31aa37a6bfef200a07df5045c4633383471726751fbf34af3a6e98
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require "forwardable"
|
2
2
|
require "json"
|
3
|
+
require "net/http"
|
3
4
|
|
4
5
|
require "brutalismbot/base"
|
5
6
|
|
@@ -38,10 +39,45 @@ module Brutalismbot
|
|
38
39
|
"#<#{self.class} #{data["permalink"]}>"
|
39
40
|
end
|
40
41
|
|
42
|
+
def is_self?
|
43
|
+
data["is_self"]
|
44
|
+
end
|
45
|
+
|
41
46
|
def kind
|
42
47
|
@item["kind"]
|
43
48
|
end
|
44
49
|
|
50
|
+
def media_uri
|
51
|
+
URI.parse(media_url)
|
52
|
+
end
|
53
|
+
|
54
|
+
def media_url
|
55
|
+
# Use URL if it's an image
|
56
|
+
if mime_type.start_with?("image/")
|
57
|
+
data["url"]
|
58
|
+
|
59
|
+
# Extract preview image URL
|
60
|
+
else
|
61
|
+
images = data.dig("preview", "images") || {}
|
62
|
+
source = images.map{|x| x["source"] }.compact.max do |a,b|
|
63
|
+
a.slice("width", "height").values <=> b.slice("width", "height").values
|
64
|
+
end
|
65
|
+
CGI.unescape_html(source["url"])
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def mime_type
|
70
|
+
@mime ||= begin
|
71
|
+
uri = URI.parse(data["url"])
|
72
|
+
ssl = uri.scheme == "https"
|
73
|
+
Brutalismbot.logger.info("HEAD #{uri}")
|
74
|
+
Net::HTTP.start(uri.host, uri.port, use_ssl: ssl) do |http|
|
75
|
+
req = Net::HTTP::Head.new(uri)
|
76
|
+
http.request(req)["Content-Type"]
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
45
81
|
def path
|
46
82
|
created_utc.strftime("year=%Y/month=%Y-%m/day=%Y-%m-%d/%s.json")
|
47
83
|
end
|
@@ -65,7 +101,7 @@ module Brutalismbot
|
|
65
101
|
end
|
66
102
|
|
67
103
|
def to_slack
|
68
|
-
|
104
|
+
is_self? ? to_slack_text : to_slack_image
|
69
105
|
end
|
70
106
|
|
71
107
|
def to_slack_image
|
@@ -78,7 +114,7 @@ module Brutalismbot
|
|
78
114
|
text: "/r/brutalism",
|
79
115
|
emoji: true,
|
80
116
|
},
|
81
|
-
image_url:
|
117
|
+
image_url: media_url,
|
82
118
|
alt_text: title,
|
83
119
|
},
|
84
120
|
{
|
@@ -120,13 +156,7 @@ module Brutalismbot
|
|
120
156
|
end
|
121
157
|
|
122
158
|
def url
|
123
|
-
|
124
|
-
source = images.map{|x| x["source"] }.compact.max do |a,b|
|
125
|
-
a.slice("width", "height").values <=> b.slice("width", "height").values
|
126
|
-
end
|
127
|
-
CGI.unescapeHTML(source.dig("url"))
|
128
|
-
rescue NoMethodError
|
129
|
-
data["media_metadata"]&.values&.first&.dig("s", "u")
|
159
|
+
data["url"]
|
130
160
|
end
|
131
161
|
end
|
132
162
|
end
|
@@ -16,18 +16,19 @@ module Brutalismbot
|
|
16
16
|
created_utc: created_utc.to_i,
|
17
17
|
permalink: "/r/brutalism/comments/#{permalink_id}/test/",
|
18
18
|
title: "Post to /r/brutalism",
|
19
|
+
url: "https://image.host/#{image_id}.jpg",
|
19
20
|
preview: {
|
20
21
|
images: [
|
21
22
|
{
|
22
23
|
source: {
|
23
|
-
url: "https://preview.
|
24
|
+
url: "https://preview.image.host/#{image_id}_large.jpg",
|
24
25
|
width: 1000,
|
25
26
|
height: 1000,
|
26
27
|
},
|
27
28
|
},
|
28
29
|
{
|
29
30
|
source: {
|
30
|
-
url: "https://preview.
|
31
|
+
url: "https://preview.image.host/#{image_id}_small.jpg",
|
31
32
|
width: 500,
|
32
33
|
height: 500,
|
33
34
|
}
|
@@ -20,22 +20,20 @@ module Brutalismbot
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def push(post, dryrun:nil)
|
23
|
-
|
24
|
-
method = post.url.nil? ? :push_text : :push_image
|
23
|
+
method = post.is_self? ? :push_text : :push_image
|
25
24
|
send(method, post, dryrun: dryrun)
|
26
25
|
end
|
27
26
|
|
28
27
|
def push_text(post, dryrun:nil)
|
29
|
-
|
30
|
-
@client.update(
|
28
|
+
Brutalismbot.logger.info("PUSH #{"DRYRUN " if dryrun}twitter://@brutalismbot")
|
29
|
+
@client.update(post.to_twitter) unless dryrun
|
31
30
|
end
|
32
31
|
|
33
32
|
def push_image(post, dryrun:nil)
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
@client.update_with_media(status, media)
|
33
|
+
Brutalismbot.logger.info("GET #{post.media_uri}")
|
34
|
+
Brutalismbot.logger.info("PUSH #{"DRYRUN " if dryrun}twitter://@brutalismbot")
|
35
|
+
post.media_uri.open do |media|
|
36
|
+
@client.update_with_media(post.to_twitter, media)
|
39
37
|
end unless dryrun
|
40
38
|
end
|
41
39
|
end
|
data/lib/brutalismbot/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brutalismbot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Mancevice
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: twitter
|