Commit Graph
100 Commits
Author SHA1 Message Date
tcely 9ddc6194dd Rename patches/models.py to patches/background_task/models.py 2025-02-07 15:44:00 -05:00
tcely c48ec594c3 Unlock task immediately if the locked_by PID isn't running 2025-02-07 06:26:24 -05:00
tcely 104bac30ba Patch from within the repository 2025-02-06 23:05:58 -05:00
tcely 5dfe9ea4e9 Delete patches/.keep_dir 2025-02-06 23:02:58 -05:00
tcely 794bdf9293 Add patched models.py
From: https://github.com/tcely/django-background-tasks/raw/refs/heads/locked-logic-fix/background_task/models.py
2025-02-06 23:02:26 -05:00
tcely f04f3a5003 Create .keep_dir 2025-02-06 23:01:27 -05:00
tcely 8efc845228 Patch any python3 version 2025-02-05 22:57:33 -05:00
tcely 1530b6bee1 Patch the logic in locked() 2025-02-05 19:24:35 -05:00
tcely bc58e85a89 Let Tasks expire correctly 2025-02-05 16:26:58 -05:00
tcely 4ec407cf6f Bump ffmpeg 2025-02-04 13:39:46 -05:00
tcely 459cb4b891 Remove the td function
It is no longer being used for a default argument value.
2025-02-04 11:21:24 -05:00
tcely 0b233be517 Use a single datetime for now 2025-02-04 11:16:17 -05:00
tcely 3b58d86cd3 Remove code that didn't work
This method of changing `verbose_name` didn't result in any visible changes.
2025-02-04 11:05:18 -05:00
tcely 5cf7f1574a We don't need the extra run 2025-02-03 21:22:19 -05:00
tcely aba3b1f16d Display the datetime without partial seconds 2025-02-03 18:32:41 -05:00
tcely df5746dac4 Don't log the handled exception 2025-02-03 11:52:25 -05:00
tcely a8e7299dbe Log units and number within the try block 2025-02-03 11:44:02 -05:00
tcely bf0dcc631a Fixes from testing for wait_for_media_premiere 2025-02-03 11:33:56 -05:00
tcely b50477e536 Add minutes as a unit also 2025-02-03 10:22:38 -05:00
tcely 724e632814 Remove debug logging and cache 2025-02-03 09:22:29 -05:00
tcely 4a5660be8d Preserve the ordering
set made no guarantees about ordering
2025-02-03 09:16:26 -05:00
tcely bdfd645097 Add duplicated categories to the test data 2025-02-03 09:11:35 -05:00
tcely 79783b11db Test duplicated category is not saved 2025-02-03 08:53:34 -05:00
tcely d1f078cf0c Do not store duplicate categories 2025-02-03 08:12:09 -05:00
tcely c0f52ae12e We only need one waiting task per video 2025-02-03 00:09:59 -05:00
tcely b05d3854a1 Use repeat_until in the call 2025-02-02 23:58:09 -05:00
tcely bd67b9bb20 Apply the class to the category labels 2025-02-02 23:03:13 -05:00
tcely 4e12c2e7fb Revert a06bd29f88 2025-02-02 23:01:57 -05:00
tcely 3b001d1837 Turn off the text-transform with a class 2025-02-02 22:58:49 -05:00
tcely a028b4ea26 Let the wait task go ahead first 2025-02-02 14:09:53 -05:00
tcely 89573e93f5 Add verbose_name for better display
Also, some code readability changes.
2025-02-02 13:49:25 -05:00
tcely deeb2f61a9 background has less documentation than I wanted 2025-02-02 13:00:30 -05:00
tcely 9e46b9f6d5 A first attempt at waiting for future videos 2025-02-02 12:29:36 -05:00
tcely 480d5dd891 Add wait_for_media_premiere task 2025-02-02 11:38:32 -05:00
tcely 4a3572c175 Also check for media.media_file.name
I thought this commit was already merged, but git claimed this line wasn't.

I don't think it matters if the `media.media_file.name` is blank here.

I made this mostly for completeness.
2025-02-02 07:31:41 -05:00
tcely 12fc5e2842 Fix the misspelled expected_categories 2025-02-02 01:16:47 -05:00
tcely 9397ec7389 Add tests for sponsorblock_categories 2025-02-02 00:07:45 -05:00
tcely a06bd29f88 Do not uppercase the SponsorBlock categories
Avoid the `text-transform` on `label` by simply not using that tag.

Anyone who is better with CSS than I am, with an improved solution, is welcome to create a pull request.
2025-02-01 22:45:57 -05:00
tcely ae1042a3d0 Rework sponsorblock_categories and CommaSepChoiceField (#222)
This is a good checkpoint.

* Loading from the database and saving back to the database both work.

* The categories are displayed in the web user interface appropriately.

* Editing the `Source` from the web user interface is working.
2025-02-01 20:57:27 -05:00
tcely 3939616d31 export TUBESYNC_RESET_DOWNLOAD_DIR
We don't need to overcomplicate this.
`sh` and `bash` provide easy ways to set empty variables.
2025-02-01 19:54:49 -05:00
tcely da8aa06f27 Ensure MAX_RUN_TIME is sane
Try the user's value, but set it appropriately if that fails.

Background tasks will have a minimum of 10 minutes to finish.

Downloading tasks will, at a minimum, sleep up to 90 seconds between downloads.

Increasing the `MAX_RUN_TIME` will also increase the maximum amount of time to sleep between downloads.
2025-02-01 11:13:44 -05:00
tcely fefe1fbc4d Simply add the string we want
I must have been fixated on using `replace()`.
After already splitting the string, using the part we don't want seems silly.
2025-02-01 02:28:23 -05:00
tcely 07a82e6df3 Configure settings for this test
Otherwise, environment variables can cause the `unfiltered` and `filtered` responses to match.
This breaks the assumption that the asserts are depending upon.
2025-02-01 00:31:47 -05:00
tcely d1a76ac0d1 Adjust download delays
It turns out I was being wildly optimistic with my first guess at useful delays.
2025-01-31 09:14:09 -05:00
tcely 86c1a5fcde Remove duplicated settings and logic 2025-01-31 09:09:06 -05:00
tcely b66073dcd2 Add formulas to settings 2025-01-31 09:05:11 -05:00
tcely ec7c05d53f Update local_settings.py.container 2025-01-31 08:46:49 -05:00
tcely 2c9e70f8cd Update local_settings.py.container 2025-01-31 08:41:43 -05:00
tcely 60ee227caa Prefer display_id and fulltitle for logs 2025-01-30 21:22:10 -05:00
tcely 2b8fea103e Remove automatic_captions from debug log too 2025-01-30 20:57:32 -05:00
tcely cda3a485db Prettier logged messages 2025-01-30 20:51:22 -05:00
tcely 5dc3cc2564 Merge branch 'main' into patch-3 2025-01-30 20:21:39 -05:00
tcely 4a484d9814 Merge branch 'main' into patch-4 2025-01-30 20:15:27 -05:00
tcely 1705d48f1a common.logger imports logging first 2025-01-30 20:04:07 -05:00
tcely 5af916d335 Add log in the block that uses it 2025-01-30 19:50:56 -05:00
tcely 89c70ec782 Fix log.debug()
`common.logger` imports `settings`

Creating a circular dependency causes the failure to load this file from `tubesync/settings.py`.

Without the change to `DEBUG` from this file the log level is `INFO` instead of `DEBUG` so none of those messages were showing.
2025-01-30 19:45:26 -05:00
tcely 36814ddfcd fixup: quoting fun 2025-01-30 18:02:42 -05:00
tcely 0a39d96fc6 Add & use postprocessor_hook 2025-01-30 17:44:39 -05:00
tcely 005cd37fa7 Convert --sponsorblock-mark using yt-dlp
I shouldn't have tried this myself.

It's much more complicated than I originally thought.
2025-01-30 15:29:30 -05:00
tcely 1bbfed8e4d Don't embed spaces in keys 2025-01-30 14:40:03 -05:00
tcely 470dbf426e Parse the post processors strings already in use 2025-01-30 14:29:52 -05:00
tcely eb37df4e5b Merge branch 'main' into patch-5 2025-01-30 13:47:16 -05:00
tcely 8b102a3be6 Use strings for ytopts paths
The quick fixup works, this is simply cleaner.
2025-01-30 13:37:29 -05:00
tcely eaaa4365f6 Better handling of user specified post processors 2025-01-30 13:08:48 -05:00
tcely 583863cb7c Do not delete tasks that are currently running 2025-01-29 22:51:53 -05:00
tcely 3822c1a4f2 Add ytopts
These are all optimizations:
- `writethumbnail`: for EmbedThumbnail to use
- `check_formats`: to save requests
- `overwrites`: to keep the first version of the video
- sleep intervals to slow down our tasks only for video downloads
2025-01-29 21:13:17 -05:00
tcely 8019a94c46 Log failure to get hook status object 2025-01-29 18:45:45 -05:00
tcely 7a9ab47d9b fixup: missed a comma 2025-01-29 14:50:39 -05:00
tcely f59946e874 Cleanup youtube.py 2025-01-29 14:42:34 -05:00
tcely 0a8e95ce81 Create hooks.py 2025-01-29 14:13:05 -05:00
tcely b816eb3596 fixup: use the name attribute 2025-01-29 04:05:18 -05:00
tcely 78b9aadcbf Use a temporary directory per task
I am seeing multiple ffmpeg processes that mess each other up.

I do not know why this is happening yet, but for now let them operate in their own temporary directories.
2025-01-29 03:55:52 -05:00
tcely 3241f5dde6 Merge branch 'main' into issue-645-sponsorblock 2025-01-29 01:05:01 -05:00
tcely 24ac2e1aed Field expects verbose_name to be first, not separator 2025-01-29 00:23:02 -05:00
tcely f60c1d7b5b Move SponsorBlock_Category to fields.py 2025-01-28 21:53:42 -05:00
tcely 2b5ad21b20 Use TextChoices for SponsorBlock_Category 2025-01-28 20:37:32 -05:00
tcely e3501fe77a Fix CommaSepChoiceField
Using the separator that was chosen is the biggest fix.
2025-01-28 19:12:56 -05:00
tcely e59ba88e4e Add default values for the new settings 2025-01-28 16:29:45 -05:00
tcely d9c73d3dd7 Add new container settings
- TUBESYNC_RENAME_ALL_SOURCES: True or False
- TUBESYNC_RENAME_SOURCES: A comma-separated list of Source directories
2025-01-28 16:28:21 -05:00
tcely bf7127b973 Schedule the rename task when only the settings allow it 2025-01-28 16:19:17 -05:00
tcely 0695036610 Tweak the behavior of post processors 2025-01-28 01:45:45 -05:00
tcely 803319fe9f Let deepcopy do more work for us 2025-01-28 01:00:35 -05:00
tcely b40626f9dc Guess at ffmpeg options based on filename 2025-01-27 20:24:23 -05:00
tcely d34e1a204e Set a default nice level
Now that SponsorBlock is running, these jobs are using significant CPU resources.

Setting a nice level to let other things run better while `ffmpeg` is running seems wise.
2025-01-27 16:12:52 -05:00
tcely 133f08bd86 Hide format_note for combined audio / video 2025-01-27 15:17:39 -05:00
tcely bb226d4bc1 Made the output more friendly
- Humanize the Hz number 
- Do not output '@Nonek' for combined audio / video
2025-01-27 15:08:24 -05:00
tcely d2641c39cd Add asr to parsed formats 2025-01-27 14:34:10 -05:00
tcely ec16e4c54d Use the parsed formats 2025-01-27 14:31:16 -05:00
tcely eb27bf1583 Only save() the current Media 2025-01-27 13:17:16 -05:00
tcely d160a043e5 Use yt_dlp.get_postprocessors() 2025-01-27 12:45:32 -05:00
tcely 8a3a7aa333 Display language_code for audio formats 2025-01-27 03:50:42 -05:00
tcely 9fc773b5c0 Add language_code from response 2025-01-27 03:43:56 -05:00
tcely 09ecbf210e Default to valid JSON
This prevents useless logged errors when there is no metadata available yet.
2025-01-27 02:57:47 -05:00
tcely a44e856378 Merge branch 'main' into rename-files-with-source-format-issue-185 2025-01-26 10:17:12 -05:00
tcely bcbafaf842 Remove directory manipulation
Added a comment about why these directories aren't matching.
2025-01-26 07:54:14 -05:00
tcely 7b1aedf7ae Put os.path.basename() back
Without this the subdirectory from `media_format` is doubled.
2025-01-26 07:11:30 -05:00
tcely fe4f6dd6b8 DRY {JSON,nfo,thumb}name functions 2025-01-25 22:26:39 -05:00
tcely 31e25eb22b Remove unnecessary spaces 2025-01-25 20:21:59 -05:00
tcely 7169ba5865 Remove unnecessary spaces 2025-01-25 20:14:46 -05:00
tcely 32fad91401 Remove unnecessary spaces 2025-01-25 20:12:55 -05:00