simple_tweet 2.2.0 → 2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7e8b7b5eef07f8a7108285eeb67aa7708fd0f810b49c497e4d2a2e7e988f671d
4
- data.tar.gz: f0501a28e4072c89f67944a7982394fd21ebd3fbc0e852dd18b5d3eb98fc0d97
3
+ metadata.gz: 824d9a2b160763d55494fef995e0e63974afd881c07098a96f2e3acc19a9439e
4
+ data.tar.gz: c1c5050eaa9edce06a831c81202405daad44196454528295e759c83e1947ab5d
5
5
  SHA512:
6
- metadata.gz: 38863d94493b2b4a71f0306327d7db02785e2118d852b5dd5508e642e9bbc0d8d453104ab08853da9b2ded125d49e782afa99913fe16f09726c0da5acad77d53
7
- data.tar.gz: 7e8e2ad9278bacef086651331964f40c1020257339e3599128903081cc5123ec40904597c6568a51bd10c7a10597ec16d52fab2a3bdc5c58aeadc97726ec7d48
6
+ metadata.gz: b782ae0dae6a0f7e54ba7985c1950def54e285d57da83334abb9a3a32d9b2e848c9525190ce058f1f30ee04f1e78edb2aa91361ee5461c40ae3ef80b9e0ee160
7
+ data.tar.gz: '0980b93e87c9e7b9ff278db95c0748d6ac4ec02f5fb7bcd8fee132e935886d13b4b992b34eccf574cc411fcc278e3bed852068007dcf1aa9842daf60f49a9f04'
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.6
2
+ TargetRubyVersion: 3.0
3
3
 
4
4
  Style/StringLiterals:
5
5
  Enabled: true
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "cgi"
2
4
  require "oauth"
3
5
  require "json"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "json"
2
4
 
3
5
  module SimpleTweet
@@ -5,7 +7,8 @@ module SimpleTweet
5
7
  # mediaのuploadはapi 1.1しか用意されていないため、それを使う。
6
8
  class Client < V1::Client
7
9
  TW_TWEET_PATH = "/2/tweets"
8
- UA = "SimpleTweet/#{SimpleTweet::VERSION}"
10
+ TW_METADATA_CREATE_PATH = "/1.1/media/metadata/create.json"
11
+ UA = "SimpleTweet/#{SimpleTweet::VERSION}".freeze
9
12
 
10
13
  def tweet(message:, media_ids: [])
11
14
  json = { text: message }
@@ -13,6 +16,27 @@ module SimpleTweet
13
16
  header = { "User-Agent": UA, "content-type": "application/json" }
14
17
  access_token.post(TW_TWEET_PATH, json.to_json, header)
15
18
  end
19
+
20
+ def tweet_with_media(message:, media_type:, media:, alt_text: nil)
21
+ media_ids = upload_media(media_type: media_type, media: media)
22
+ unless alt_text.nil?
23
+ media_ids.each do |media_id|
24
+ create_media_metadata(media_id: media_id, alt_text: alt_text)
25
+ end
26
+ end
27
+ tweet(message: message, media_ids: media_ids)
28
+ end
29
+
30
+ private
31
+
32
+ def create_media_metadata(media_id:, alt_text:)
33
+ header = { "content-type": "application/json; charset=UTF-8" }
34
+ req = ::Net::HTTP::Post.new(TW_METADATA_CREATE_PATH, header)
35
+ req.body = { media_id: media_id, alt_text: { text: alt_text } }.to_json
36
+ res = request(req)
37
+ throw UploadMediaError, "create_media_metadata failed: #{res.code} #{res.body}" if res.code != "200"
38
+ res
39
+ end
16
40
  end
17
41
  end
18
42
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SimpleTweet
4
- VERSION = "2.2.0"
4
+ VERSION = "2.3.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_tweet
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kugayama Nana
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-15 00:00:00.000000000 Z
11
+ date: 2023-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multipart-post