42 Commits

Author SHA1 Message Date
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
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
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
e30e20b033 tests for bsky posts 2025-08-08 00:40:28 +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
24a59d50f2 telegram bot logs, first pass 2025-08-05 05:05:21 +00:00
Dylan Knutson
211d5eb62c fuzzysearch enqueue job 2025-07-24 21:45:21 +00:00
Dylan Knutson
537821a1a9 remove BlobEntry model 2025-07-21 19:30:44 +00:00
Dylan Knutson
c37e3c1024 refactor to put fav_id on FaUserPostFav 2025-07-11 03:34:39 +00:00
Dylan Knutson
0e262f99b9 add tests for expression 2025-07-10 22:19:34 +00:00
Dylan Knutson
66d1e06b4b sofurry user/gallery/post scanning 2025-07-01 19:16:44 +00:00
Dylan Knutson
b3c33958e6 show keywords on ib posts 2025-06-27 22:51:17 +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
55f806c5b4 factor out resizing logic 2025-03-09 22:40:37 +00:00
Dylan Knutson
a209c64149 create multiple fingerprints wip 2025-03-09 20:33:49 +00:00
Dylan Knutson
99809041a5 more fingerprint 2025-03-05 19:40:33 +00:00
Dylan Knutson
0040bc45a2 firt tests forpost file thumbnail spec 2025-03-03 23:28:05 +00:00
Dylan Knutson
4ec27ab968 tests for ip address role policy 2025-03-03 16:44:21 +00:00
Dylan Knutson
a296688123 move entirely to BlobFile 2025-02-25 19:59:41 +00:00
Dylan Knutson
fc0fbfc46e partial migration to tagged logs 2025-02-14 08:13:21 +00:00
Dylan Knutson
54a8cd2fff migrate inkbunny jobs to unified domain models 2025-02-12 19:26:02 +00:00
Dylan Knutson
8fc32e64e9 migrate e621 jobs to unified domain models 2025-02-12 18:35:40 +00:00
Dylan Knutson
dadd235204 fixes for migration script 2025-02-06 18:41:14 +00:00
Dylan Knutson
e028e905d3 split up migration to domain spec 2025-02-05 17:49:45 +00:00
Dylan Knutson
0f657d0b59 migrate inkbunny to domain script 2025-02-05 17:13:00 +00:00
Dylan Knutson
ea20ece8e2 migration script 2025-02-05 03:46:16 +00:00
Dylan Knutson
b62f7094f4 basic indexes fixed, migration script 2025-02-04 19:41:30 +00:00
Dylan Knutson
e71cb9bdb2 migrate fa posts to json_attributes 2025-02-02 03:43:19 +00:00
Dylan Knutson
7578b85e4b e621 fav jobs 2025-01-28 23:28:35 +00:00
Dylan Knutson
258be5583d Enhance Inkbunny job processing and database schema
- Added support for pool-specific API searches in `ApiSearchPageProcessor` by introducing `pool_id` as a parameter.
- Created a new `UpdatePoolJob` class to handle deep updates for pools, including enqueuing jobs for posts needing updates.
- Updated `UpdatePostsJob` to manage missing posts and pools more effectively, ensuring proper job enqueuing.
- Modified the `Domain::Inkbunny::Pool` model to include a reference to `deep_update_log_entry` for tracking updates.
- Updated database schema to add `deep_update_log_entry_id` to the `domain_inkbunny_pools` table.
- Added tests for the new job functionality and ensured correct processing of API responses.

These changes improve the maintainability and robustness of the Inkbunny job processing system.
2025-01-05 20:15:17 +00:00
Dylan Knutson
f079fc0f98 add typed where possible 2025-01-01 03:29:53 +00:00
Dylan Knutson
c7e7bceb74 Refactor and enhance tests for Domain::Fa and Domain::E621
- Updated factories for Domain::Fa::User and Domain::E621::Post to improve test data creation.
- Refactored job specs for Domain::E621 to streamline HTTP client mocking and improve clarity.
- Enhanced tests for Domain::Fa::HomePageJob to ensure proper job enqueuing and user interactions.
- Removed obsolete test files related to Domain::Fa::PostEnqueuer and Domain::Fa::UserEnqueuer to clean up the test suite.
- Improved validation tests for Domain::Fa::Post and Domain::Fa::User models to ensure robustness.
2024-12-30 20:51:40 +00:00
Dylan Knutson
52498b3cc2 Refactor tests and enhance functionality for Domain::Fa and Domain::E621
- Removed outdated tests for Domain::Fa::PostsController and Domain::Fa::UsersController.
- Added new tests for Domain::Fa::PostsController to verify successful responses for the show action.
- Introduced a new UsersController spec to test the show action for user retrieval.
- Created a factory for Domain::E621::Post to streamline test data creation.
- Added comprehensive tests for BlobFile model, ensuring correct functionality and file operations.
- Implemented tests for HttpLogEntryHeader and LogStoreSstEntry models to validate header scrubbing and version parsing.
- Deleted obsolete test files and directories to clean up the test suite.
2024-12-30 20:11:06 +00:00
Dylan Knutson
15c11b2b89 Update blob entry handling and enhance staging configuration
- Changed the staging server port from 3000 to 3001 in the Procfile for better port management.
- Introduced a new BlobEntry model to replace BlobEntryP, ensuring a more consistent data structure across the application.
- Updated various controllers and views to utilize the new BlobEntry model, enhancing data retrieval and rendering processes.
- Added a new BlobEntriesController to manage blob entries, including a show action for retrieving content based on SHA256.
- Enhanced the Rakefile to enqueue periodic jobs for updating posts, improving background processing capabilities.
- Updated routes to reflect the new BlobEntry model and ensure proper resource handling.
- Improved tests for blob entry functionality, ensuring robust coverage and reliability in data handling.
2024-12-30 19:35:27 +00:00
Dylan Knutson
2681502c3e Add Inkbunny post management functionality
- Introduced a new model for managing Inkbunny posts, including creation, updating, and retrieval of post data.
- Implemented a job system for handling updates to posts and files, ensuring efficient processing of submissions.
- Enhanced the GlobalStatesController to manage Inkbunny credentials, allowing users to set either username/password or session ID.
- Updated routes to support Inkbunny post viewing and management, including parameterized routes for post IDs.
- Created policies to manage access to post details based on user roles, ensuring only authorized users can view sensitive information.
- Improved views for displaying Inkbunny posts, including enhanced layouts and user interaction elements.
- Added comprehensive tests for the new functionality, ensuring robust coverage for post management and credential handling.
2024-12-30 08:07:27 +00:00
Dylan Knutson
7bc3ed07ee Add Inkbunny credentials management functionality
- Introduced methods for managing Inkbunny cookies in the GlobalStatesController, including `ib_cookies`, `edit_ib_cookies`, and `update_ib_cookies`.
- Added a new policy for managing Inkbunny cookies, restricting access to admin users.
- Created views for displaying and editing Inkbunny credentials, enhancing user interaction.
- Updated routes to include paths for Inkbunny cookies management.
- Enhanced tests for the new functionality in the GlobalStatesController spec, ensuring proper handling of credentials.
2024-12-30 03:15:08 +00:00
Dylan Knutson
32173b50d8 global state model 2024-12-30 01:19:00 +00:00
Dylan Knutson
7e02771431 Add pundit-matchers gem and enhance indexed post handling
- Added `pundit-matchers` gem to improve policy testing capabilities.
- Updated `BlobsController` to support a new "tiny" size option for avatars.
- Enhanced `IndexablePostsHelper` with a `show_path` method for different postable types.
- Refactored `IndexedPost` model to include methods for retrieving artist information and external links.
- Modified `Domain::E621::Post` model to initialize `tags_array` as a hash.
- Updated views for indexed posts to support new display formats (gallery and table).
- Improved test coverage with new user factory and updated specs for controller and job behaviors.
2024-12-27 21:56:26 +00:00
Dylan Knutson
7e19e78073 Refactor user avatar handling and improve user status display
- Updated user avatar creation method to ensure avatar is always created or retrieved.
- Enhanced user status display in views with improved styling and additional information.
- Added missing commas in various places for better code consistency.
- Improved error handling in user avatar job for better logging and state management.
- Updated tests to reflect changes in avatar handling and user model methods.
2024-12-27 18:40:18 +00:00
Dylan Knutson
5c1807711b Add testing utilities and improve test coverage with FactoryBot integration
- Added `shoulda-matchers` for enhanced RSpec testing capabilities.
- Introduced `factory_bot_rails` for easier test data creation.
- Created factories for `HttpLogEntry`, `BlobEntry`, and `Domain::Fa::Post` models.
- Updated `rails_helper.rb` to include FactoryBot methods and configure Shoulda matchers.
- Enhanced `HttpLogEntry` model with a new `response_size` method.
- Refactored `justfile` to include parallel test execution.
- Improved `Gemfile` and `Gemfile.lock` with new testing gems.
2024-12-27 16:59:27 +00:00