jekyll-chatgpt-translate 0.0.31 → 0.0.32

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: 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