userapi-ai 0.1.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8e731075ee42254e2b5449b12c471ad38ec7b17f49ed35c27e1f8b9cb3ab994
4
- data.tar.gz: 5649910f890faa5412886612a3a615e0e6dcfeead93a874d2bc8d018082f6f60
3
+ metadata.gz: 9b9f1e430a00b0c38594bfdcaf2e9a73fc0e1b84335880cbf41b4c37ed2f3962
4
+ data.tar.gz: 35674d40a7625af53ee130443d89b52b212e2f03540e26e1a8dd69b52e5cceba
5
5
  SHA512:
6
- metadata.gz: b5f8753fb545c528159d891f6164adeac1a2aab4f76679c8893a73fe27c9eec19a9d406c7c22c7e3c114d5438e36f60cac32648b17aa98724f63081e96e5ee88
7
- data.tar.gz: c7f0caef35c18a90a87c9747d85c0de3cec320ef9796de7946d20789ceffafc376794f2316c15786ef12bd9a255a55893f2cd7e18e5352f8179ceefa2d486f08
6
+ metadata.gz: 5f2e96c827d8e79235b72b43f431649558b99c42da4ad203cf31368e00d9505ccfe8da0ae9749454675ceda58149af6052c5b2af7861fb3639b7b3f147674168
7
+ data.tar.gz: abe25672348422d4d4fbb64868f3dfecf757fc504ab068303c1ab7f0f37ecda6c72e2fcaa19b8366b6be948188497b9dae58346b81db769efa0ad893058fd318
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+
4
+ ## [0.2.0] - 2024-03-24
5
+ raise StandardError on {"status"=>false, "error"=>"..."}
6
+
3
7
  ## [0.1.0] - 2024-03-24
4
8
 
5
9
  - Initial release
data/README.md CHANGED
@@ -1,11 +1,23 @@
1
- # Midjourney Ruby
1
+ # Userapi.ai Ruby
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/userapi-ai.svg)](https://badge.fury.io/rb/userapi-ai)
4
4
  [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/neonix20b/userapi-ai/blob/main/LICENSE.txt)
5
5
 
6
6
  Userapi.ai is an awesome tool that brings great value to products.
7
7
  This gem was created to facilitate Ruby and also Rails applications to use all services of Userapi.ai:
8
- - Midjourney
8
+ - Midjourney API
9
+ - [Imagine](https://www.notion.so/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142?pvs=21)
10
+ - [Describe](https://www.notion.so/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142?pvs=21)
11
+ - [Upscale](https://www.notion.so/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142?pvs=21)
12
+ - [Upsample](https://www.notion.so/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142?pvs=21)
13
+ - [Variation](https://www.notion.so/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142?pvs=21)
14
+ - [Inpaint](https://www.notion.so/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142?pvs=21)
15
+ - [Blend](https://www.notion.so/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142?pvs=21)
16
+ - [Reroll](https://www.notion.so/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142?pvs=21)
17
+ - [Zoom](https://www.notion.so/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142?pvs=21)
18
+ - [Pan](https://www.notion.so/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142?pvs=21)
19
+ - [Info](https://www.notion.so/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142?pvs=21)
20
+ - [Status](https://www.notion.so/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142?pvs=21)
9
21
 
10
22
  ## Installation
11
23
 
@@ -91,7 +103,31 @@ You can use it to generate images of people, animals, objects, and anything else
91
103
  webhook_url:  "https://example.com/upscale/webhook-url",
92
104
  webhook_type: "result")
93
105
  ```
94
- See more [here](https://butternut-saffron-e5e.notion.site/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142#9abe719bb58948039acb5f0a6aee8947)
106
+ See more [here](https://butternut-saffron-e5e.notion.site/Midjourney-userapi-ai-doc-en-119680339b0a47e2ba6ae467eca58142#9abe719bb58948039acb5f0a6aee8947).
107
+
108
+ #### Tools
109
+
110
+ You can split the quad-layout output from Midjourney into 4 separate images. Don't forget to add the `gem 'mini_magick'`.
111
+
112
+ ```ruby
113
+ response = client.status result
114
+ if response["status"] == "done"
115
+ local_paths = UserapiAi::Tool.crop result: response["result"]
116
+ # or UserapiAi::Tool.crop url: "https://example.com/img.png"
117
+ local_paths.each do |path|
118
+ f = File.open(path)
119
+ ...
120
+ end
121
+ end
122
+ ```
123
+
124
+ ```bash
125
+ => local_paths
126
+ ["/var/folders/yb/bjdvl6mn3cx2l7nd08726k500000gn/T/mini_magick20240324-73984-31zmkb-0.png",
127
+ "/var/folders/yb/bjdvl6mn3cx2l7nd08726k500000gn/T/mini_magick20240324-73984-31zmkb-1.png",
128
+ "/var/folders/yb/bjdvl6mn3cx2l7nd08726k500000gn/T/mini_magick20240324-73984-31zmkb-2.png",
129
+ "/var/folders/yb/bjdvl6mn3cx2l7nd08726k500000gn/T/mini_magick20240324-73984-31zmkb-3.png"]
130
+ ```
95
131
 
96
132
  ## Development
97
133
 
data/lib/userapi/http.rb CHANGED
@@ -7,9 +7,6 @@ module UserapiAi
7
7
  end
8
8
 
9
9
  def json_post(path:, parameters:)
10
- puts uri(path: path)
11
- puts headers
12
- puts parameters.to_json
13
10
  to_json(conn.post(uri(path: path)) do |req|
14
11
  req.headers = headers
15
12
  req.body = parameters.to_json
@@ -21,7 +18,12 @@ module UserapiAi
21
18
  def to_json(string)
22
19
  return unless string
23
20
 
24
- JSON.parse(string)
21
+ json = JSON.parse(string)
22
+ if json["status"] == false and json.has_key?("error")
23
+ raise StandardError.new json["error"]
24
+ else
25
+ json
26
+ end
25
27
  rescue JSON::ParserError
26
28
  # Convert a multiline string of JSON objects to a JSON array.
27
29
  JSON.parse(string.gsub("}\n{", "},{").prepend("[").concat("]"))
@@ -0,0 +1,13 @@
1
+ module UserapiAi
2
+ class Tool
3
+ def self.crop url: nil, result: nil
4
+ url = result["url"] if url.nil?
5
+ image = MiniMagick::Image.open url
6
+ image.crop "50%x50%"
7
+ arr = image.path.split(".")
8
+ (0..3).map{ |i|
9
+ arr.dup.insert(-2, "-#{i}.").join("")
10
+ }
11
+ end
12
+ end
13
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module UserapiAi
4
- VERSION = "0.1.0"
4
+ VERSION = "0.3.0"
5
5
  end
6
6
 
data/lib/userapi-ai.rb CHANGED
@@ -5,6 +5,7 @@ require "faraday/multipart"
5
5
 
6
6
  require_relative "userapi/http"
7
7
  require_relative "userapi/client"
8
+ require_relative "userapi/tools"
8
9
  require_relative "userapi/version"
9
10
 
10
11
  module UserapiAi
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: userapi-ai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Smolev Denis
@@ -57,6 +57,7 @@ files:
57
57
  - lib/userapi/client.rb
58
58
  - lib/userapi/compatibility.rb
59
59
  - lib/userapi/http.rb
60
+ - lib/userapi/tools.rb
60
61
  - lib/userapi/version.rb
61
62
  - sig/userapi/ai.rbs
62
63
  homepage: https://userapi.ai.
@@ -72,9 +73,9 @@ require_paths:
72
73
  - lib
73
74
  required_ruby_version: !ruby/object:Gem::Requirement
74
75
  requirements:
75
- - - ">="
76
+ - - '='
76
77
  - !ruby/object:Gem::Version
77
- version: 2.6.0
78
+ version: 3.0.0
78
79
  required_rubygems_version: !ruby/object:Gem::Requirement
79
80
  requirements:
80
81
  - - ">="