127 Commits

Author SHA1 Message Date
Dylan Knutson
a8f258d5ef fix frozen string bug, add bsky username prefix to searched names 2025-08-17 19:08:44 +00:00
Dylan Knutson
15ea73a350 fix bsky user profile link sanitizer 2025-08-17 18:51:55 +00:00
Dylan Knutson
73f6f77596 Add comprehensive Bluesky tests to posts_helper_spec
- Add extensive test coverage for Bluesky user profile URL matching
- Test handle-based and DID-based profile URLs with various formats
- Add edge cases and error condition tests for malformed URLs
- Test user avatar icon path and model path generation
- Verify fallback behavior for users without display names
- Test priority logic for handle vs DID lookup
- Add tests for special characters and very long handles
- All 82 tests now pass successfully
2025-08-17 00:10:31 +00:00
Dylan Knutson
62f14d10d4 visual search fixes 2025-08-14 19:29:28 +00:00
Dylan Knutson
2a8d631b29 split common visual search logic out 2025-08-14 19:11:13 +00:00
Dylan Knutson
cfffe50541 add monitor scanned at to bsky monitor 2025-08-14 17:16:21 +00:00
Dylan Knutson
1d248c1f23 user follows/followed by scans for bluesky 2025-08-14 17:03:50 +00:00
Dylan Knutson
b33a267a83 by descending post id 2025-08-13 08:20:32 +00:00
Dylan Knutson
6df6f63060 bsky user registerd at scanning 2025-08-12 22:27:22 +00:00
Dylan Knutson
420a44a27d bsky page scanning auditing 2025-08-12 21:56:05 +00:00
Dylan Knutson
2de7f85a99 bsky descriptions with newlines 2025-08-12 21:33:40 +00:00
Dylan Knutson
ad0675a9aa Add Bluesky post helper with facet rendering and external link support
- Add BlueskyPostHelper for rendering Bluesky post facets (mentions, links, hashtags)
- Implement facet parsing and rendering with proper styling
- Add external link partial for non-Bluesky URLs
- Update DisplayedFile and PostFiles components to handle Bluesky posts
- Add comprehensive test coverage for helper methods
- Update scan user job to handle Bluesky-specific data
2025-08-12 20:43:08 +00:00
Dylan Knutson
127dd9be51 Add Bluesky file display components and utilities
- Add SkySection component for displaying Bluesky-specific file information
- Add byteCountToHumanSize utility for formatting file sizes
- Update PostFiles, FileCarousel, FileDetails, and DisplayedFile components
- Enhance posts helper with file display logic
- Update post model and view templates
- Remove deprecated file details sky section partial
2025-08-12 18:14:13 +00:00
Dylan Knutson
40c6d44100 Convert ScanPostsJob tests to use SpecUtil.enqueued_job_args and add rescan tests
- Convert existing job mocking to use SpecUtil.enqueued_job_args helper
- Remove allow(Domain::StaticFileJob).to receive(:perform_later) mocking
- Add comprehensive test context for rescanning users with pending files
- Create domain_post_file_bluesky_post_file factory for test objects
- Add tests verifying enqueue_pending_files_job behavior during rescans
- Ensure only pending files get jobs enqueued, not already processed files
- Use force_scan: true to bypass scan frequency limits in tests
2025-08-10 20:49:26 +00:00
Dylan Knutson
5c71fc6b15 Add avatar downloading to Bluesky scan user job
- Modified process_user_avatar method to enqueue Domain::UserAvatarJob for avatar downloads
- Made Domain::UserAvatarJob concrete (removed abstract!) with generic HTTP client
- Added smart avatar management: handles new avatars, URL changes, and pending re-enqueues
- Added comprehensive test coverage for all avatar scenarios
- Updated HTTP mocking in specs to use HttpClientMockHelpers pattern
- Fixed caused_by_entry handling for chained HTTP requests
- Updated .cursorrules with proper HTTP mocking documentation including caused_by_entry: :any

The job now automatically downloads user avatars when scanning Bluesky users.
2025-08-09 01:23:16 +00:00
Dylan Knutson
f2f8a9c34a Refactor PostFiles component to use URL parameters and simplify implementation
- Change from hash fragments (#file=2) to URL parameters (?idx=2) for server-side prerendering support
- Simplify React component by removing complex client-side hydration logic
- Remove unnecessary props: totalFiles, hasMultipleFiles (derive from files.length)
- Remove redundant useCallback and popstate handlers
- Update Rails helper to read URL parameter and pass correct initialSelectedIndex
- Maintain all functionality: carousel, keyboard navigation, URL state management
2025-08-09 00:59:26 +00:00
Dylan Knutson
36ceae80fe Refactor file carousel into React component hierarchy
- Create PostFiles top-level component managing file display state
- Add FileCarousel component for thumbnail navigation
- Add DisplayedFile component for content rendering
- Add FileDetails component for metadata display
- Update props_for_post_files helper to generate HTML content server-side
- Replace HTML/JS carousel with prerendered React components
- Maintain single file layout compatibility
- Add proper TypeScript interfaces and error handling
- Register components in application and server bundles

Components now handle:
- Multiple file carousel display above content
- File content switching via React state
- Server-side rendered HTML injection
- File details metadata display
- Responsive thumbnail grid with selection states
2025-08-09 00:31:07 +00:00
Dylan Knutson
e30e20b033 tests for bsky posts 2025-08-08 00:40:28 +00:00
Dylan Knutson
e9f3b0e822 bluesky initial impl 2025-08-05 18:53:14 +00:00
Dylan Knutson
e78baa6594 Refactor Telegram bot logs with performance enhancements and view improvements
- Add comprehensive file information display (content type, size, dimensions)
- Move complex image dimension logic from views to TelegramBotLogsHelper
- Add percentage calculations to performance metrics section
- Use Rails associations instead of manual BlobFile lookups
- Update slow requests filtering to use total_request_time column
- Enhance search result thumbnails and improve post linking
- Add comprehensive test coverage for helper methods
- Improve error handling and type safety throughout
2025-08-05 06:30:42 +00:00
Dylan Knutson
ff18b5f75c Refactor TelegramBotLog status handling and add helper
- Remove no_results status enum value, treat zero results as successful searches
- Add processing status for initial log creation
- Create TelegramBotLogsHelper#status_color_class to eliminate view duplication
- Refactor TelegramBotTask to use Stopwatch class for timing measurements
- Add total_request_time column to track end-to-end request duration
- Update factories, tests, and views to support new status model
- Add comprehensive helper tests and maintain full test coverage
2025-08-05 05:22:50 +00:00
Dylan Knutson
7aaf471f09 linktree/trello/aethy domain links 2025-07-30 21:22:41 +00:00
Dylan Knutson
335c1a3c6d time taken to do search, increase ivfflat probes 2025-07-30 19:51:39 +00:00
Dylan Knutson
1bab697a43 visual search form react component 2025-07-30 17:26:54 +00:00
Dylan Knutson
c43d1ca197 migrate ib posts to aux table 2025-07-27 17:54:29 +00:00
Dylan Knutson
56ed78faaf show pending messages on posts 2025-07-25 19:15:58 +00:00
Dylan Knutson
5aeee4fe14 detect hle links in log lines 2025-07-25 04:36:10 +00:00
Dylan Knutson
dffdef51cd backup tor archive scraping 2025-07-25 00:25:12 +00:00
Dylan Knutson
211d5eb62c fuzzysearch enqueue job 2025-07-24 21:45:21 +00:00
Dylan Knutson
af4d84ccb1 parse posted_at from fa static file url 2025-07-24 17:17:42 +00:00
Dylan Knutson
fb436e1b75 remove domain icons on user pages 2025-07-23 07:24:27 +00:00
Dylan Knutson
572c61cebb add proxies 2025-07-23 04:51:44 +00:00
Dylan Knutson
f63d8cabe7 more dense post index pages 2025-07-23 02:34:36 +00:00
Dylan Knutson
1470a21bbe improve similar post lists, fallback creator models 2025-07-23 02:09:45 +00:00
Dylan Knutson
d925a4b682 Domain::Users::FaUser aux table migration 2025-07-21 17:17:35 +00:00
Dylan Knutson
ca7315c8ae Domain::Users::InkbunnyUser aux table migration 2025-07-18 19:50:52 +00:00
Dylan Knutson
13ad697026 improvements for ordering favs 2025-07-12 08:53:49 +00:00
Dylan Knutson
5a9efa798d more sofurry fixes 2025-07-01 21:02:23 +00:00
Dylan Knutson
306c174a01 sofurry html fixes 2025-07-01 19:56:47 +00:00
Dylan Knutson
ca5649a28f initial sofurry impl 2025-06-28 18:46:45 +00:00
Dylan Knutson
b3c33958e6 show keywords on ib posts 2025-06-27 22:51:17 +00:00
Dylan Knutson
3b6ff33ec7 fix pools route helper 2025-06-27 22:42:26 +00:00
Dylan Knutson
609a4d1fd1 button to enqueue jobs 2025-06-27 21:55:48 +00:00
Dylan Knutson
5ebd924780 favs scans backfill job 2025-06-27 21:37:02 +00:00
Dylan Knutson
70c65ffdbd remove legacy Domain::{Fa,InkBunny,E621} model usage 2025-06-24 17:51:59 +00:00
Dylan Knutson
5cb24a8065 better UI for document gallery items 2025-06-24 16:15:48 +00:00
Dylan Knutson
5a771fa130 use fallback for counter caches 2025-06-23 06:13:10 +00:00
Dylan Knutson
c527a05705 fix visual similarity query, visually similar on post show page 2025-06-20 05:50:42 +00:00
Dylan Knutson
9d2bde629a detect encoding for plain text files 2025-06-19 16:07:26 +00:00
Dylan Knutson
94533b6e45 FA submission pages no longer have gender field 2025-06-18 15:53:53 +00:00