ZMediumToMarkdown 2.5.1 → 2.5.2
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 +3 -4
- data/lib/Request.rb +25 -5
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71e19d6c888e760923f2bf919d3fc34b29bd30835cc5c563da057369108b18a2
|
4
|
+
data.tar.gz: '03862c8cf6f9dc3b894470f918b0247bb8457f0bebe7299da4cceea0816bc17c'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4290ca60752a6033ee16dd75c8c537b0cd4030c89d3765d92ca596dfae87c69da6a780f3608eea8cfa62a3897374f77141b3f83243b44860acbe5736247d46d2
|
7
|
+
data.tar.gz: 39e4d1d11db6cd81a309e476f7bc63024cc2d32401fb4ef1649fb68989c6f45759dd1214d2a6040fd0694e53fed905edc554bc5e16d8b6769b5ef8a3dc30347c
|
data/bin/ZMediumToMarkdown
CHANGED
@@ -8,8 +8,7 @@ require "ZMediumFetcher"
|
|
8
8
|
require "Helper"
|
9
9
|
require "optparse"
|
10
10
|
|
11
|
-
$
|
12
|
-
$cookie_uid = nil
|
11
|
+
$cookies = {}
|
13
12
|
|
14
13
|
class Main
|
15
14
|
def initialize
|
@@ -23,11 +22,11 @@ class Main
|
|
23
22
|
opts.banner = "Usage: ZMediumFetcher [options]"
|
24
23
|
|
25
24
|
opts.on('-s', '--cookie_sid COOKIESID', 'Your logged-in Medium cookie sid value') do |cookie_sid|
|
26
|
-
$
|
25
|
+
$cookies['sid'] = cookie_sid
|
27
26
|
end
|
28
27
|
|
29
28
|
opts.on('-d', '--cookie_uid COOKIEUID', 'Your logged-in Medium cookie uid value') do |cookie_uid|
|
30
|
-
$
|
29
|
+
$cookies['uid'] = cookie_uid
|
31
30
|
end
|
32
31
|
|
33
32
|
opts.on('-u', '--username USERNAME', 'Downloading all posts from user') do |username|
|
data/lib/Request.rb
CHANGED
@@ -22,18 +22,38 @@ class Request
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
cookiesString = $cookies.reject { |_, value| value.nil? }
|
26
|
+
.map { |key, value| "#{key}=#{value}" }
|
27
|
+
.join("; ");
|
28
|
+
|
29
|
+
if !cookiesString.nil? && cookiesString != ""
|
30
|
+
request['Cookie'] = cookiesString;
|
27
31
|
end
|
28
32
|
|
29
33
|
response = https.request(request);
|
30
|
-
|
34
|
+
|
35
|
+
setCookieString = response.get_fields('set-cookie');
|
36
|
+
if !setCookieString.nil? && setCookieString != ""
|
37
|
+
setCookies = setCookieString.map { |cookie| cookie.split('; ').first }.each_with_object({}) do |cookie, hash|
|
38
|
+
key, value = cookie.split('=', 2) # Split by '=' into key and value
|
39
|
+
hash[key] = value
|
40
|
+
end;
|
41
|
+
|
42
|
+
setCookies.each do |key, value|
|
43
|
+
$cookies[key] = value
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
31
47
|
# 3XX Redirect
|
32
48
|
if response.code.to_i == 429
|
33
|
-
|
49
|
+
if retryCount >= 10
|
50
|
+
raise "Error: Too Manay Reqeust, blocked by Medium. URL: #{url}";
|
51
|
+
else
|
52
|
+
response = self.URL(url, method, data, retryCount);
|
53
|
+
end
|
34
54
|
elsif response.code.to_i >= 300 && response.code.to_i <= 399 && !response['location'].nil? && response['location'] != ''
|
35
55
|
if retryCount >= 10
|
36
|
-
raise "Error: Retry limit reached.
|
56
|
+
raise "Error: Retry limit reached. URL: #{url}"
|
37
57
|
else
|
38
58
|
location = response['location']
|
39
59
|
if !location.match? /^(http)/
|