ZMediumToMarkdown 2.4.7 → 2.4.9
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 +4 -4
- data/bin/ZMediumToMarkdown +0 -10
- data/lib/Helper.rb +1 -1
- data/lib/ZMediumFetcher.rb +0 -21
- metadata +2 -23
- data/lib/OpenAITranslator.rb +0 -27
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 96dbba590eb72c7cad419081c8e4f0e3e133e8184b1d7b9cf5892be41603acf8
|
|
4
|
+
data.tar.gz: 68b84e4caccdb71ea1d2e5fba95d18a727effed1a28bed70e2ccd7e106c49a9e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 216cf9a121d2411b4b52af7aa5efd0ea2d2a0ad88c6b2ec14875c1b459d74a4c13fed4cfad58362132a7dba0f436fb7deacba642cc3e41eebf9e0cf6412c893d
|
|
7
|
+
data.tar.gz: d003a0938e6b40e3a57527f0678e0a2f2c39708d95de5cd7b4b7f0b8a9f1ab7e6ddb80812e1db57120c60794346ece9b8a0eceb7b467351a2a2dda289f889870
|
data/bin/ZMediumToMarkdown
CHANGED
|
@@ -10,8 +10,6 @@ require "optparse"
|
|
|
10
10
|
|
|
11
11
|
$cookie_sid = nil
|
|
12
12
|
$cookie_uid = nil
|
|
13
|
-
$open_ai_translator_model = nil
|
|
14
|
-
$open_ai_translator_token = nil
|
|
15
13
|
|
|
16
14
|
class Main
|
|
17
15
|
def initialize
|
|
@@ -59,14 +57,6 @@ class Main
|
|
|
59
57
|
opts.on('-v', '--version', 'Print current ZMediumToMarkdown Version & Output Path') do
|
|
60
58
|
options[:v] = true
|
|
61
59
|
end
|
|
62
|
-
|
|
63
|
-
opts.on('-m', '--open_ai_translator_model MODEL', 'Open AI Model e.g. gpt-4o') do |model|
|
|
64
|
-
$open_ai_translator_model = model
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
opts.on('-t', '--open_ai_translator_token TOKEN', 'Open AI API Token') do |token|
|
|
68
|
-
$open_ai_translator_token = token
|
|
69
|
-
end
|
|
70
60
|
end.parse!
|
|
71
61
|
|
|
72
62
|
#
|
data/lib/Helper.rb
CHANGED
|
@@ -113,7 +113,7 @@ class Helper
|
|
|
113
113
|
result += "author: \"#{postInfo.creator&.gsub("\"", "\\\"")}\"\n"
|
|
114
114
|
result += "date: #{postInfo.firstPublishedAt.strftime('%Y-%m-%dT%H:%M:%S.%L%z')}\n"
|
|
115
115
|
result += "last_modified_at: #{postInfo.latestPublishedAt.strftime('%Y-%m-%dT%H:%M:%S.%L%z')}\n"
|
|
116
|
-
result += "categories: \"#{postInfo.collectionName&.gsub("\"", "\\\"")}\"\n"
|
|
116
|
+
result += "categories: [\"#{postInfo.collectionName&.gsub("\"", "\\\"")}\"]\n"
|
|
117
117
|
result += "tags: [#{tags}]\n"
|
|
118
118
|
result += "description: \"#{postInfo.description&.gsub("\"", "\\\"")}\"\n"
|
|
119
119
|
if !postInfo.previewImage.nil?
|
data/lib/ZMediumFetcher.rb
CHANGED
|
@@ -21,7 +21,6 @@ require "Parsers/MIXTAPEEMBEDParser"
|
|
|
21
21
|
require "Parsers/PQParser"
|
|
22
22
|
require "Parsers/CodeBlockParser"
|
|
23
23
|
|
|
24
|
-
require "OpenAITranslator"
|
|
25
24
|
require "PathPolicy"
|
|
26
25
|
require "Request"
|
|
27
26
|
require "Post"
|
|
@@ -170,19 +169,9 @@ class ZMediumFetcher
|
|
|
170
169
|
oliIndex = 0
|
|
171
170
|
previousParagraph = nil
|
|
172
171
|
preTypeParagraphs = []
|
|
173
|
-
|
|
174
|
-
translator = nil
|
|
175
|
-
if !$open_ai_translator_token.nil? && $open_ai_translator_token != "" && !$open_ai_translator_model.nil? && $open_ai_translator_model != "" && File.exist?("./openAITranslatorPrompt.md")
|
|
176
|
-
prompt = File.read("./openAITranslatorPrompt.md")
|
|
177
|
-
if !prompt.nil? && prompt != ""
|
|
178
|
-
translator = OpenAITranslator.new($open_ai_translator_model, $open_ai_translator_token, prompt)
|
|
179
|
-
end
|
|
180
|
-
end
|
|
181
|
-
|
|
182
172
|
sourceParagraphs.each do |sourcParagraph|
|
|
183
173
|
return if (!sourcParagraph || !postID)
|
|
184
174
|
paragraph = Paragraph.new(sourcParagraph, postID)
|
|
185
|
-
|
|
186
175
|
if OLIParser.isOLI(paragraph)
|
|
187
176
|
oliIndex += 1
|
|
188
177
|
paragraph.oliIndex = oliIndex
|
|
@@ -301,16 +290,6 @@ class ZMediumFetcher
|
|
|
301
290
|
|
|
302
291
|
result = startParser.parse(paragraph)
|
|
303
292
|
|
|
304
|
-
if !translator.nil? && !paragraph.is_a?(IMGParser) && !result.nil? && result != ""
|
|
305
|
-
begin
|
|
306
|
-
result = translator.translate(result)
|
|
307
|
-
progress.message = "Translation Post..."
|
|
308
|
-
progress.printLog()
|
|
309
|
-
rescue => e
|
|
310
|
-
puts "Translator Error: #{e.message}"
|
|
311
|
-
end
|
|
312
|
-
end
|
|
313
|
-
|
|
314
293
|
file.puts(result)
|
|
315
294
|
|
|
316
295
|
index += 1
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ZMediumToMarkdown
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.4.
|
|
4
|
+
version: 2.4.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ZhgChgLi
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-01-
|
|
11
|
+
date: 2025-01-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: nokogiri
|
|
@@ -52,26 +52,6 @@ dependencies:
|
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: 2.3.2
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: ruby-openai
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '7.3'
|
|
62
|
-
- - ">="
|
|
63
|
-
- !ruby/object:Gem::Version
|
|
64
|
-
version: 7.3.1
|
|
65
|
-
type: :runtime
|
|
66
|
-
prerelease: false
|
|
67
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
68
|
-
requirements:
|
|
69
|
-
- - "~>"
|
|
70
|
-
- !ruby/object:Gem::Version
|
|
71
|
-
version: '7.3'
|
|
72
|
-
- - ">="
|
|
73
|
-
- !ruby/object:Gem::Version
|
|
74
|
-
version: 7.3.1
|
|
75
55
|
description: ZMediumToMarkdown lets you download Medium post and convert it to markdown
|
|
76
56
|
format easily.
|
|
77
57
|
email:
|
|
@@ -85,7 +65,6 @@ files:
|
|
|
85
65
|
- lib/Helper.rb
|
|
86
66
|
- lib/ImageDownloader.rb
|
|
87
67
|
- lib/Models/Paragraph.rb
|
|
88
|
-
- lib/OpenAITranslator.rb
|
|
89
68
|
- lib/Parsers/BQParser.rb
|
|
90
69
|
- lib/Parsers/CodeBlockParser.rb
|
|
91
70
|
- lib/Parsers/FallbackParser.rb
|
data/lib/OpenAITranslator.rb
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
require "openai"
|
|
2
|
-
|
|
3
|
-
class OpenAITranslator
|
|
4
|
-
attr_accessor :prompt, :model, :client
|
|
5
|
-
|
|
6
|
-
def initialize(model, token, prompt)
|
|
7
|
-
@client = OpenAI::Client.new(access_token: token)
|
|
8
|
-
@prompt = prompt
|
|
9
|
-
@model = model
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def translate(text)
|
|
13
|
-
response = client.chat(
|
|
14
|
-
parameters: {
|
|
15
|
-
model: model,
|
|
16
|
-
messages: [
|
|
17
|
-
{ role: "system", content: "You are a translation expert." },
|
|
18
|
-
{ role: "user", content: prompt },
|
|
19
|
-
{ role: "user", content: text}
|
|
20
|
-
],
|
|
21
|
-
temperature: 0.7,
|
|
22
|
-
}
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
response.dig("choices", 0, "message", "content")
|
|
26
|
-
end
|
|
27
|
-
end
|