jekyll-chatgpt-translate 0.0.11 → 0.0.12

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: c02caba7176953aa1d0df4bbe92e40dcf7f1046b22f9f2af8dcd434179d36a00
4
- data.tar.gz: 6d510fbdc601a7f7174194b39a17402e8e3aff08ff40190e8799d897eaf1aded
3
+ metadata.gz: ed6617e3b8bf46db264f484e1286ea1f91295f4fb47512cb983a6fc59c7922df
4
+ data.tar.gz: a0f6c744cd4bf2b2558d7b5568f1ca961a3f854e5264b9d64bb8b24249f03e3a
5
5
  SHA512:
6
- metadata.gz: a4224dd0584ed1d6ed56e876e4678de0dcba0a2338dba08bfa61a3147365ddec617116ed92f4616799b182c127f5d4509ab114e02659ca87dad1cd1e6fe9825c
7
- data.tar.gz: ac6ed731ca359ccc2021be00c232c60271a212c0f68dd5ca4e0212ef7ebf6bb26c2a94decae2422fc17c80e5c880e52aea407d175b22a19ae0dd544da4d485e6
6
+ metadata.gz: 2d58f41b76840e524e9f1d72c2a4816b33d9e57ad6b207f54baa226abf68ae6cca848cb8cce80cf1f4502a3ad9b52871db7f7708463bf4101fdbf8c21e5f99bb
7
+ data.tar.gz: f85b41ad75176c9989a8a3715fd84485b3a2fcbe03e6cca879b7a201ac4b5745dda0aa16695f26cbaad1ec901b84c6837f983f7a04cee94aa26752d13ef41593
data/README.md CHANGED
@@ -68,6 +68,9 @@ This layout will be specified for the pages generated by this plugin.
68
68
  * `layout` (optional) — the name of the file in the `_layouts` directory
69
69
 
70
70
  * `threshold` (optional) — maximum number of pages to generate in one build cycle.
71
+ The default value is 1024. It is recommended to use smaller number, in order
72
+ to avoid too long builds. You can re-run the build again and missing pages
73
+ will be generated. Thus, in a few builds the entire site will be translated.
71
74
 
72
75
  * `version` (optional) — the version that will be attached to each generated page,
73
76
  in order to avoid repetitive translations on one hand and enable re-translations
@@ -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.11'
31
+ s.version = '0.0.12'
32
32
  s.license = 'MIT'
33
33
  s.summary = 'Translate Jekyll Pages Through ChatGPT'
34
34
  s.description = [
@@ -51,17 +51,18 @@ class GptTranslate::Generator < Jekyll::Generator
51
51
  end
52
52
  layout = config['layout'] || 'translated'
53
53
  version = config['version'] || GptTranslate::VERSION
54
- threshold = config['threshold'] || 1_000_000_000
54
+ threshold = config['threshold'] || 1024
55
55
  start = Time.now
56
56
  total = 0
57
- site.posts.docs.each do |doc|
57
+ model = config['model'] || 'gpt-3.5-turbo'
58
+ marker = "Translated by ChatGPT #{model}/#{version}"
59
+ site.posts.docs.shuffle.each do |doc|
58
60
  plain = GptTranslate::Plain.new(doc.content).to_s
59
61
  config['targets'].each do |target|
60
62
  link = GptTranslate::Permalink.new(doc, target['permalink']).to_path
61
- next if GptTranslate::Ping.new(site, link).found?(doc.path)
63
+ next if GptTranslate::Ping.new(site, link).found?(doc.path, version)
62
64
  lang = target['language']
63
65
  raise 'Language must be defined for each target' if target.nil?
64
- model = config['model'] || 'gpt-3.5-turbo'
65
66
  if total >= threshold
66
67
  Jekyll.logger.info("Already generated #{total} pages, that's enough for today")
67
68
  break
@@ -88,7 +89,7 @@ class GptTranslate::Generator < Jekyll::Generator
88
89
  '',
89
90
  translated,
90
91
  '',
91
- "Translated by ChatGPT #{model}/#{version}\n{: .jekyll-chatgpt-translate}"
92
+ "#{marker}\n{: .jekyll-chatgpt-translate}"
92
93
  ].join("\n")
93
94
  )
94
95
  doc.data["translated-#{lang}-url"] = link
@@ -25,6 +25,7 @@
25
25
  require 'iri'
26
26
  require 'net/http'
27
27
  require 'uri'
28
+ require 'fileutils'
28
29
  require_relative 'version'
29
30
 
30
31
  # see https://stackoverflow.com/a/6048451/187141
@@ -46,17 +47,17 @@ class GptTranslate::Ping
46
47
  @path = path
47
48
  end
48
49
 
49
- def found?(file)
50
+ def found?(file, marker)
50
51
  home = @site.config['url']
51
52
  return false if home.nil?
52
53
  uri = Iri.new(home).path(@path)
53
54
  before = Net::HTTP.get_response(URI(uri.to_s))
54
55
  if before.is_a?(Net::HTTPSuccess)
55
56
  html = before.body
56
- if html.include?("/#{GptTranslate::VERSION}")
57
+ if html.include?(marker)
57
58
  Jekyll.logger.info("No need to translate, the page exists at \
58
59
  #{uri} (#{html.split.count} words), saved to #{file}")
59
- File.mkdir_p(File.dirname(file))
60
+ FileUtils.mkdir_p(File.dirname(file))
60
61
  File.write(file, html)
61
62
  return true
62
63
  end
@@ -23,5 +23,5 @@
23
23
  # SOFTWARE.
24
24
 
25
25
  module GptTranslate
26
- VERSION = '0.0.11'
26
+ VERSION = '0.0.12'
27
27
  end
data/test/test_ping.rb CHANGED
@@ -46,7 +46,7 @@ class GptTranslate::PingTest < Minitest::Test
46
46
  site = FakeSite.new({ 'url' => 'https://www.yegor256.com/' })
47
47
  ping = GptTranslate::Ping.new(site, '/about-me.html')
48
48
  Tempfile.open do |f|
49
- assert(!ping.found?(f))
49
+ assert(ping.found?(f, ''))
50
50
  end
51
51
  end
52
52
 
@@ -55,7 +55,7 @@ class GptTranslate::PingTest < Minitest::Test
55
55
  site = FakeSite.new({ 'url' => 'https://www.yegor256.com/' })
56
56
  ping = GptTranslate::Ping.new(site, '/absent.html')
57
57
  Tempfile.open do |f|
58
- assert(!ping.found?(f))
58
+ assert(!ping.found?(f, ''))
59
59
  end
60
60
  end
61
61
 
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.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko