forki 0.2.18 → 0.2.20
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 +4 -3
- 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: d755cbc7e99c4a78990bb64b2e0273097c89f5e44996ab145d067c7cbac42774
|
4
|
+
data.tar.gz: 8e46f452d33a3bdb07effa5c97b3abc501f9f0c82eb56a8adbb36bcd8232ec73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2367fb4e52e8edadc638fc8fae90438c06da1ec33c6d08b0fb1ec5a5dfa026e8f2d4ff197629af270b33bf89eecc9c89cbbf321a344e91fb951448107148caf
|
7
|
+
data.tar.gz: dc60ccc7667e23858a664fbf62231eeee8fdc8ad72dc26bdc7cfa25eb2f7d6daea547964362e43ec88c336af0c0617d0e5210143c694b05bd6a59556ed4a85e5
|
@@ -64,8 +64,9 @@ module Forki
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def check_if_post_is_video(graphql_objects)
|
67
|
-
result = graphql_objects.
|
68
|
-
next unless graphql_object.dig("viewer", "news_feed").nil?
|
67
|
+
result = graphql_objects.find do |graphql_object|
|
68
|
+
next unless graphql_object.dig("viewer", "news_feed").nil? # The new page loads the news feed *and* the post
|
69
|
+
next unless graphql_object.dig("node", "sponsored_data").nil? # Ads sneak in too but don't mark as feed
|
69
70
|
|
70
71
|
result = graphql_object.to_s.include?("videoDeliveryLegacyFields")
|
71
72
|
result = graphql_object.key?("is_live_streaming") && graphql_object["is_live_streaming"] == true if result == false
|
@@ -74,7 +75,7 @@ module Forki
|
|
74
75
|
result
|
75
76
|
end
|
76
77
|
|
77
|
-
result
|
78
|
+
!result.nil?
|
78
79
|
end
|
79
80
|
|
80
81
|
def check_if_post_is_reel(graphql_object)
|
@@ -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.20
|
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-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|