jekyll-chatgpt-translate 0.0.31 → 0.0.32

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: 8c50e5ce734d7a12ddcedbbcc4602453d5c0a7e78352a6e12bfbe04abfcf149e
4
- data.tar.gz: 66f6a5668e0d37fd32a1f9573e34036b3155cf864238afb48116c8be4cd19e64
3
+ metadata.gz: a186798ad4c85bb986a0ad9aa25a8b3c659af36f4ee351ab4b8c0a6ddc407f90
4
+ data.tar.gz: b7fac01e0df9bc04f2d977f729b6bfc6aa28997775346610c76e3b2df0736c71
5
5
  SHA512:
6
- metadata.gz: b5adeb2316daff862f639e9318f5636d3651c69ea5fd50c42c3ddc86e13a7ac97406491fe7f0acf5bfe5d0550135a0568abeed790d1b70ccb3a593a89fc279b6
7
- data.tar.gz: cf233bb2b67710883367515aaffffe4304d4c7f2b4c9571e276ed1323c90793bbddef1045067d5e84ca04dbb93fb946614bb5d05bbe71571bbfc589011af3c66
6
+ metadata.gz: 135850d3b8d6a9bbeabde741e5cb1c183ab4ead16a5caeb6612e99c0db7f4d9dd310d889b9144b6985af9a003a99f184261ab72eeaffba0aff1dec31e54a45ba
7
+ data.tar.gz: fad830cf25f4bf56ad35216da0132c4911c08ad85de7dd5a25e79f583e3a06781eccc5529588f5d511e800f300cd0d01520559d7758723558118561e3b4142c9
data/.rubocop.yml CHANGED
@@ -22,7 +22,7 @@ Metrics/BlockLength:
22
22
  Metrics/CyclomaticComplexity:
23
23
  Max: 30
24
24
  Metrics/PerceivedComplexity:
25
- Max: 30
25
+ Max: 40
26
26
  Layout/EmptyLineAfterGuardClause:
27
27
  Enabled: false
28
28
  Naming/FileName:
data/features/cli.feature CHANGED
@@ -168,3 +168,41 @@ Feature: Simple site building
168
168
  And File "_site/2023/01/01/hello.html" contains "/bye.html"
169
169
  And File "_site/2023/02/02/bye.html" exists
170
170
  And File "_site/2023/02/02/bye.html" contains "/hello.html"
171
+
172
+ Scenario: No translation at all
173
+ Given I have a "_config.yml" file with content:
174
+ """
175
+ url: https://www.yegor256.com
176
+ markdown: kramdown
177
+ plugins:
178
+ - jekyll-chatgpt-translate
179
+ chatgpt-translate:
180
+ source: en
181
+ threshold: 0
182
+ api_key: "it-is-not-used, because EN to EN translation"
183
+ layout: default
184
+ targets:
185
+ -
186
+ language: en
187
+ permalink: :slug.html
188
+ """
189
+ And I have a "_layouts/default.html" file with content:
190
+ """
191
+ {{ content }}
192
+ """
193
+ And I have a "_posts/2023-01-01-hello.md" file with content:
194
+ """
195
+ ---
196
+ title: foo
197
+ ---
198
+ {% if page.chatgpt-translate.model %}
199
+ TRANSLATED :(
200
+ {% else %}
201
+ NO TRANSLATION! :)
202
+ {% endif %}
203
+ """
204
+ Then I build Jekyll site
205
+ And Exit code is zero
206
+ And Stdout contains "The page is absent, need to translate"
207
+ And File "_site/2023/01/01/hello.html" exists
208
+ And File "_site/2023/01/01/hello.html" contains "NO TRANSLATION!"
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
29
29
  s.required_ruby_version = '>= 2.6'
30
30
  s.name = 'jekyll-chatgpt-translate'
31
- s.version = '0.0.31'
31
+ s.version = '0.0.32'
32
32
  s.license = 'MIT'
33
33
  s.summary = 'Translate Jekyll Pages Through ChatGPT'
34
34
  s.description = [
@@ -60,7 +60,7 @@ class GptTranslate::Generator < Jekyll::Generator
60
60
  copied = 0
61
61
  model = config['model'] || 'gpt-3.5-turbo'
62
62
  marker = "Translated by ChatGPT #{model}#{version.empty? ? '' : "/#{version}"}"
63
- site.posts.docs.shuffle.each do |doc|
63
+ site.posts.docs.shuffle.each_with_index do |doc, pos|
64
64
  plain = GptTranslate::Plain.new(doc.content).to_s
65
65
  config['targets'].each do |target|
66
66
  start = Time.now
@@ -86,12 +86,14 @@ class GptTranslate::Generator < Jekyll::Generator
86
86
  )
87
87
  html = config['no_download'].nil? ? GptTranslate::Ping.new(site, link).download : nil
88
88
  needed = false
89
+ added = false
89
90
  if html.nil?
90
91
  Jekyll.logger.info("The page is absent, need to translate #{link.inspect}")
91
92
  needed = true
92
93
  else
93
94
  copied += 1
94
95
  site.static_files << DownloadedFile.new(site, link, html)
96
+ added = true
95
97
  if version.empty?
96
98
  Jekyll.logger.info("Re-translation not required, since version is empty: #{link.inspect}")
97
99
  elsif html.include?(marker)
@@ -103,7 +105,7 @@ class GptTranslate::Generator < Jekyll::Generator
103
105
  end
104
106
  end
105
107
  if translated >= threshold
106
- Jekyll.logger.info("We are over the threshold: #{translated} > #{threshold}")
108
+ Jekyll.logger.info("Page ##{pos} is ignored, we are over the threshold of #{threshold}: #{link}")
107
109
  elsif needed
108
110
  gpt = GptTranslate::ChatGPT.new(
109
111
  key,
@@ -124,10 +126,12 @@ class GptTranslate::Generator < Jekyll::Generator
124
126
  )
125
127
  site.pages << Jekyll::Page.new(site, site.source, File.dirname(path), File.basename(path))
126
128
  site.static_files.delete_if { |f| f.is_a?(DownloadedFile) && f.link == link }
129
+ added = true
127
130
  translated += 1
128
131
  Jekyll.logger.info("Translated via ChatGPT \
129
132
  in #{(Time.now - start).round(2)}s: #{path} (#{File.size(path)} bytes)")
130
133
  end
134
+ next unless added
131
135
  doc.data['chatgpt-translate'] ||= {}
132
136
  doc.data['chatgpt-translate']['model'] ||= model
133
137
  doc.data['chatgpt-translate']['urls'] ||= {}
@@ -23,5 +23,5 @@
23
23
  # SOFTWARE.
24
24
 
25
25
  module GptTranslate
26
- VERSION = '0.0.31'
26
+ VERSION = '0.0.32'
27
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-chatgpt-translate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.31
4
+ version: 0.0.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko