Commit graph

417 commits

Author SHA1 Message Date
Amadeus Mader
80ae7ea1ff fix(oban): handle orphaned source deletion jobs gracefully
Add rescue block to SourceDeletionWorker to handle cases where the
source no longer exists. This prevents infinite retries when a deletion
job fails and the source has already been removed from the database.
2026-03-07 18:52:19 +01:00
Amadeus Mader
46a1500aed fix(db): add busy_timeout to prevent SQLite database busy errors
Configure SQLite busy_timeout PRAGMA to 5000ms so queries wait for
locks to be released instead of failing immediately. This prevents
Oban job queue from getting stuck with 'Database busy' errors during
concurrent operations.
2026-03-07 18:49:34 +01:00
Amadeus Mader
75c792dd32 docs: update agents.md 2026-03-07 18:45:36 +01:00
Amadeus Mader
590e15c2c6 fix(lefthook): changed hooks 2026-03-07 18:44:44 +01:00
Amadeus Mader
b9fc9db537 fix(oban): add executing state to indexing worker unique constraints
Include :executing in the unique states list for both FastIndexingWorker
and MediaCollectionIndexingWorker. This ensures Oban properly tracks
executing jobs and prevents potential duplicate job issues.

Without :executing in the unique states, the uniqueness check doesn't
consider currently running jobs, which could lead to jobs not appearing
in the UI's active tasks view or duplicate jobs being scheduled.
2026-03-07 18:40:21 +01:00
Amadeus Mader
00eabddfa2 fix(lefthook): only run typos on md and txt 2026-03-07 18:34:44 +01:00
Amadeus Mader
426c80fa92 feat(indexing): auto-advance download_cutoff_date after successful indexing
After each successful indexing run, the source's download_cutoff_date is
automatically advanced to 7 days ago if the current cutoff date is older
(or nil). This prevents yt-dlp from scanning through months of old videos
on every index run, significantly improving indexing performance for
channels with large backlogs.

The 7-day buffer ensures recent videos are still checked on subsequent
index runs while keeping indexing fast (minutes instead of hours).

Also updates AGENTS.md to document Docker-based development workflow
and adds Pinchflat_improvements.md for tracking known issues.
2026-03-07 18:31:45 +01:00
Amadeus Mader
4473f81fa5 docs: refocus AGENTS.md on code style and testing for AI agents
Replace CI/CD documentation with practical guidelines for AI coding
agents including module structure, naming conventions, error handling
patterns, Oban worker examples, and testing patterns with Mox.
2026-03-04 14:19:41 +01:00
Amadeus Mader
4d15e0892d docs: add AGENTS.md with CI/CD guidelines 2026-03-04 14:17:36 +01:00
Amadeus Mader
af2751ff61 ci: add actionlint for workflow validation 2026-03-04 13:45:35 +01:00
Amadeus Mader
a98f2b09d0 fix(ci): lowercase IMAGE_NAME for GHCR compatibility 2026-03-04 13:40:45 +01:00
Amadeus Mader
99c32c27fe chore: bump version to 2026.3.4 2026-03-04 13:06:39 +01:00
Amadeus Mader
ce95e229f6 chore: bump version to 2026.3.04 2026-03-04 12:55:51 +01:00
Amadeus Mader
3ff57513ae ci: updated release build 2026-03-04 12:53:49 +01:00
Amadeus Mader
293b93ff8c ci: fix pr workflow 2026-03-04 12:42:13 +01:00
Amadeus
d752afdee9
Merge pull request #1 from Mozart409/copilot/add-recent-downloads-endpoint
Add GET /api/media/recent_downloads JSON endpoint
2026-03-04 12:32:03 +01:00
copilot-swe-agent[bot]
11324fb1db Add GET /api/media/recent_downloads endpoint
Co-authored-by: Mozart409 <38767929+Mozart409@users.noreply.github.com>
2026-03-04 11:24:38 +00:00
copilot-swe-agent[bot]
1ba31befcc Initial plan 2026-03-04 11:20:50 +00:00
Amadeus Mader
bc5e3e9835 ci: fix remove docker stuff 2026-03-01 23:17:29 +01:00
Amadeus Mader
68d76abdfc fix: remove prepush 2026-03-01 23:05:11 +01:00
Amadeus Mader
496d3ac2db fix: add elixir 2026-03-01 23:03:34 +01:00
Amadeus Mader
0132772387 fix: change port 2026-03-01 23:02:35 +01:00
Amadeus Mader
2c98da58b3 fix: typo 2026-03-01 23:01:15 +01:00
Amadeus Mader
89a3eebcf7 fix: pr #860 2026-03-01 22:02:30 +01:00
Amadeus Mader
246a905be6 fix: pr #737 2026-03-01 22:02:08 +01:00
Amadeus Mader
88257cd151 feat(tools): add tools for elixir 2026-03-01 21:40:51 +01:00
Amadeus Mader
ee8921a8e1 feat(tools): add flake 2026-03-01 21:10:15 +01:00
Felix Jancso-Szabo
67d8bd5598
Fix spelling of 'Unaffected' in help texts (#838)
Some checks failed
Docker Release / build_and_push_docker (push) Has been cancelled
Perform linting and run tests / Build, Lint, and Test (push) Has been cancelled
Noticed this while setting up pinchflat, figured I'd submit a fix.
2025-12-16 09:30:00 -08:00
Daniel Da Cunha
6cb715c1d0
Move Active Tasks to tab in Media History section (#836)
Consolidate the home page UI by moving Active Tasks from a separate
section into a third tab alongside Downloaded and Pending tabs.

Co-authored-by: Daniel <ddacunha@MacBook-Pro-14.local>
2025-12-16 09:29:32 -08:00
Edward Horsey
d38c26f6fd
Enable overflow scroll for tables inside tabs (#822) 2025-12-16 09:28:51 -08:00
Googleplex
163e8eb8cc
Update selfhosted.Dockerfile (#802) 2025-09-27 21:31:17 -07:00
Kieran Eglin
0688e880f5
Added yt=dlp for arm64 2025-09-27 10:20:33 -07:00
Kieran Eglin
4f8cba3f9c
Bumped version 2025-09-26 16:04:56 -07:00
Kieran
2a371c4419
[Dev] Add Deno to Dockerfiles (#801)
* Added Deno to Dockerfiles

* Updated yt-dlp source

* Added unzip

* Update deno directory

* The ACTUAL deno install path this time. Christ, am I new here?

* Linting
2025-09-26 16:04:22 -07:00
Kieran Eglin
076f2fe78b
Version bump 2025-06-06 14:39:32 -07:00
Kieran
68da8bc522
[Housekeeping] Dependency updates 6-Jun-2025 (#733)
* Bumped Elixir

* Silenced mix check warnings

* Updated all deps with minor version upgrades

* Updated more deps; Refactored text components to work with phoenix_html updates
2025-06-06 13:44:14 -07:00
Kieran
1cee7a19ee
Made source sorting case-insensitive (#708) 2025-04-28 11:43:51 -07:00
Kieran
a55f17ac5f
Update the link (#697) 2025-04-10 09:39:37 -07:00
Brandon Philips
f637bbd195
[Docs] Add podman to README (#686)
* README: add podman

Docker always has a tendency to get in my way on Debian. Also, I really
like the userns setup for podman for giving permissions between host and
container.

* Ran linting on README

---------

Co-authored-by: Kieran Eglin <kieran.eglin@gmail.com>
2025-04-10 09:33:34 -07:00
Kieran
7f56c0c802
Better copy (#696) 2025-04-10 09:20:56 -07:00
Kieran Eglin
6d97c8c1c4
Bumped version 2025-03-17 15:02:16 -07:00
Kieran
030f5fbdfe
[Enhancement] Add setting to restrict filenames to ASCII characters (#660)
* Added a new column for restricting filenames

* Adds restrict-filenames to command runner

* Added UI to settings form
2025-03-17 14:58:25 -07:00
Kieran
ee2db3e9b7
Stopped logging healthcheck requests (#659) 2025-03-17 14:48:07 -07:00
Kieran
4554648ba7
[Enhancement] Add download rate limiting to app settings (#646)
* Added rate limit column to settings

* Added limit_rate option to command runner

* Added rate limit to settings form
2025-03-11 15:45:56 -07:00
Kieran Eglin
0fbf810cb6
bumped version 2025-03-06 14:41:36 -08:00
Kieran
a97bb248e2
[Enhancement] Retry a download using cookies if doing so might help (#641)
* Sources that use cookies when_needed now retry downloads if we think it'd help

* tweaked error message we're checking on to match media_download_worker
2025-03-05 16:41:07 -08:00
Kieran
ac895944a8
[Enhancement] Add option for a source to only use cookies when needed (#640)
* Updated model with new attribute

* Update app logic to use new cookie logic

* lots of tests

* Updated UI and renamed attribute

* Updated tests
2025-03-05 15:32:15 -08:00
Kieran Eglin
59f8aa69cd
updating yt-dlp permissions, again 2025-03-04 11:08:02 -08:00
Kieran
b790e05133
Testing yt-dlp binary permissions (#634) 2025-03-04 10:53:40 -08:00
Kieran Eglin
9953e4d316
bumped version 2025-02-20 15:49:44 -08:00