diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml
index 69613894..a19b026e 100644
--- a/.devcontainer/docker-compose.yml
+++ b/.devcontainer/docker-compose.yml
@@ -100,7 +100,6 @@ services:
tor:
image: dockurr/tor
- container_name: tor
volumes:
- devcontainer-redux-tor-config:/etc/tor
- devcontainer-redux-tor-data:/var/lib/tor
diff --git a/app/jobs/job/fa_post_fur_archiver_post_file_job.rb b/app/jobs/job/fa_post_fur_archiver_post_file_job.rb
index 872a0c34..da52d681 100644
--- a/app/jobs/job/fa_post_fur_archiver_post_file_job.rb
+++ b/app/jobs/job/fa_post_fur_archiver_post_file_job.rb
@@ -13,7 +13,13 @@ class Job::FaPostFurArchiverPostFileJob < Scraper::JobBase
sig { override.params(args: T::Hash[Symbol, T.untyped]).returns(T.untyped) }
def perform(args)
- post = T.cast(args[:post], Domain::Post::FaPost)
+ post = T.cast(args[:post], T.nilable(Domain::Post::FaPost))
+ if post.nil?
+ post_file = T.cast(args[:post_file], T.nilable(Domain::PostFile))
+ fatal_error("no post or post file found, skipping") if post_file.nil?
+ post = T.cast(post_file.post, T.nilable(Domain::Post::FaPost))
+ fatal_error("no post found, skipping") if post.nil?
+ end
# todo - try multiple post files?
post_file =
diff --git a/app/models/domain/post/fa_post.rb b/app/models/domain/post/fa_post.rb
index d4f101ea..58bc46b7 100644
--- a/app/models/domain/post/fa_post.rb
+++ b/app/models/domain/post/fa_post.rb
@@ -205,4 +205,21 @@ class Domain::Post::FaPost < Domain::Post
def tags_for_view
keywords.map { |value| TagForView.new(category: :general, value:) }
end
+
+ sig { returns(T.nilable(Domain::PostFile)) }
+ def fur_archiver_post_file
+ files.to_a.find do |file|
+ uri = Addressable::URI.parse(file.url_str)
+ uri.host == "furarchiver.net"
+ end
+ end
+
+ sig { returns(T.nilable(Domain::PostFile)) }
+ def tor_post_file
+ files.to_a.find do |file|
+ uri = Addressable::URI.parse(file.url_str)
+ uri.host ==
+ "g6jy5jkx466lrqojcngbnksugrcfxsl562bzuikrka5rv7srgguqbjid.onion"
+ end
+ end
end
diff --git a/app/views/domain/posts/fa/_section_title_details.html.erb b/app/views/domain/posts/fa/_section_title_details.html.erb
index f602ed28..332044bc 100644
--- a/app/views/domain/posts/fa/_section_title_details.html.erb
+++ b/app/views/domain/posts/fa/_section_title_details.html.erb
@@ -9,10 +9,16 @@
<%= link_to "FuzzySearch", log_entry_path(hle), title: post.fuzzysearch_checked_at&.strftime("%Y-%m-%d %H:%M:%S"), class: "text-blue-600" %>
<% end %>
- <% if post.tried_from_fur_archiver? %>
+ <% if (hle = post.fur_archiver_post_file&.log_entry) %>
- FurArchiver
+ <%= link_to "FurArchiver", log_entry_path(hle), title: hle.requested_at&.strftime("%Y-%m-%d %H:%M:%S"), class: "text-blue-600" %>
+
+ <% end %>
+ <% if (hle = post.tor_post_file&.log_entry) %>
+
+
+ <%= link_to "Tor", log_entry_path(hle), title: hle.requested_at&.strftime("%Y-%m-%d %H:%M:%S"), class: "text-blue-600" %>
<% end %>
<% end %>
diff --git a/spec/jobs/fa_post_fur_archiver_post_file_job_spec.rb b/spec/jobs/fa_post_fur_archiver_post_file_job_spec.rb
index 0b50643d..65378553 100644
--- a/spec/jobs/fa_post_fur_archiver_post_file_job_spec.rb
+++ b/spec/jobs/fa_post_fur_archiver_post_file_job_spec.rb
@@ -173,6 +173,14 @@ RSpec.describe Job::FaPostFurArchiverPostFileJob do
post.reload
expect(post.files.length).to eq(3)
end
+
+ it "enqueues the thumbnail job" do
+ perform_now({ post: post })
+ job_args = SpecUtil.enqueued_job_args(Domain::PostFileThumbnailJob)
+ expect(job_args).to eq(
+ [{ post_file: post.files.last, caused_by_entry: @log_entries[0] }],
+ )
+ end
end
end
end