Commit Graph

647 Commits

Author SHA1 Message Date
Dylan Knutson
3c83ed3ba7 fixes for bsky monitoring 2025-08-14 21:13:37 +00:00
Dylan Knutson
1058a53d18 montior hashtag impl 2025-08-14 20:48:19 +00:00
Dylan Knutson
5646e388be base structure for monitoring hashtags 2025-08-14 20:35:15 +00:00
Dylan Knutson
c1310c6dcc build vips from source 2025-08-14 19:54:34 +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
90d2cce076 Update task task-87 2025-08-14 18:58:14 +00:00
Dylan Knutson
db6f2ce92e Create task task-87 2025-08-14 18:56:58 +00:00
Dylan Knutson
ca937eb2bc process mp4 file thumbnailing 2025-08-14 18:16:14 +00:00
Dylan Knutson
981bea5016 Update task task-86 2025-08-14 18:14:28 +00:00
Dylan Knutson
66e97ba5c7 Update task task-86 2025-08-14 18:13:07 +00:00
Dylan Knutson
7d07a18a80 Create task task-86 2025-08-14 18:12:57 +00:00
Dylan Knutson
e9ac97be29 split out common bsky post creation logic into Bluesky::ProcessPostHelper 2025-08-14 17:55:17 +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
e1933104b3 Create task task-85 2025-08-14 16:04:46 +00:00
Dylan Knutson
419a1503f2 Update task task-84 2025-08-13 08:23:46 +00:00
Dylan Knutson
9a113fe2be Update task task-84 2025-08-13 08:23:44 +00:00
Dylan Knutson
c78dd401c7 Create task task-84 2025-08-13 08:23:39 +00:00
Dylan Knutson
b33a267a83 by descending post id 2025-08-13 08:20:32 +00:00
Dylan Knutson
6bb0b255fb touch user model after scanning posts 2025-08-12 23:15:19 +00:00
Dylan Knutson
1357eb9095 improve monitor 2025-08-12 23:05:41 +00:00
Dylan Knutson
dea2071662 better user list 2025-08-12 22:52:52 +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
171ddd430b misc fixes for bsky 2025-08-12 21:22:51 +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
d08c896d97 show reply / quotes for bsky posts 2025-08-12 18:31:17 +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
390f0939b0 video post downloading 2025-08-12 00:24:32 +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
ded26741a8 test: update FA job specs and add test fixtures
- Update FurAffinity favs job spec with improved test coverage
- Update user gallery job spec with enhanced testing
- Add new test fixtures for FA favorites and gallery parsing
- Add minimal test fixtures for better test performance
- Update .cursorrules with latest development guidelines
2025-08-10 19:57:04 +00:00
Dylan Knutson
eba4b58666 feat: implement Bluesky scan posts job and enhance user scanning
- Add new ScanPostsJob for scanning Bluesky posts
- Enhance ScanUserJob with improved error handling and logging
- Update BlueskyPost model with new fields and validation
- Add auxiliary tables for Bluesky posts
- Improve job base classes with better color logging
- Update specs with proper HTTP mocking patterns
- Add factory for BlueskyPost testing
2025-08-10 18:41:01 +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
5f5a54d68f Add Bluesky user scanning job and related infrastructure
- Add Domain::Bluesky::Job::ScanUserJob for processing user media
- Add Domain::Bluesky::Job::Base as parent class for Bluesky jobs
- Update BlueskyUser and BlueskyPostFile models with media handling
- Add migration for Bluesky media fields in post_files table
- Update StaticFileJob to handle Bluesky media downloads
- Add comprehensive test coverage for new functionality
- Update Sorbet RBI files for type checking
2025-08-08 05:07:07 +00:00
Dylan Knutson
e30e20b033 tests for bsky posts 2025-08-08 00:40:28 +00:00
Dylan Knutson
608044e8fb bsky rkey based post tracking 2025-08-07 09:01:34 +00:00
Dylan Knutson
9efeedd1ff basic bluesky monitoring infra 2025-08-05 20:51:40 +00:00
Dylan Knutson
3512c3f32e skyfall gem, rework migrations 2025-08-05 19:21:38 +00:00
Dylan Knutson
e9f3b0e822 bluesky initial impl 2025-08-05 18:53:14 +00:00
Dylan Knutson
6b8fce7ddc do not normalize urls 2025-08-05 18:52:50 +00:00
Dylan Knutson
65b0c519aa Create task task-83 2025-08-05 16:13:12 +00:00
Dylan Knutson
e9601c4719 Update task task-4 2025-08-05 07:13:54 +00:00
Dylan Knutson
ceadf699e8 Update task task-4 2025-08-05 06:58:31 +00:00
Dylan Knutson
51bcfd246f Update task task-4 2025-08-05 06:55:17 +00:00
Dylan Knutson
fe2f6e8b90 Add telegram bot configuration views and policy methods
- Add telegram_config.html.erb view to display current bot token (masked)
- Add edit_telegram_config.html.erb view for editing configuration
- Update index.html.erb to include 'Manage Telegram Config' navigation
- Add missing edit_telegram_config? and update_telegram_config? policy methods

All views follow established patterns from FA/IB cookie management.
Tests pass: 1011 examples, 0 failures.
2025-08-05 06:44:25 +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