forki 0.2.17 → 0.2.19
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/lib/forki/scrapers/post_scraper.rb +12 -2
- data/lib/forki/scrapers/scraper.rb +12 -0
- data/lib/forki/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9de2b16665e9356cb059158f456a1bb07a46bd8f68e1ac44c668161ee887174
|
4
|
+
data.tar.gz: c2ca1d21fe125467d4616285b928587063f571e6238c938a36c8ff3c6208c294
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f4a6bd3f538e04a6b589893212818e1b1667c8c609d56bdd23a28a030022b68789561aca464af68f50bd9da996052cc51bedafefbc3a7a4cb162b17c3387be6
|
7
|
+
data.tar.gz: 5abcbf0d6883bb29469f9d9d2a29c39c6c19871e049eb6aaeb42a5ffa7d214e65cc2c9ea280cf8efe92c74e53833764716078ff42405dc881987fcffcba656f8
|
@@ -64,7 +64,17 @@ module Forki
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def check_if_post_is_video(graphql_objects)
|
67
|
-
graphql_objects.any?
|
67
|
+
result = graphql_objects.any? do |graphql_object|
|
68
|
+
next unless graphql_object.dig("viewer", "news_feed").nil?
|
69
|
+
|
70
|
+
result = graphql_object.to_s.include?("videoDeliveryLegacyFields")
|
71
|
+
result = graphql_object.key?("is_live_streaming") && graphql_object["is_live_streaming"] == true if result == false
|
72
|
+
result = graphql_object.key?("video") if result == false
|
73
|
+
result = check_if_post_is_reel(graphql_object) if result == false
|
74
|
+
result
|
75
|
+
end
|
76
|
+
|
77
|
+
result
|
68
78
|
end
|
69
79
|
|
70
80
|
def check_if_post_is_reel(graphql_object)
|
@@ -299,7 +309,7 @@ module Forki
|
|
299
309
|
|
300
310
|
share_count_object = feedback_object.fetch("share_count", {})
|
301
311
|
|
302
|
-
if story_node_object["comet_sections"]["content"]["story"]["comet_sections"].key? "message"
|
312
|
+
if story_node_object["comet_sections"]["content"]["story"]["comet_sections"].key?("message") && !story_node_object["comet_sections"]["content"]["story"]["comet_sections"]["message"].nil?
|
303
313
|
text = story_node_object["comet_sections"]["content"]["story"]["comet_sections"]["message"]["story"]["message"]["text"]
|
304
314
|
else
|
305
315
|
text = ""
|
@@ -189,6 +189,18 @@ module Forki
|
|
189
189
|
url = parsed_url.to_s
|
190
190
|
end
|
191
191
|
|
192
|
+
# If the url is a shared embed, the main url should be extracted
|
193
|
+
if url.start_with?("https://www.facebook.com/plugins/post.php")
|
194
|
+
query = URI(url).query
|
195
|
+
raise Forki::InvalidUrlError.new("Invalid Facebook post embed url") if query.nil?
|
196
|
+
decoded_query = URI.decode_www_form(query)
|
197
|
+
elemental_url = decoded_query.find { |u| u[0] == "href" if u.is_a?(Array) }
|
198
|
+
raise Forki::InvalidUrlError.new("Invalid Facebook post embed url") if elemental_url.nil?
|
199
|
+
href = elemental_url[1] if elemental_url.is_a?(Array)
|
200
|
+
raise Forki::InvalidUrlError.new("Invalid Facebook post embed url") if href.nil?
|
201
|
+
url = href
|
202
|
+
end
|
203
|
+
|
192
204
|
visit "https://www.facebook.com"
|
193
205
|
login
|
194
206
|
|
data/lib/forki/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-11-
|
11
|
+
date: 2024-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|