20:34:52.236 [debug] Replied in 3ms 20:34:52.240 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk"} 20:34:52.241 [debug] QUERY OK source="tasks" db=0.5ms idle=11.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:34:52.241 [debug] Replied in 1ms 20:34:52.242 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk"} 20:34:52.243 [debug] Replied in 201µs 20:34:52.245 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk", "media_state" => "downloaded"} 20:34:52.245 [debug] QUERY OK source="media_items" db=0.2ms idle=14.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:34:52.246 [debug] QUERY OK source="media_items" db=0.6ms idle=12.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:34:52.246 [debug] Replied in 1ms 20:34:52.248 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk", "media_state" => "pending"} 20:34:52.249 [debug] QUERY OK source="media_items" db=0.4ms idle=13.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:34:52.250 [debug] QUERY OK source="media_items" db=1.1ms idle=13.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:34:52.252 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=9.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:34:52.252 [debug] Replied in 3ms 20:34:52.256 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk"} 20:34:52.257 [debug] QUERY OK source="tasks" db=0.4ms idle=11.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:34:52.257 [debug] Replied in 1ms 20:34:55.660 [info] {"source":"oban","duration":1170,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:35:00.500 [info] {"source":"oban","duration":291,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:35:25.662 [info] {"source":"oban","duration":1196,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:35:55.664 [info] {"source":"oban","duration":1154,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:36:00.501 [info] {"source":"oban","duration":301,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:36:25.666 [info] {"source":"oban","duration":1405,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:36:55.668 [info] {"source":"oban","duration":1061,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:37:00.502 [info] {"source":"oban","duration":206,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:37:25.670 [info] {"source":"oban","duration":1219,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:37:55.672 [info] {"source":"oban","duration":1182,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:38:00.503 [info] {"source":"oban","duration":350,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:38:25.674 [info] {"source":"oban","duration":1386,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:38:55.676 [info] {"source":"oban","duration":1084,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:39:00.504 [info] {"source":"oban","duration":273,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:39:25.678 [info] {"source":"oban","duration":1029,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:39:55.680 [info] {"source":"oban","duration":1419,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:40:00.505 [info] {"source":"oban","duration":217,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:40:25.682 [info] {"source":"oban","duration":1251,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:40:55.684 [info] {"source":"oban","duration":992,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:41:00.506 [info] {"source":"oban","duration":311,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:41:25.686 [info] {"source":"oban","duration":1379,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:41:55.688 [info] {"source":"oban","duration":1426,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:42:00.507 [info] {"source":"oban","duration":273,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:42:25.690 [info] {"source":"oban","duration":968,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:42:55.692 [info] {"source":"oban","duration":1441,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:43:00.508 [info] {"source":"oban","duration":271,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:43:25.694 [info] {"source":"oban","duration":1046,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:43:55.696 [info] {"source":"oban","duration":1267,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:44:00.509 [info] {"source":"oban","duration":265,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:44:25.698 [info] {"source":"oban","duration":901,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:44:55.700 [info] {"source":"oban","duration":1238,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:45:00.510 [info] {"source":"oban","duration":289,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:45:25.702 [info] {"source":"oban","duration":1023,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:45:55.704 [info] {"source":"oban","duration":1153,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:46:00.511 [info] {"source":"oban","duration":293,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:46:25.706 [info] {"source":"oban","duration":1443,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:46:55.708 [info] {"source":"oban","duration":1127,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:47:00.512 [info] {"source":"oban","duration":290,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:47:25.710 [info] {"source":"oban","duration":1434,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:47:55.712 [info] {"source":"oban","duration":1042,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:48:00.513 [info] {"source":"oban","duration":429,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:48:25.714 [info] {"source":"oban","duration":990,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:48:55.716 [info] {"source":"oban","duration":1430,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:49:00.514 [info] {"source":"oban","duration":270,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:49:25.718 [info] {"source":"oban","duration":1137,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:49:55.720 [info] {"source":"oban","duration":1040,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:50:00.515 [info] {"source":"oban","duration":266,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:50:25.722 [info] {"source":"oban","duration":1134,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:50:36.009 [info] GET / 20:50:36.009 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 20:50:36.010 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=616.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:50:36.011 [debug] QUERY OK source="media_profiles" db=0.2ms idle=570.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 20:50:36.011 [debug] QUERY OK source="sources" db=0.3ms idle=571.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 20:50:36.012 [debug] QUERY OK source="media_items" db=0.2ms idle=571.5ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:50:36.012 [debug] QUERY OK source="media_items" db=0.2ms idle=572.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:50:36.013 [debug] QUERY OK source="settings" db=0.2ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:50:36.014 [debug] QUERY OK source="settings" db=0.2ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:50:36.014 [debug] QUERY OK source="settings" db=0.2ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:50:36.016 [debug] QUERY OK source="tasks" db=0.3ms idle=3.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:50:36.017 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=4.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:50:36.018 [debug] QUERY OK source="media_items" db=0.6ms idle=4.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:50:36.019 [debug] QUERY OK source="media_items" db=0.4ms idle=4.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:50:36.021 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=4.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:50:36.022 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:50:36.026 [info] Sent 200 in 16ms 20:50:37.211 [info] CONNECTED TO Phoenix.LiveView.Socket in 42µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "BB0oJRFnPzUeYQlcTwl1DyUdOh4mZ3J8oOMpSQGcTUP-yN-vOrpjo56Q", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.chadbergeron.com/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.chadbergeron.com/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:50:37.379 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kReUB6xVJ4Yq6GXyjoJtIRD-", "media_state" => "downloaded"} 20:50:37.380 [debug] QUERY OK source="media_items" db=0.3ms idle=1361.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:50:37.381 [debug] QUERY OK source="media_items" db=1.1ms idle=1361.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:50:37.381 [debug] Replied in 2ms 20:50:37.382 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kReUB6xVJ4Yq6GXyjoJtIRD-", "media_state" => "pending"} 20:50:37.383 [debug] QUERY OK source="media_items" db=0.6ms idle=1361.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:50:37.385 [debug] QUERY OK source="media_items" db=1.3ms idle=1362.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:50:37.386 [debug] QUERY OK source="sources" db=0.5ms idle=990.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:50:37.386 [debug] Replied in 4ms 20:50:37.390 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kReUB6xVJ4Yq6GXyjoJtIRD-"} 20:50:37.391 [debug] QUERY OK source="tasks" db=0.5ms idle=10.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:50:37.392 [debug] Replied in 1ms 20:50:37.392 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kReUB6xVJ4Yq6GXyjoJtIRD-"} 20:50:37.392 [debug] Replied in 136µs 20:50:39.077 [info] GET / 20:50:39.077 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 20:50:39.078 [debug] QUERY OK source="settings" db=0.3ms idle=678.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:50:39.079 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=638.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 20:50:39.079 [debug] QUERY OK source="sources" db=0.2ms idle=639.1ms SELECT count(s0."id") FROM "sources" AS s0 [] 20:50:39.080 [debug] QUERY OK source="media_items" db=0.1ms idle=639.5ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:50:39.080 [debug] QUERY OK source="media_items" db=0.1ms idle=639.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:50:39.081 [debug] QUERY OK source="settings" db=0.3ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:50:39.082 [debug] QUERY OK source="settings" db=0.4ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:50:39.083 [debug] QUERY OK source="settings" db=0.2ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:50:39.084 [debug] QUERY OK source="tasks" db=0.4ms idle=3.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:50:39.085 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=4.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:50:39.086 [debug] QUERY OK source="media_items" db=0.7ms idle=4.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:50:39.088 [debug] QUERY OK source="media_items" db=0.4ms idle=5.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:50:39.089 [debug] QUERY OK source="media_items" db=1.2ms idle=5.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:50:39.090 [debug] QUERY OK source="sources" db=0.3ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:50:39.094 [info] Sent 200 in 16ms 20:50:40.144 [info] CONNECTED TO Phoenix.LiveView.Socket in 44µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "BhVQYRJgGTsADT8lKABgEHIGDQdbYSMDdY7Sv1sYOYjDoAXw7sOUkUJb", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.chadbergeron.com/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.chadbergeron.com/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:50:40.312 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "bLg2dQjbOTUaGA8gEuBR04ia", "media_state" => "downloaded"} 20:50:40.313 [debug] QUERY OK source="media_items" db=0.3ms idle=1225.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:50:40.314 [debug] QUERY OK source="media_items" db=0.8ms idle=1225.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:50:40.314 [debug] Replied in 2ms 20:50:40.315 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "bLg2dQjbOTUaGA8gEuBR04ia", "media_state" => "pending"} 20:50:40.316 [debug] QUERY OK source="media_items" db=0.4ms idle=1226.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:50:40.318 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=1226.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:50:40.319 [debug] QUERY OK source="sources" db=0.3ms idle=917.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:50:40.319 [debug] Replied in 3ms 20:50:40.324 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "bLg2dQjbOTUaGA8gEuBR04ia"} 20:50:40.325 [debug] QUERY OK source="tasks" db=0.3ms idle=12.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:50:40.325 [debug] Replied in 1ms 20:50:40.326 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "bLg2dQjbOTUaGA8gEuBR04ia"} 20:50:40.326 [debug] Replied in 194µs 20:50:55.724 [info] {"source":"oban","duration":1171,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:51:00.516 [info] {"source":"oban","duration":312,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:51:25.726 [info] {"source":"oban","duration":1077,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:51:55.728 [info] {"source":"oban","duration":1075,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:52:00.517 [info] {"source":"oban","duration":411,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:52:25.730 [info] {"source":"oban","duration":1253,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:52:55.732 [info] {"source":"oban","duration":957,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:53:00.518 [info] {"source":"oban","duration":298,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:53:25.734 [info] {"source":"oban","duration":820,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:53:55.736 [info] {"source":"oban","duration":1416,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:54:00.519 [info] {"source":"oban","duration":378,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:54:25.738 [info] {"source":"oban","duration":1442,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:54:55.740 [info] {"source":"oban","duration":1096,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:55:00.520 [info] {"source":"oban","duration":407,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:55:25.742 [info] {"source":"oban","duration":1085,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:55:55.744 [info] {"source":"oban","duration":1148,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:56:00.521 [info] {"source":"oban","duration":280,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:56:25.746 [info] {"source":"oban","duration":993,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:56:55.748 [info] {"source":"oban","duration":1099,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:57:00.522 [info] {"source":"oban","duration":288,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:57:25.750 [info] {"source":"oban","duration":1139,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:57:55.752 [info] {"source":"oban","duration":1205,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:58:00.523 [info] {"source":"oban","duration":292,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:58:25.754 [info] {"source":"oban","duration":965,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:58:55.756 [info] {"source":"oban","duration":1112,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:59:00.524 [info] {"source":"oban","duration":320,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:59:25.758 [info] {"source":"oban","duration":1084,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:59:55.760 [info] {"source":"oban","duration":1440,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:00:00.527 [info] {"source":"oban","duration":2641,"event":"plugin:stop","jobs":[306],"plugin":"Oban.Plugins.Cron"} 21:00:00.535 [info] {"args":{},"id":306,"meta":{"cron":true,"cron_expr":"0 1 * * *","cron_tz":"Etc/UTC"},"system_time":1774832400534958972,"max_attempts":20,"queue":"local_data","worker":"Pinchflat.Downloading.MediaRetentionWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","local_data"]} 21:00:00.535 [debug] QUERY OK source="media_items" db=0.2ms queue=0.2ms idle=1094.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" WHERE ((NOT (m0."media_filepath" IS NULL) AND IFNULL(retention_period_days, 0) > 0 AND DATETIME(media_downloaded_at, '+' || retention_period_days || ' day') < DATETIME('now') ) AND NOT (m0."prevent_culling" = 1)) [] 21:00:00.535 [info] Culling 0 media items past their retention date 21:00:00.536 [debug] QUERY OK source="media_items" db=0.3ms queue=0.3ms idle=1039.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" WHERE ((NOT (m0."media_filepath" IS NULL) AND NOT ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND NOT (m0."prevent_culling" = 1)) [] 21:00:00.536 [info] Deleting 0 media items that are from before the source cutoff 21:00:00.538 [info] {"args":{},"id":306,"meta":{"cron":true,"cron_expr":"0 1 * * *","cron_tz":"Etc/UTC"},"state":"success","max_attempts":20,"queue":"local_data","worker":"Pinchflat.Downloading.MediaRetentionWorker","source":"oban","duration":1924,"event":"job:stop","queue_time":532250,"attempt":1,"tags":["media_item","local_data"]} 21:00:25.762 [info] {"source":"oban","duration":1034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:00:55.764 [info] {"source":"oban","duration":1376,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:01:00.528 [info] {"source":"oban","duration":279,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:01:25.766 [info] {"source":"oban","duration":915,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:01:55.768 [info] {"source":"oban","duration":821,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:02:00.529 [info] {"source":"oban","duration":288,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:02:25.770 [info] {"source":"oban","duration":1082,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:02:55.772 [info] {"source":"oban","duration":1050,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:03:00.530 [info] {"source":"oban","duration":281,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:03:25.774 [info] {"source":"oban","duration":1426,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:03:55.776 [info] {"source":"oban","duration":993,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:04:00.531 [info] {"source":"oban","duration":302,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:04:25.778 [info] {"source":"oban","duration":1002,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:04:55.780 [info] {"source":"oban","duration":1013,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:05:00.532 [info] {"source":"oban","duration":295,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:05:25.782 [info] {"source":"oban","duration":1431,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:05:55.784 [info] {"source":"oban","duration":1026,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:06:00.533 [info] {"source":"oban","duration":299,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:06:25.786 [info] {"source":"oban","duration":1026,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:06:55.788 [info] {"source":"oban","duration":1399,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:07:00.534 [info] {"source":"oban","duration":263,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:07:25.790 [info] {"source":"oban","duration":1018,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:07:35.502 [info] CONNECTED TO Phoenix.LiveView.Socket in 58µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "HAMuAQw-EA0yF3kicH8-DCYjLC4MChgTxyWDIkF9JzTAE4tTIPV_fEJx", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.chadbergeron.com/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.chadbergeron.com/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:07:35.619 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk", "media_state" => "downloaded"} 21:07:35.619 [debug] QUERY OK source="media_items" db=0.4ms idle=228.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:07:35.620 [debug] QUERY OK source="media_items" db=0.7ms idle=179.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:07:35.621 [debug] Replied in 2ms 21:07:35.622 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk", "media_state" => "pending"} 21:07:35.623 [debug] QUERY OK source="media_items" db=0.4ms idle=182.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:07:35.624 [debug] QUERY OK source="media_items" db=1.2ms idle=182.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:07:35.625 [debug] QUERY OK source="sources" db=0.4ms idle=184.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 21:07:35.625 [debug] Replied in 3ms 21:07:35.630 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk"} 21:07:35.631 [debug] QUERY OK source="tasks" db=0.3ms idle=10.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:07:35.631 [debug] Replied in 991µs 21:07:35.632 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk"} 21:07:35.632 [debug] Replied in 145µs 21:07:43.050 [info] CONNECTED TO Phoenix.LiveView.Socket in 58µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "HAMuAQw-EA0yF3kicH8-DCYjLC4MChgTxyWDIkF9JzTAE4tTIPV_fEJx", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.chadbergeron.com/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.chadbergeron.com/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:07:43.170 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk", "media_state" => "downloaded"} 21:07:43.171 [debug] QUERY OK source="media_items" db=0.3ms idle=1730.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:07:43.172 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=1731.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:07:43.172 [debug] Replied in 2ms 21:07:43.173 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk", "media_state" => "pending"} 21:07:43.174 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1733.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:07:43.176 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1734.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:07:43.177 [debug] QUERY OK source="sources" db=0.4ms idle=772.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 21:07:43.177 [debug] Replied in 3ms 21:07:43.181 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk"} 21:07:43.182 [debug] QUERY OK source="tasks" db=0.4ms idle=11.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:07:43.182 [debug] Replied in 1ms 21:07:43.183 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "dzyEEUV4xm-c5KJXoszqjORk"} 21:07:43.183 [debug] Replied in 144µs 21:07:55.792 [info] {"source":"oban","duration":1344,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:08:00.535 [info] {"source":"oban","duration":299,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:08:25.794 [info] {"source":"oban","duration":988,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:08:31.465 [info] GET /@fs/etc/passwd 21:08:31.466 [debug] QUERY OK source="settings" db=0.1ms idle=1023.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:31.466 [debug] QUERY OK source="settings" db=0.1ms idle=1023.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:31.466 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:31.466 [error] #PID<0.3141.0> running PinchflatWeb.Endpoint (connection #PID<0.3140.0>, stream id 1) terminated Server: pinchflat.chadbergeron.com:80 (http) Request: GET /@fs/etc/passwd?raw?? ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /@fs/etc/passwd (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3140.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@fs/etc/passwd", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 53216}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.chadbergeron.com", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?1", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "116.203.242.227", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "116.203.242.227" }, method: "GET", body_length: 0, path_info: :undefined, qs: "raw??", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3141.0>, params: %{"raw??" => ""}, path_info: ["@fs", "etc", "passwd"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"raw??" => ""}, query_string: "raw??", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.chadbergeron.com"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?1"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "116.203.242.227"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "116.203.242.227"} ], request_path: "/@fs/etc/passwd", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKF5ISeRHegI_IcAAA3C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3140.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@fs/etc/passwd", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 53216}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.chadbergeron.com", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?1", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "116.203.242.227", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "116.203.242.227" }, method: "GET", body_length: 0, path_info: :undefined, qs: "raw??", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /@fs/etc/passwd (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3140.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@fs/etc/passwd", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 53216}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.chadbergeron.com", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?1", (truncated) 21:08:31.473 [info] GET /@fs/etc/passwd 21:08:31.474 [debug] QUERY OK source="settings" db=0.2ms idle=1031.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:31.475 [debug] QUERY OK source="settings" db=0.1ms idle=971.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:31.475 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:31.475 [error] #PID<0.3143.0> running PinchflatWeb.Endpoint (connection #PID<0.3142.0>, stream id 1) terminated Server: pinchflat.chadbergeron.com:80 (http) Request: GET /@fs/etc/passwd?import&raw?? ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /@fs/etc/passwd (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3142.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@fs/etc/passwd", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 53220}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.chadbergeron.com", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?1", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "116.203.242.227", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "116.203.242.227" }, method: "GET", body_length: 0, path_info: :undefined, qs: "import&raw??", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3143.0>, params: %{"import" => "", "raw??" => ""}, path_info: ["@fs", "etc", "passwd"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"import" => "", "raw??" => ""}, query_string: "import&raw??", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.chadbergeron.com"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?1"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "116.203.242.227"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "116.203.242.227"} ], request_path: "/@fs/etc/passwd", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKF5ISgTHlRcL7YAAA4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3142.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@fs/etc/passwd", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 53220}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.chadbergeron.com", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?1", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "116.203.242.227", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "116.203.242.227" }, method: "GET", body_length: 0, path_info: :undefined, qs: "import&raw??", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /@fs/etc/passwd (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3142.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@fs/etc/passwd", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 53220}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.chadbergeron.com", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\ (truncated) 21:08:31.491 [info] GET /etc/passwd 21:08:31.491 [debug] QUERY OK source="settings" db=0.1ms idle=49.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:31.492 [debug] QUERY OK source="settings" db=0.1ms idle=26.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:31.492 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:31.492 [error] #PID<0.3145.0> running PinchflatWeb.Endpoint (connection #PID<0.3144.0>, stream id 1) terminated Server: pinchflat.chadbergeron.com:80 (http) Request: GET /etc/passwd?raw?? ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /etc/passwd (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3144.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/etc/passwd", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 53224}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.chadbergeron.com", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?1", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "116.203.242.227", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "116.203.242.227" }, method: "GET", body_length: 0, path_info: :undefined, qs: "raw??", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3145.0>, params: %{"raw??" => ""}, path_info: ["etc", "passwd"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"raw??" => ""}, query_string: "raw??", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.chadbergeron.com"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?1"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "116.203.242.227"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "116.203.242.227"} ], request_path: "/etc/passwd", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKF5ISkdpbT5p08AAA3i"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3144.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/etc/passwd", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 53224}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.chadbergeron.com", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?1", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "116.203.242.227", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "116.203.242.227" }, method: "GET", body_length: 0, path_info: :undefined, qs: "raw??", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /etc/passwd (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3144.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/etc/passwd", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 53224}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.chadbergeron.com", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?1", "sec-ch-ua-platform" => (truncated) 21:08:31.501 [info] GET /.git/config 21:08:31.502 [debug] QUERY OK source="settings" db=0.2ms idle=35.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:31.502 [debug] QUERY OK source="settings" db=0.1ms idle=27.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:31.502 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:31.503 [error] #PID<0.3147.0> running PinchflatWeb.Endpoint (connection #PID<0.3146.0>, stream id 1) terminated Server: pinchflat.chadbergeron.com:80 (http) Request: GET /.git/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3146.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 53240}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.chadbergeron.com", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?1", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "116.203.242.227", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "116.203.242.227" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3147.0>, params: %{}, path_info: [".git", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.chadbergeron.com"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?1"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "116.203.242.227"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "116.203.242.227"} ], request_path: "/.git/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKF5ISm847V_m5YAAA4C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3146.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 53240}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.chadbergeron.com", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?1", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "116.203.242.227", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "116.203.242.227" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3146.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 53240}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.chadbergeron.com", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Google Chrome\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?1", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch- (truncated) 21:08:55.796 [info] {"source":"oban","duration":1045,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:09:00.536 [info] {"source":"oban","duration":294,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:09:25.798 [info] {"source":"oban","duration":799,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:09:55.800 [info] {"source":"oban","duration":757,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:10:00.537 [info] {"source":"oban","duration":310,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:10:25.801 [info] {"source":"oban","duration":766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:10:55.802 [info] {"source":"oban","duration":1260,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:11:00.538 [info] {"source":"oban","duration":447,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:11:25.804 [info] {"source":"oban","duration":1030,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:11:55.806 [info] {"source":"oban","duration":1183,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:12:00.539 [info] {"source":"oban","duration":316,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:12:25.808 [info] {"source":"oban","duration":1467,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:12:55.810 [info] {"source":"oban","duration":1067,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:13:00.540 [info] {"source":"oban","duration":351,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:13:25.812 [info] {"source":"oban","duration":1502,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:13:55.814 [info] {"source":"oban","duration":1146,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:14:00.541 [info] {"source":"oban","duration":295,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:14:25.816 [info] {"source":"oban","duration":1049,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:14:55.818 [info] {"source":"oban","duration":984,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:15:00.542 [info] {"source":"oban","duration":217,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:15:25.820 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:15:55.822 [info] {"source":"oban","duration":1198,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:16:00.543 [info] {"source":"oban","duration":439,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:16:25.824 [info] {"source":"oban","duration":1062,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:16:55.826 [info] {"source":"oban","duration":1043,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:17:00.544 [info] {"source":"oban","duration":272,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:17:25.828 [info] {"source":"oban","duration":1194,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:17:55.830 [info] {"source":"oban","duration":1346,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:18:00.545 [info] {"source":"oban","duration":285,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:18:25.832 [info] {"source":"oban","duration":892,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:18:55.834 [info] {"source":"oban","duration":852,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:19:00.546 [info] {"source":"oban","duration":293,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:19:25.836 [info] {"source":"oban","duration":1019,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:19:55.838 [info] {"source":"oban","duration":1029,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:20:00.547 [info] {"source":"oban","duration":289,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:20:25.840 [info] {"source":"oban","duration":990,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:20:55.842 [info] {"source":"oban","duration":931,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:21:00.548 [info] {"source":"oban","duration":294,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:21:25.844 [info] {"source":"oban","duration":773,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:21:55.845 [info] {"source":"oban","duration":1414,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:22:00.549 [info] {"source":"oban","duration":283,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:22:25.847 [info] {"source":"oban","duration":1408,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:22:55.849 [info] {"source":"oban","duration":1116,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:23:00.550 [info] {"source":"oban","duration":288,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:23:25.851 [info] {"source":"oban","duration":753,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:23:55.852 [info] {"source":"oban","duration":1039,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:24:00.551 [info] {"source":"oban","duration":307,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:24:25.854 [info] {"source":"oban","duration":1054,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:24:55.856 [info] {"source":"oban","duration":1415,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:25:00.552 [info] {"source":"oban","duration":274,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:25:25.858 [info] {"source":"oban","duration":1265,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:25:55.860 [info] {"source":"oban","duration":995,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:26:00.553 [info] {"source":"oban","duration":283,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:26:25.862 [info] {"source":"oban","duration":1034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:26:55.864 [info] {"source":"oban","duration":1127,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:27:00.554 [info] {"source":"oban","duration":290,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:27:25.866 [info] {"source":"oban","duration":1356,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:27:55.868 [info] {"source":"oban","duration":1363,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:28:00.555 [info] {"source":"oban","duration":276,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:28:25.870 [info] {"source":"oban","duration":841,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:28:55.872 [info] {"source":"oban","duration":899,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:29:00.556 [info] {"source":"oban","duration":412,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:29:25.874 [info] {"source":"oban","duration":1426,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:29:55.876 [info] {"source":"oban","duration":1367,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:30:00.557 [info] {"source":"oban","duration":428,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:30:25.878 [info] {"source":"oban","duration":1027,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:30:55.880 [info] {"source":"oban","duration":1092,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:31:00.558 [info] {"source":"oban","duration":299,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:31:25.882 [info] {"source":"oban","duration":1028,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:31:55.884 [info] {"source":"oban","duration":1049,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:32:00.559 [info] {"source":"oban","duration":300,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:32:25.886 [info] {"source":"oban","duration":1402,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:32:55.888 [info] {"source":"oban","duration":1398,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:33:00.560 [info] {"source":"oban","duration":423,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:33:25.890 [info] {"source":"oban","duration":1057,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:33:55.892 [info] {"source":"oban","duration":1422,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:34:00.561 [info] {"source":"oban","duration":256,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:34:25.894 [info] {"source":"oban","duration":1080,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:34:55.896 [info] {"source":"oban","duration":1112,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:35:00.562 [info] {"source":"oban","duration":208,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:35:25.898 [info] {"source":"oban","duration":1022,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:35:55.900 [info] {"source":"oban","duration":980,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:36:00.563 [info] {"source":"oban","duration":248,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:36:19.072 [info] GET /settings 21:36:19.073 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 21:36:19.073 [debug] QUERY OK source="settings" db=0.4ms idle=1631.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:19.074 [debug] QUERY OK source="settings" db=0.5ms idle=1631.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:19.075 [debug] QUERY OK source="settings" db=0.2ms idle=1315.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:19.076 [debug] QUERY OK source="settings" db=0.2ms idle=633.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:19.078 [info] Sent 200 in 6ms 21:36:25.902 [info] {"source":"oban","duration":1324,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:36:55.904 [info] {"source":"oban","duration":854,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:37:00.564 [info] {"source":"oban","duration":316,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:37:25.906 [info] {"source":"oban","duration":1205,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:37:52.016 [info] GET /sources/2/media/22 21:37:52.016 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "22", "source_id" => "2"} Pipelines: [:browser] 21:37:52.016 [debug] QUERY OK source="media_items" db=0.2ms idle=1574.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [22] 21:37:52.017 [debug] QUERY OK source="sources" db=0.4ms idle=574.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 21:37:52.017 [debug] QUERY OK source="tasks" db=0.3ms queue=0.2ms idle=1072.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [22] 21:37:52.018 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=575.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?)) [270, 282, 291, 303] 21:37:52.018 [debug] QUERY OK source="settings" db=0.1ms idle=72.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:52.019 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:52.019 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:52.020 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:37:52.022 [info] Sent 200 in 6ms 21:37:55.908 [info] {"source":"oban","duration":1451,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:38:00.565 [info] {"source":"oban","duration":217,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:38:25.910 [info] {"source":"oban","duration":1422,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:38:35.312 [info] GET /sources/2 21:38:35.312 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "2"} Pipelines: [:browser] 21:38:35.313 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1870.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 21:38:35.314 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=1871.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:38:35.315 [debug] QUERY OK source="tasks" db=0.3ms idle=1872.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [2, "executing", "available", "scheduled", "retryable"] 21:38:35.315 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=1286.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [275] 21:38:35.316 [debug] QUERY OK source="settings" db=0.2ms idle=285.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:35.317 [debug] QUERY OK source="settings" db=0.2ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:35.317 [debug] QUERY OK source="settings" db=0.2ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:35.320 [debug] QUERY OK source="sources" db=0.2ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 21:38:35.321 [debug] QUERY OK source="media_items" db=0.7ms idle=5.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [2] 21:38:35.323 [debug] QUERY OK source="media_items" db=1.0ms idle=5.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 21:38:35.326 [debug] QUERY OK source="sources" db=0.3ms idle=8.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 21:38:35.326 [debug] QUERY OK source="media_items" db=0.1ms idle=8.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [2] 21:38:35.327 [debug] QUERY OK source="media_items" db=0.3ms idle=6.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 21:38:35.328 [debug] QUERY OK source="sources" db=0.3ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 21:38:35.329 [debug] QUERY OK source="media_items" db=0.4ms idle=5.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [2] 21:38:35.330 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=3.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 21:38:35.332 [info] Sent 200 in 20ms 21:38:55.912 [info] {"source":"oban","duration":1095,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:39:00.566 [info] {"source":"oban","duration":436,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:39:09.045 [info] GET /sources/2/media/20 21:39:09.045 [info] GET /sources 21:39:09.045 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "20", "source_id" => "2"} Pipelines: [:browser] 21:39:09.045 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 21:39:09.047 [debug] QUERY OK source="settings" db=0.7ms idle=603.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:09.047 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=952.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [20] 21:39:09.047 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=604.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:09.048 [debug] QUERY OK source="tasks" db=0.4ms idle=605.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [20] 21:39:09.048 [debug] QUERY OK source="sources" db=0.8ms idle=605.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 21:39:09.048 [debug] QUERY OK source="settings" db=0.4ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:09.050 [debug] QUERY OK source="oban_jobs" db=0.8ms idle=1.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?)) [268, 280, 289, 301] 21:39:09.050 [debug] QUERY OK source="settings" db=0.5ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:09.051 [debug] QUERY OK source="settings" db=0.3ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:09.051 [debug] QUERY OK source="settings" db=0.3ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:09.051 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:09.052 [debug] QUERY OK source="settings" db=0.5ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:09.053 [debug] QUERY OK source="sources" db=1.4ms idle=1.6ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:39:09.055 [debug] QUERY OK source="media_profiles" db=1.0ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:39:09.056 [debug] QUERY OK source="sources" db=2.6ms queue=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:39:09.059 [info] Sent 200 in 13ms 21:39:09.059 [info] Sent 200 in 13ms 21:39:25.914 [info] {"source":"oban","duration":988,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:39:55.916 [info] {"source":"oban","duration":1025,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:40:00.567 [info] {"source":"oban","duration":295,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:40:25.918 [info] {"source":"oban","duration":1425,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:40:55.920 [info] {"source":"oban","duration":1118,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:41:00.568 [info] {"source":"oban","duration":415,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:41:14.914 [info] GET /app_info 21:41:14.915 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 21:41:14.916 [debug] QUERY OK source="settings" db=0.3ms idle=1473.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:41:14.916 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=1473.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:41:14.917 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=571.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:41:14.919 [debug] QUERY OK source="settings" db=0.2ms idle=476.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:41:14.919 [debug] QUERY OK source="settings" db=0.1ms idle=476.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:41:14.920 [info] Sent 200 in 5ms 21:41:25.922 [info] {"source":"oban","duration":1476,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:41:55.924 [info] {"source":"oban","duration":1040,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:42:00.569 [info] {"source":"oban","duration":277,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:42:25.926 [info] {"source":"oban","duration":990,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:42:50.625 [info] GET /sources/2/media/21 21:42:50.625 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "21", "source_id" => "2"} Pipelines: [:browser] 21:42:50.626 [debug] QUERY OK source="media_items" db=0.4ms idle=1183.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [21] 21:42:50.627 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=1093.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [21] 21:42:50.627 [debug] QUERY OK source="sources" db=0.6ms idle=184.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 21:42:50.628 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=185.8ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?)) [269, 281, 290, 302] 21:42:50.629 [debug] QUERY OK source="settings" db=0.2ms idle=93.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:50.630 [debug] QUERY OK source="settings" db=0.3ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:50.631 [debug] QUERY OK source="settings" db=0.3ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:50.632 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:42:50.636 [info] Sent 200 in 11ms 21:42:55.928 [info] {"source":"oban","duration":1410,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:43:00.570 [info] {"source":"oban","duration":287,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:43:20.604 [info] GET /sources/2/media/23 21:43:20.604 [info] GET /sources/2/media/32 21:43:20.604 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "32", "source_id" => "2"} Pipelines: [:browser] 21:43:20.604 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "23", "source_id" => "2"} Pipelines: [:browser] 21:43:20.605 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=162.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [32] 21:43:20.606 [debug] QUERY OK source="media_items" db=1.2ms idle=162.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [23] 21:43:20.606 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=163.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [32] 21:43:20.607 [debug] QUERY OK source="tasks" db=0.9ms idle=12.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [23] 21:43:20.608 [debug] QUERY OK source="sources" db=1.4ms idle=164.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 21:43:20.608 [debug] QUERY OK source="sources" db=1.2ms idle=1.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 21:43:20.609 [debug] QUERY OK source="oban_jobs" db=0.6ms idle=2.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?)) [274, 284, 293, 305] 21:43:20.609 [debug] QUERY OK source="oban_jobs" db=0.5ms idle=1.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?)) [271, 283, 292, 304] 21:43:20.610 [debug] QUERY OK source="settings" db=0.4ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:20.610 [debug] QUERY OK source="settings" db=0.5ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:20.611 [debug] QUERY OK source="settings" db=0.5ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:20.611 [debug] QUERY OK source="settings" db=0.8ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:20.612 [debug] QUERY OK source="settings" db=0.3ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:20.613 [debug] QUERY OK source="settings" db=0.4ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:20.614 [debug] QUERY OK source="media_profiles" db=0.7ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:43:20.615 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:43:20.620 [info] Sent 200 in 16ms 21:43:20.620 [info] Sent 200 in 16ms 21:43:20.889 [info] GET /media_profiles 21:43:20.890 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 21:43:20.891 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.4ms idle=278.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 21:43:20.892 [debug] QUERY OK source="settings" db=0.3ms idle=280.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:20.893 [debug] QUERY OK source="settings" db=0.3ms idle=279.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:20.894 [debug] QUERY OK source="settings" db=0.2ms idle=279.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:20.896 [info] Sent 200 in 7ms 21:43:25.930 [info] {"source":"oban","duration":1218,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:43:55.932 [info] {"source":"oban","duration":1047,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:44:00.571 [info] {"source":"oban","duration":338,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:44:25.934 [info] {"source":"oban","duration":1144,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:44:55.936 [info] {"source":"oban","duration":1178,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:45:00.572 [info] {"source":"oban","duration":291,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:45:25.938 [info] {"source":"oban","duration":1149,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:45:55.940 [info] {"source":"oban","duration":849,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:46:00.573 [info] {"source":"oban","duration":332,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:46:25.942 [info] {"source":"oban","duration":1399,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:46:55.944 [info] {"source":"oban","duration":1112,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:47:00.574 [info] {"source":"oban","duration":242,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:47:25.946 [info] {"source":"oban","duration":1009,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:47:55.948 [info] {"source":"oban","duration":789,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:48:00.575 [info] {"source":"oban","duration":305,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:48:25.950 [info] {"source":"oban","duration":1429,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:48:55.952 [info] {"source":"oban","duration":1416,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:49:00.576 [info] {"source":"oban","duration":306,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:49:25.954 [info] {"source":"oban","duration":1459,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:49:55.956 [info] {"source":"oban","duration":1117,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:50:00.577 [info] {"source":"oban","duration":282,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:50:25.958 [info] {"source":"oban","duration":1048,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:50:55.960 [info] {"source":"oban","duration":1065,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:51:00.578 [info] {"source":"oban","duration":245,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:51:25.962 [info] {"source":"oban","duration":1021,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:51:55.964 [info] {"source":"oban","duration":1401,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:52:00.580 [info] {"source":"oban","duration":297,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:52:25.966 [info] {"source":"oban","duration":1101,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:52:55.968 [info] {"source":"oban","duration":1106,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:53:00.581 [info] {"source":"oban","duration":315,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:53:25.970 [info] {"source":"oban","duration":1095,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:53:55.972 [info] {"source":"oban","duration":971,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:54:00.582 [info] {"source":"oban","duration":335,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:54:25.974 [info] {"source":"oban","duration":1140,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:54:55.976 [info] {"source":"oban","duration":914,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:55:00.583 [info] {"source":"oban","duration":311,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:55:25.978 [info] {"source":"oban","duration":1031,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:55:55.980 [info] {"source":"oban","duration":1031,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:56:00.584 [info] {"source":"oban","duration":339,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:56:25.982 [info] {"source":"oban","duration":1474,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:56:55.984 [info] {"source":"oban","duration":996,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:57:00.585 [info] {"source":"oban","duration":258,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:57:25.986 [info] {"source":"oban","duration":1340,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:57:55.988 [info] {"source":"oban","duration":1416,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:58:00.586 [info] {"source":"oban","duration":312,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:58:25.990 [info] {"source":"oban","duration":1111,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:58:55.992 [info] {"source":"oban","duration":1151,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:59:00.587 [info] {"source":"oban","duration":295,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 21:59:25.994 [info] {"source":"oban","duration":982,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:59:55.996 [info] {"source":"oban","duration":1382,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:00:00.592 [info] {"source":"oban","duration":3901,"event":"plugin:stop","jobs":[307],"plugin":"Oban.Plugins.Cron"} 22:00:00.599 [info] {"args":{},"id":307,"meta":{"cron":true,"cron_expr":"0 2 * * *","cron_tz":"Etc/UTC"},"system_time":1774836000599010101,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaQualityUpgradeWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:00:00.600 [debug] QUERY OK source="media_items" db=0.5ms queue=0.4ms idle=1157.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((NOT (m0."media_filepath" IS NULL) AND NOT (m0."prevent_download" = 1)) AND NOT (NOT (m0."media_redownloaded_at" IS NULL))) AND IFNULL(redownload_delay_days, 0) > 0 AND DATE('now', '-' || redownload_delay_days || ' day') > DATE(uploaded_at) AND DATE(media_downloaded_at, '-' || redownload_delay_days || ' day') < DATE(uploaded_at) ) [] 22:00:00.600 [info] Redownloading 0 media items 22:00:00.602 [info] {"args":{},"id":307,"meta":{"cron":true,"cron_expr":"0 2 * * *","cron_tz":"Etc/UTC"},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaQualityUpgradeWorker","source":"oban","duration":1983,"event":"job:stop","queue_time":596181,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:00:25.998 [info] {"source":"oban","duration":1041,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:00:56.000 [info] {"source":"oban","duration":1503,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:01:00.593 [info] {"source":"oban","duration":417,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:01:26.002 [info] {"source":"oban","duration":993,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:01:56.004 [info] {"source":"oban","duration":1484,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:02:00.594 [info] {"source":"oban","duration":316,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:02:26.006 [info] {"source":"oban","duration":1091,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:02:56.008 [info] {"source":"oban","duration":984,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:03:00.595 [info] {"source":"oban","duration":293,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:03:26.010 [info] {"source":"oban","duration":1002,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:03:56.012 [info] {"source":"oban","duration":1018,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:04:00.596 [info] {"source":"oban","duration":335,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:04:26.014 [info] {"source":"oban","duration":1521,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:04:56.016 [info] {"source":"oban","duration":999,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:05:00.597 [info] {"source":"oban","duration":305,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:05:17.075 [info] GET /.git/config 22:05:17.076 [debug] QUERY OK source="settings" db=0.3ms idle=1633.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:17.077 [debug] QUERY OK source="settings" db=0.4ms idle=1634.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:17.077 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:05:17.077 [error] #PID<0.3454.0> running PinchflatWeb.Endpoint (connection #PID<0.3453.0>, stream id 1) terminated Server: pinchflat.chadbergeron.com:80 (http) Request: GET /.git/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3453.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 58354}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-charset" => "utf-8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 (SS; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36", "x-forwarded-for" => "52.91.254.142", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "52.91.254.142" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3454.0>, params: %{}, path_info: [".git", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept-charset", "utf-8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 (SS; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"}, {"x-forwarded-for", "52.91.254.142"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "52.91.254.142"} ], request_path: "/.git/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKF8OhW_Ewz1lnoAABfB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3453.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 58354}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-charset" => "utf-8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 (SS; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36", "x-forwarded-for" => "52.91.254.142", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "52.91.254.142" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3453.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 58354}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-charset" => "utf-8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 (SS; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36", "x-forwarded-for" => "52.91.254.142", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "52.91.254.142" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3454.0>, params: %{}, path_info: [".git", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept-charset", "utf-8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 (SS; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"}, {"x-forwarded-for", "52.91.254.142"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "52.91.254.142"} ], request_path: "/.git/config", resp_bo (truncated) 22:05:26.018 [info] {"source":"oban","duration":1409,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:05:56.020 [info] {"source":"oban","duration":1375,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:06:00.598 [info] {"source":"oban","duration":304,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:06:26.022 [info] {"source":"oban","duration":974,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:06:56.024 [info] {"source":"oban","duration":1405,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:07:00.599 [info] {"source":"oban","duration":403,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:07:26.026 [info] {"source":"oban","duration":978,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:07:56.028 [info] {"source":"oban","duration":1206,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:08:00.600 [info] {"source":"oban","duration":297,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:08:26.030 [info] {"source":"oban","duration":1407,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:08:56.032 [info] {"source":"oban","duration":1079,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:09:00.601 [info] {"source":"oban","duration":235,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:09:26.034 [info] {"source":"oban","duration":1115,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:09:56.036 [info] {"source":"oban","duration":1472,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:10:00.602 [info] {"source":"oban","duration":280,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:10:26.038 [info] {"source":"oban","duration":1129,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:10:56.040 [info] {"source":"oban","duration":1116,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:11:00.603 [info] {"source":"oban","duration":299,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:11:26.042 [info] {"source":"oban","duration":954,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:11:56.044 [info] {"source":"oban","duration":1406,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:12:00.604 [info] {"source":"oban","duration":286,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:12:26.046 [info] {"source":"oban","duration":870,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:12:56.048 [info] {"source":"oban","duration":1262,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:13:00.605 [info] {"source":"oban","duration":299,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:13:26.050 [info] {"source":"oban","duration":1426,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:13:56.052 [info] {"source":"oban","duration":1388,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:14:00.606 [info] {"source":"oban","duration":418,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:14:26.054 [info] {"source":"oban","duration":1049,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:14:56.056 [info] {"source":"oban","duration":1442,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:15:00.607 [info] {"source":"oban","duration":290,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:15:26.058 [info] {"source":"oban","duration":1003,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:15:56.060 [info] {"source":"oban","duration":1347,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:16:00.608 [info] {"source":"oban","duration":301,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:16:26.062 [info] {"source":"oban","duration":1029,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:16:56.064 [info] {"source":"oban","duration":799,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:17:00.609 [info] {"source":"oban","duration":260,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:17:26.066 [info] {"source":"oban","duration":992,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:17:56.068 [info] {"source":"oban","duration":1416,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:18:00.610 [info] {"source":"oban","duration":322,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:18:26.070 [info] {"source":"oban","duration":1027,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:18:56.071 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:19:00.611 [info] {"source":"oban","duration":319,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:19:26.073 [info] {"source":"oban","duration":1007,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:19:56.075 [info] {"source":"oban","duration":1027,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:20:00.612 [info] {"source":"oban","duration":307,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:20:26.077 [info] {"source":"oban","duration":1455,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:20:56.079 [info] {"source":"oban","duration":910,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:21:00.613 [info] {"source":"oban","duration":305,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:21:26.081 [info] {"source":"oban","duration":917,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:21:56.083 [info] {"source":"oban","duration":1045,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:22:00.614 [info] {"source":"oban","duration":307,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:22:26.085 [info] {"source":"oban","duration":1040,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:22:56.087 [info] {"source":"oban","duration":1434,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:23:00.615 [info] {"source":"oban","duration":284,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:23:26.089 [info] {"source":"oban","duration":1105,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:23:56.091 [info] {"source":"oban","duration":1474,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:24:00.616 [info] {"source":"oban","duration":265,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:24:26.093 [info] {"source":"oban","duration":1058,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:24:56.095 [info] {"source":"oban","duration":1177,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:25:00.617 [info] {"source":"oban","duration":236,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:25:26.097 [info] {"source":"oban","duration":1477,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:25:56.099 [info] {"source":"oban","duration":1014,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:26:00.618 [info] {"source":"oban","duration":259,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:26:26.101 [info] {"source":"oban","duration":1432,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:26:56.102 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:27:00.619 [info] {"source":"oban","duration":277,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:27:26.104 [info] {"source":"oban","duration":1454,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:27:56.106 [info] {"source":"oban","duration":1110,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:28:00.620 [info] {"source":"oban","duration":310,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:28:26.108 [info] {"source":"oban","duration":1024,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:28:56.110 [info] {"source":"oban","duration":1038,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:29:00.621 [info] {"source":"oban","duration":346,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:29:26.112 [info] {"source":"oban","duration":953,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:29:56.114 [info] {"source":"oban","duration":965,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:30:00.622 [info] {"source":"oban","duration":312,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:30:26.116 [info] {"source":"oban","duration":1220,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:30:56.118 [info] {"source":"oban","duration":1002,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:31:00.623 [info] {"source":"oban","duration":414,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:31:26.120 [info] {"source":"oban","duration":1087,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:31:56.122 [info] {"source":"oban","duration":1113,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:32:00.624 [info] {"source":"oban","duration":284,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:32:26.124 [info] {"source":"oban","duration":1018,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:32:56.126 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:33:00.625 [info] {"source":"oban","duration":258,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:33:26.128 [info] {"source":"oban","duration":1084,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:33:56.130 [info] {"source":"oban","duration":1407,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:34:00.626 [info] {"source":"oban","duration":271,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:34:26.132 [info] {"source":"oban","duration":1090,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:34:56.134 [info] {"source":"oban","duration":1130,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:35:00.627 [info] {"source":"oban","duration":310,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:35:26.136 [info] {"source":"oban","duration":1045,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:35:56.138 [info] {"source":"oban","duration":1428,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:36:00.628 [info] {"source":"oban","duration":281,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:36:26.140 [info] {"source":"oban","duration":1456,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:36:56.142 [info] {"source":"oban","duration":1082,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:37:00.629 [info] {"source":"oban","duration":291,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:37:26.144 [info] {"source":"oban","duration":1366,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:37:56.146 [info] {"source":"oban","duration":1069,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:38:00.630 [info] {"source":"oban","duration":298,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:38:26.148 [info] {"source":"oban","duration":995,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:38:56.150 [info] {"source":"oban","duration":1340,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:39:00.631 [info] {"source":"oban","duration":410,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:39:26.152 [info] {"source":"oban","duration":839,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:39:56.154 [info] {"source":"oban","duration":1046,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:40:00.632 [info] {"source":"oban","duration":294,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:40:26.156 [info] {"source":"oban","duration":1405,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:40:56.158 [info] {"source":"oban","duration":1053,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:41:00.633 [info] {"source":"oban","duration":305,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:41:26.160 [info] {"source":"oban","duration":1444,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:41:56.162 [info] {"source":"oban","duration":1175,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:42:00.634 [info] {"source":"oban","duration":321,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:42:26.164 [info] {"source":"oban","duration":1143,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:42:56.166 [info] {"source":"oban","duration":1417,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:43:00.635 [info] {"source":"oban","duration":261,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:43:26.168 [info] {"source":"oban","duration":1106,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:43:56.170 [info] {"source":"oban","duration":1080,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:44:00.636 [info] {"source":"oban","duration":299,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:44:26.172 [info] {"source":"oban","duration":1025,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:44:56.174 [info] {"source":"oban","duration":1442,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:45:00.637 [info] {"source":"oban","duration":315,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:45:26.176 [info] {"source":"oban","duration":1425,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:45:56.178 [info] {"source":"oban","duration":1156,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:46:00.638 [info] {"source":"oban","duration":292,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:46:26.180 [info] {"source":"oban","duration":1097,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:46:56.182 [info] {"source":"oban","duration":1009,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:47:00.639 [info] {"source":"oban","duration":304,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:47:26.184 [info] {"source":"oban","duration":1377,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:47:56.186 [info] {"source":"oban","duration":1227,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:48:00.640 [info] {"source":"oban","duration":290,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:48:26.188 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:48:56.190 [info] {"source":"oban","duration":1436,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:49:00.641 [info] {"source":"oban","duration":298,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:49:26.192 [info] {"source":"oban","duration":1121,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:49:56.194 [info] {"source":"oban","duration":1036,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:50:00.642 [info] {"source":"oban","duration":434,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:50:26.196 [info] {"source":"oban","duration":1085,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:50:56.198 [info] {"source":"oban","duration":1004,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:51:00.643 [info] {"source":"oban","duration":286,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:51:26.200 [info] {"source":"oban","duration":963,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:51:56.202 [info] {"source":"oban","duration":1115,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:52:00.644 [info] {"source":"oban","duration":312,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:52:26.204 [info] {"source":"oban","duration":1087,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:52:56.206 [info] {"source":"oban","duration":972,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:53:00.645 [info] {"source":"oban","duration":287,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:53:26.208 [info] {"source":"oban","duration":1446,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:53:56.210 [info] {"source":"oban","duration":1418,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:54:00.646 [info] {"source":"oban","duration":298,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:54:26.212 [info] {"source":"oban","duration":1054,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:54:56.214 [info] {"source":"oban","duration":1040,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:55:00.647 [info] {"source":"oban","duration":303,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:55:26.216 [info] {"source":"oban","duration":1434,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:55:56.218 [info] {"source":"oban","duration":1424,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:56:00.648 [info] {"source":"oban","duration":250,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:56:26.220 [info] {"source":"oban","duration":1396,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:56:56.222 [info] {"source":"oban","duration":1154,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:57:00.649 [info] {"source":"oban","duration":284,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:57:26.224 [info] {"source":"oban","duration":1089,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:57:56.226 [info] {"source":"oban","duration":1439,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:58:00.650 [info] {"source":"oban","duration":272,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:58:26.227 [info] {"source":"oban","duration":738,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:58:56.228 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:59:00.651 [info] {"source":"oban","duration":261,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 22:59:26.230 [info] {"source":"oban","duration":1084,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:59:56.232 [info] {"source":"oban","duration":1038,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:00:00.652 [info] {"source":"oban","duration":311,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:00:26.234 [info] {"source":"oban","duration":1134,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:00:56.236 [info] {"source":"oban","duration":1411,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:01:00.653 [info] {"source":"oban","duration":385,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:01:26.238 [info] {"source":"oban","duration":1048,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:01:56.240 [info] {"source":"oban","duration":1027,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:02:00.654 [info] {"source":"oban","duration":320,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:02:26.242 [info] {"source":"oban","duration":1056,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:02:56.244 [info] {"source":"oban","duration":1099,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:03:00.655 [info] {"source":"oban","duration":325,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:03:26.246 [info] {"source":"oban","duration":1059,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:03:56.248 [info] {"source":"oban","duration":1087,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:04:00.656 [info] {"source":"oban","duration":421,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:04:26.250 [info] {"source":"oban","duration":1002,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:04:56.252 [info] {"source":"oban","duration":946,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:05:00.657 [info] {"source":"oban","duration":306,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:05:26.254 [info] {"source":"oban","duration":1027,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:05:56.255 [info] {"source":"oban","duration":471,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:06:00.658 [info] {"source":"oban","duration":307,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:06:26.257 [info] {"source":"oban","duration":1067,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:06:56.259 [info] {"source":"oban","duration":1414,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:07:00.659 [info] {"source":"oban","duration":410,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:07:26.261 [info] {"source":"oban","duration":1105,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:07:56.263 [info] {"source":"oban","duration":997,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:08:00.660 [info] {"source":"oban","duration":199,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:08:19.025 [info] GET / 23:08:19.025 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 23:08:19.026 [debug] QUERY OK source="settings" db=0.3ms idle=1583.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:19.026 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1584.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 23:08:19.027 [debug] QUERY OK source="sources" db=0.3ms idle=1497.9ms SELECT count(s0."id") FROM "sources" AS s0 [] 23:08:19.027 [debug] QUERY OK source="media_items" db=0.2ms idle=585.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:19.028 [debug] QUERY OK source="media_items" db=0.1ms idle=496.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:19.029 [debug] QUERY OK source="settings" db=0.3ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:19.029 [debug] QUERY OK source="settings" db=0.4ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:19.030 [debug] QUERY OK source="settings" db=0.3ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:19.032 [debug] QUERY OK source="tasks" db=0.4ms idle=4.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:08:19.033 [debug] QUERY OK source="media_items" db=0.3ms idle=4.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:19.034 [debug] QUERY OK source="media_items" db=0.7ms idle=4.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:08:19.035 [debug] QUERY OK source="media_items" db=0.7ms idle=5.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:08:19.038 [debug] QUERY OK source="media_items" db=1.6ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:08:19.039 [debug] QUERY OK source="sources" db=0.4ms idle=6.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:08:19.042 [info] Sent 200 in 17ms 23:08:26.265 [info] {"source":"oban","duration":1152,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:08:56.267 [info] {"source":"oban","duration":1096,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:09:00.661 [info] {"source":"oban","duration":354,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:09:26.269 [info] {"source":"oban","duration":1055,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:09:56.271 [info] {"source":"oban","duration":1039,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:10:00.662 [info] {"source":"oban","duration":310,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:10:26.273 [info] {"source":"oban","duration":1312,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:10:56.275 [info] {"source":"oban","duration":1417,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:11:00.663 [info] {"source":"oban","duration":305,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:11:26.277 [info] {"source":"oban","duration":1108,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:11:56.279 [info] {"source":"oban","duration":1287,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:12:00.664 [info] {"source":"oban","duration":420,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:12:26.281 [info] {"source":"oban","duration":1435,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:12:56.283 [info] {"source":"oban","duration":1135,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:13:00.665 [info] {"source":"oban","duration":281,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:13:26.285 [info] {"source":"oban","duration":1040,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:13:56.287 [info] {"source":"oban","duration":1165,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:14:00.666 [info] {"source":"oban","duration":423,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:14:26.289 [info] {"source":"oban","duration":879,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:14:31.940 [info] GET /sources/new 23:14:31.940 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 23:14:31.942 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.4ms idle=675.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 23:14:31.943 [debug] QUERY OK source="settings" db=0.5ms idle=500.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:31.943 [debug] QUERY OK source="settings" db=0.2ms idle=501.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:31.944 [debug] QUERY OK source="settings" db=0.4ms idle=501.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:31.945 [debug] QUERY OK source="settings" db=0.5ms idle=502.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:31.947 [debug] QUERY OK source="settings" db=0.3ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:31.952 [info] Sent 200 in 11ms 23:14:32.440 [info] GET /sources/2/edit 23:14:32.440 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "2"} Pipelines: [:browser] 23:14:32.442 [debug] QUERY OK source="sources" db=0.5ms idle=497.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:14:32.443 [debug] QUERY OK source="media_profiles" db=0.4ms idle=498.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 23:14:32.444 [debug] QUERY OK source="settings" db=0.4ms idle=497.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:32.444 [debug] QUERY OK source="settings" db=0.3ms idle=497.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:32.446 [debug] QUERY OK source="settings" db=0.4ms idle=178.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:32.451 [info] Sent 200 in 11ms 23:14:56.291 [info] {"source":"oban","duration":1158,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:15:00.667 [info] {"source":"oban","duration":302,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:15:26.293 [info] {"source":"oban","duration":1042,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:15:56.295 [info] {"source":"oban","duration":1020,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:15:56.755 [info] GET /media_profiles/1 23:15:56.755 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 23:15:56.755 [info] GET /sources/2/force_metadata_refresh 23:15:56.757 [debug] QUERY OK source="settings" db=0.7ms idle=461.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:56.757 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.4ms idle=1313.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:15:56.757 [debug] QUERY OK source="settings" db=0.2ms idle=323.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:56.758 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:15:56.758 [debug] QUERY OK source="sources" db=0.4ms queue=0.3ms idle=315.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."media_profile_id" = ?) ORDER BY s0."custom_name" [1] 23:15:56.759 [debug] QUERY OK source="settings" db=0.4ms idle=316.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:56.760 [debug] QUERY OK source="settings" db=0.4ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:56.761 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:56.758 [error] #PID<0.3781.0> running PinchflatWeb.Endpoint (connection #PID<0.3779.0>, stream id 1) terminated Server: pinchflat.chadbergeron.com:80 (http) Request: GET /sources/2/force_metadata_refresh ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3779.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_metadata_refresh", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 55500}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3781.0>, params: %{}, path_info: ["sources", "2", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "216.73.216.167"} ], request_path: "/sources/2/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKGAFTZdoyTwySwAAB0i"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3779.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_metadata_refresh", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 55500}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3779.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_metadata_refresh", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 55500}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3781.0>, params: %{}, path_info: ["sources", "2", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "21 (truncated) 23:15:56.764 [info] Sent 200 in 9ms 23:16:00.668 [info] {"source":"oban","duration":386,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:16:04.679 [info] GET /sources/2/sync_files_on_disk 23:16:04.680 [info] GET /sources/2/force_redownload 23:16:04.680 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=237.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:04.681 [debug] QUERY OK source="settings" db=0.3ms idle=238.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:04.681 [debug] QUERY OK source="settings" db=0.6ms idle=238.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:04.682 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:16:04.682 [debug] QUERY OK source="settings" db=0.5ms idle=239.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:04.682 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:16:04.682 [error] #PID<0.3785.0> running PinchflatWeb.Endpoint (connection #PID<0.3784.0>, stream id 1) terminated Server: pinchflat.chadbergeron.com:80 (http) Request: GET /sources/2/sync_files_on_disk ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3784.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/sync_files_on_disk", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 37852}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3785.0>, params: %{}, path_info: ["sources", "2", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "216.73.216.167"} ], request_path: "/sources/2/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKGAFw6u74FnyJgAAB2i"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3784.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/sync_files_on_disk", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 37852}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3784.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/sync_files_on_disk", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 37852}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3785.0>, params: %{}, path_info: ["sources", "2", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "216.73.216.167"} ], (truncated) 23:16:04.683 [error] #PID<0.3787.0> running PinchflatWeb.Endpoint (connection #PID<0.3786.0>, stream id 1) terminated Server: pinchflat.chadbergeron.com:80 (http) Request: GET /sources/2/force_redownload ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3786.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_redownload", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 37856}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3787.0>, params: %{}, path_info: ["sources", "2", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "216.73.216.167"} ], request_path: "/sources/2/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKGAFw67pUzG-aYAACUB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3786.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_redownload", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 37856}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3786.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_redownload", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 37856}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3787.0>, params: %{}, path_info: ["sources", "2", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "216.73.216.167"} ], request_path: "/ (truncated) 23:16:25.466 [info] GET /sources/2/media/18 23:16:25.466 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18", "source_id" => "2"} Pipelines: [:browser] 23:16:25.466 [info] GET /sources/2/media/17 23:16:25.466 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "17", "source_id" => "2"} Pipelines: [:browser] 23:16:25.467 [debug] QUERY OK source="media_items" db=0.4ms idle=1024.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [18] 23:16:25.467 [debug] QUERY OK source="media_items" db=0.5ms idle=1024.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [17] 23:16:25.468 [debug] QUERY OK source="tasks" db=0.7ms queue=0.1ms idle=1025.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [18] 23:16:25.469 [debug] QUERY OK source="tasks" db=0.8ms idle=977.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [17] 23:16:25.469 [debug] QUERY OK source="sources" db=1.3ms idle=1025.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:16:25.469 [debug] QUERY OK source="sources" db=1.1ms idle=1.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:16:25.470 [debug] QUERY OK source="oban_jobs" db=1.0ms idle=2.1ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?)) [266, 278, 287, 299] 23:16:25.471 [debug] QUERY OK source="oban_jobs" db=1.4ms idle=1.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?,?)) [265, 273, 277, 286, 298] 23:16:25.472 [debug] QUERY OK source="settings" db=0.2ms queue=0.4ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:25.472 [debug] QUERY OK source="settings" db=0.3ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:25.472 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:25.473 [debug] QUERY OK source="settings" db=0.2ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:25.474 [debug] QUERY OK source="settings" db=0.4ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:25.475 [debug] QUERY OK source="settings" db=1.4ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:25.475 [debug] QUERY OK source="media_profiles" db=0.3ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:16:25.477 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:16:25.479 [info] Sent 200 in 13ms 23:16:25.481 [info] Sent 200 in 15ms 23:16:26.297 [info] {"source":"oban","duration":1061,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:16:56.299 [info] {"source":"oban","duration":1125,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:17:00.669 [info] {"source":"oban","duration":244,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:17:23.895 [info] GET /sources/2/media/22/edit 23:17:23.895 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "22", "source_id" => "2"} Pipelines: [:browser] 23:17:23.895 [info] GET /sources/2/media/19 23:17:23.896 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "19", "source_id" => "2"} Pipelines: [:browser] 23:17:23.896 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1290.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [22] 23:17:23.897 [debug] QUERY OK source="media_items" db=0.3ms idle=454.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [19] 23:17:23.897 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=454.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:17:23.898 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=290.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:17:23.898 [debug] QUERY OK source="tasks" db=0.8ms idle=455.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [19] 23:17:23.898 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:17:23.899 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=2.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?)) [267, 279, 288, 300] 23:17:23.900 [debug] QUERY OK source="settings" db=0.3ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:17:23.900 [debug] QUERY OK source="settings" db=0.2ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:17:23.901 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:17:23.902 [debug] QUERY OK source="settings" db=0.2ms idle=3.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:17:23.903 [info] Sent 200 in 7ms 23:17:23.904 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:17:23.908 [info] Sent 200 in 13ms 23:17:26.301 [info] {"source":"oban","duration":1049,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:17:35.706 [info] GET /sources/2 23:17:35.706 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "2"} Pipelines: [:browser] 23:17:35.707 [debug] QUERY OK source="sources" db=0.2ms idle=264.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:17:35.708 [debug] QUERY OK source="media_profiles" db=0.3ms idle=265.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:17:35.709 [debug] QUERY OK source="tasks" db=0.6ms idle=265.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [2, "executing", "available", "scheduled", "retryable"] 23:17:35.709 [debug] QUERY OK source="oban_jobs" db=0.5ms idle=266.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [275] 23:17:35.710 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=79.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:17:35.711 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:17:35.712 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:17:35.715 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:17:35.716 [debug] QUERY OK source="media_items" db=0.5ms idle=5.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [2] 23:17:35.718 [debug] QUERY OK source="media_items" db=1.0ms queue=0.3ms idle=6.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 23:17:35.720 [debug] QUERY OK source="sources" db=0.2ms idle=8.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:17:35.721 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=8.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [2] 23:17:35.722 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=6.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 23:17:35.723 [debug] QUERY OK source="sources" db=0.4ms idle=6.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:17:35.724 [debug] QUERY OK source="media_items" db=0.3ms idle=5.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [2] 23:17:35.725 [debug] QUERY OK source="media_items" db=0.9ms idle=3.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 23:17:35.727 [info] Sent 200 in 20ms 23:17:56.303 [info] {"source":"oban","duration":1132,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:18:00.670 [info] {"source":"oban","duration":298,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:18:02.550 [info] GET /sources/2/force_download_pending 23:18:02.550 [debug] QUERY OK source="settings" db=0.2ms idle=1108.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:18:02.551 [debug] QUERY OK source="settings" db=0.2ms idle=1108.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:18:02.551 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:18:02.552 [error] #PID<0.3817.0> running PinchflatWeb.Endpoint (connection #PID<0.3816.0>, stream id 1) terminated Server: pinchflat.chadbergeron.com:80 (http) Request: GET /sources/2/force_download_pending ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3816.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_download_pending", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 35634}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3817.0>, params: %{}, path_info: ["sources", "2", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "216.73.216.167"} ], request_path: "/sources/2/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKGAMoBQAa50zLYAAB9C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3816.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_download_pending", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 35634}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3816.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_download_pending", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 35634}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3817.0>, params: %{}, path_info: ["sources", "2", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "21 (truncated) 23:18:04.476 [info] GET /sources/2/media/20/edit 23:18:04.477 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "20", "source_id" => "2"} Pipelines: [:browser] 23:18:04.477 [info] GET /sources/2/media/17/edit 23:18:04.477 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "17", "source_id" => "2"} Pipelines: [:browser] 23:18:04.478 [debug] QUERY OK source="media_items" db=0.6ms idle=1035.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [20] 23:18:04.478 [debug] QUERY OK source="media_items" db=0.6ms idle=792.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [17] 23:18:04.479 [debug] QUERY OK source="settings" db=0.3ms idle=36.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:18:04.479 [debug] QUERY OK source="settings" db=0.2ms idle=36.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:18:04.479 [debug] QUERY OK source="settings" db=0.2ms idle=36.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:18:04.480 [debug] QUERY OK source="settings" db=0.2ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:18:04.481 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:18:04.481 [debug] QUERY OK source="settings" db=0.5ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:18:04.483 [info] Sent 200 in 5ms 23:18:04.483 [info] Sent 200 in 6ms 23:18:26.305 [info] {"source":"oban","duration":1492,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:18:56.307 [info] {"source":"oban","duration":1120,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:19:00.671 [info] {"source":"oban","duration":295,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:19:05.243 [info] GET /sources/2/media/22/force_download 23:19:05.244 [debug] QUERY OK source="settings" db=0.2ms idle=1441.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:05.245 [debug] QUERY OK source="settings" db=0.2ms idle=802.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:05.245 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:19:05.245 [error] #PID<0.3828.0> running PinchflatWeb.Endpoint (connection #PID<0.3827.0>, stream id 1) terminated Server: pinchflat.chadbergeron.com:80 (http) Request: GET /sources/2/media/22/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/22/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3827.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/22/force_download", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 54010}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3828.0>, params: %{}, path_info: ["sources", "2", "media", "22", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "216.73.216.167"} ], request_path: "/sources/2/media/22/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKGAQRkksU0p2GAAAB_i"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3827.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/22/force_download", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 54010}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/22/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3827.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/22/force_download", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 54010}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3828.0>, params: %{}, path_info: ["sources", "2", "media", "22", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, (truncated) 23:19:11.564 [info] GET /sources/opml.xml 23:19:11.565 [debug] Processing with PinchflatWeb.Podcasts.PodcastController.opml_feed/2 Parameters: %{"route_token" => "93b8abff-d88d-4efb-bb9b-bda1cf2a3a0b"} Pipelines: [:maybe_basic_auth, :token_protected_route] 23:19:11.565 [debug] QUERY OK source="settings" db=0.5ms idle=1122.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:11.566 [debug] QUERY OK source="sources" db=0.1ms queue=0.2ms idle=1123.7ms SELECT s0."custom_name", s0."uuid" FROM "sources" AS s0 WHERE (s0."marked_for_deletion_at" IS NULL) ORDER BY s0."custom_name" [] 23:19:11.566 [info] Sent 200 in 1ms 23:19:25.820 [info] GET /sources/2/media/20/force_download 23:19:25.821 [debug] QUERY OK source="settings" db=0.3ms idle=1378.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:25.821 [debug] QUERY OK source="settings" db=0.2ms idle=1378.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:25.821 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:19:25.822 [error] #PID<0.3832.0> running PinchflatWeb.Endpoint (connection #PID<0.3831.0>, stream id 1) terminated Server: pinchflat.chadbergeron.com:80 (http) Request: GET /sources/2/media/20/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/20/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3831.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/20/force_download", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 59246}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3832.0>, params: %{}, path_info: ["sources", "2", "media", "20", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "216.73.216.167"} ], request_path: "/sources/2/media/20/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKGAReOXPsvsP3sAACBC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3831.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/20/force_download", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 59246}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/20/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3831.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/20/force_download", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 59246}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3832.0>, params: %{}, path_info: ["sources", "2", "media", "20", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, (truncated) 23:19:26.309 [info] {"source":"oban","duration":1464,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:19:38.777 [info] GET /sources/2/media/22 23:19:38.777 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "22", "prevent_download" => "true", "source_id" => "2"} Pipelines: [:browser] 23:19:38.778 [debug] QUERY OK source="media_items" db=0.3ms idle=1335.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [22] 23:19:38.779 [debug] QUERY OK source="tasks" db=0.3ms idle=1336.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [22] 23:19:38.779 [debug] QUERY OK source="sources" db=0.6ms idle=1336.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:19:38.780 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=1337.7ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?)) [270, 282, 291, 303] 23:19:38.781 [debug] QUERY OK source="settings" db=0.2ms idle=910.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:38.782 [debug] QUERY OK source="settings" db=0.2ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:38.783 [debug] QUERY OK source="settings" db=0.2ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:38.784 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:19:38.788 [info] Sent 200 in 11ms 23:19:56.311 [info] {"source":"oban","duration":1327,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:20:00.672 [info] {"source":"oban","duration":427,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:20:26.313 [info] {"source":"oban","duration":1064,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:20:30.683 [info] GET /sources/2/media/20 23:20:30.683 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "20", "prevent_download" => "true", "source_id" => "2"} Pipelines: [:browser] 23:20:30.684 [debug] QUERY OK source="media_items" db=0.4ms idle=1241.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [20] 23:20:30.685 [debug] QUERY OK source="tasks" db=0.2ms idle=712.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [20] 23:20:30.685 [debug] QUERY OK source="sources" db=0.5ms idle=242.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:20:30.686 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=243.7ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?)) [268, 280, 289, 301] 23:20:30.687 [debug] QUERY OK source="settings" db=0.3ms idle=244.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:30.688 [debug] QUERY OK source="settings" db=0.2ms idle=3.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:30.689 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:30.690 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:20:30.694 [info] Sent 200 in 11ms 23:20:47.565 [info] GET /sources/2/media/19/edit 23:20:47.565 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "19", "source_id" => "2"} Pipelines: [:browser] 23:20:47.565 [info] GET /sources/2/media/18/edit 23:20:47.566 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "18", "source_id" => "2"} Pipelines: [:browser] 23:20:47.566 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1123.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [19] 23:20:47.567 [debug] QUERY OK source="media_items" db=0.6ms idle=1123.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [18] 23:20:47.567 [debug] QUERY OK source="settings" db=0.3ms idle=1124.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:47.567 [debug] QUERY OK source="settings" db=0.2ms idle=1125.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:47.568 [debug] QUERY OK source="settings" db=0.1ms idle=561.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:47.568 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:47.569 [debug] QUERY OK source="settings" db=0.2ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:47.569 [debug] QUERY OK source="settings" db=0.6ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:47.571 [info] Sent 200 in 5ms 23:20:47.572 [info] Sent 200 in 6ms 23:20:56.315 [info] {"source":"oban","duration":1394,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:20:56.852 [info] GET /sources/2/media/16 23:20:56.853 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16", "source_id" => "2"} Pipelines: [:browser] 23:20:56.853 [info] GET /sources/2/media/32/edit 23:20:56.853 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "32", "source_id" => "2"} Pipelines: [:browser] 23:20:56.854 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=1411.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [16] 23:20:56.854 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1411.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [32] 23:20:56.855 [debug] QUERY OK source="tasks" db=0.7ms queue=0.1ms idle=1412.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [16] 23:20:56.856 [debug] QUERY OK source="settings" db=0.8ms idle=539.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:56.856 [debug] QUERY OK source="sources" db=1.1ms idle=831.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:20:56.856 [debug] QUERY OK source="settings" db=0.2ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:56.857 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=2.1ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?,?)) [264, 272, 276, 285, 297] 23:20:56.858 [debug] QUERY OK source="settings" db=0.3ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:56.859 [debug] QUERY OK source="settings" db=1.3ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:56.859 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:56.860 [info] Sent 200 in 7ms 23:20:56.861 [debug] QUERY OK source="settings" db=0.8ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:56.863 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:20:56.867 [info] Sent 200 in 14ms 23:21:00.673 [info] {"source":"oban","duration":295,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:21:26.317 [info] {"source":"oban","duration":1032,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:21:50.360 [info] GET /sources/new 23:21:50.361 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "2"} Pipelines: [:browser] 23:21:50.362 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1919.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:21:50.363 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=1920.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 23:21:50.363 [debug] QUERY OK source="settings" db=0.2ms idle=1242.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:21:50.364 [debug] QUERY OK source="settings" db=0.4ms idle=922.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:21:50.365 [debug] QUERY OK source="settings" db=0.2ms idle=241.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:21:50.366 [debug] QUERY OK source="settings" db=0.3ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:21:50.367 [debug] QUERY OK source="settings" db=0.2ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:21:50.373 [info] Sent 200 in 12ms 23:21:56.319 [info] {"source":"oban","duration":1439,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:22:00.674 [info] {"source":"oban","duration":322,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:22:07.161 [info] GET /sources/2/media/16/edit 23:22:07.161 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "16", "source_id" => "2"} Pipelines: [:browser] 23:22:07.161 [info] GET /sources/2/media/23/edit 23:22:07.162 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "23", "source_id" => "2"} Pipelines: [:browser] 23:22:07.162 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1719.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [16] 23:22:07.163 [debug] QUERY OK source="media_items" db=0.4ms idle=1720.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [23] 23:22:07.163 [debug] QUERY OK source="settings" db=0.3ms idle=1007.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:07.163 [debug] QUERY OK source="settings" db=0.2ms idle=721.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:07.164 [debug] QUERY OK source="settings" db=0.2ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:07.164 [debug] QUERY OK source="settings" db=0.4ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:07.165 [debug] QUERY OK source="settings" db=0.5ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:07.165 [debug] QUERY OK source="settings" db=0.5ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:07.167 [info] Sent 200 in 6ms 23:22:07.167 [info] Sent 200 in 6ms 23:22:26.321 [info] {"source":"oban","duration":1462,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:22:30.600 [info] GET /sources/e9ec5abf-504f-4543-afe4-9a2ad6b49e62/feed.xml 23:22:30.600 [debug] Processing with PinchflatWeb.Podcasts.PodcastController.rss_feed/2 Parameters: %{"uuid" => "e9ec5abf-504f-4543-afe4-9a2ad6b49e62"} Pipelines: [:maybe_basic_auth] 23:22:30.601 [debug] QUERY OK source="sources" db=0.2ms queue=0.3ms idle=1158.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."uuid" = ?) ["e9ec5abf-504f-4543-afe4-9a2ad6b49e62"] 23:22:30.602 [debug] QUERY OK source="media_items" db=0.6ms queue=0.2ms idle=399.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? [2, 2000] 23:22:30.603 [debug] QUERY OK source="source_metadata" db=0.3ms queue=0.2ms idle=160.7ms SELECT s0."id", s0."metadata_filepath", s0."fanart_filepath", s0."poster_filepath", s0."banner_filepath", s0."source_id", s0."inserted_at", s0."updated_at", s0."source_id" FROM "source_metadata" AS s0 WHERE (s0."source_id" = ?) [2] 23:22:30.603 [info] Sent 200 in 3ms 23:22:44.538 [info] GET /sources/2/media/21/edit 23:22:44.538 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "21", "source_id" => "2"} Pipelines: [:browser] 23:22:44.538 [info] GET /sources/2/force_index 23:22:44.539 [debug] QUERY OK source="media_items" db=0.3ms idle=308.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [21] 23:22:44.539 [debug] QUERY OK source="settings" db=0.2ms idle=96.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:44.539 [debug] QUERY OK source="settings" db=0.2ms idle=97.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:44.540 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:22:44.540 [debug] QUERY OK source="settings" db=0.5ms idle=97.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:44.540 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=98.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:44.541 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:44.542 [info] Sent 200 in 3ms 23:22:44.540 [error] #PID<0.3880.0> running PinchflatWeb.Endpoint (connection #PID<0.3878.0>, stream id 1) terminated Server: pinchflat.chadbergeron.com:80 (http) Request: GET /sources/2/force_index ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3878.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_index", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 45310}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3880.0>, params: %{}, path_info: ["sources", "2", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "216.73.216.167"} ], request_path: "/sources/2/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKGAdCgnOpiUtKYAAAcj"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3878.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_index", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 45310}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3878.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_index", host: "pinchflat.chadbergeron.com", peer: {{192, 168, 64, 12}, 45310}, bindings: %{}, sock: {{192, 168, 64, 29}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.chadbergeron.com", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.167", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "216.73.216.167" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.chadbergeron.com", method: "GET", owner: #PID<0.3880.0>, params: %{}, path_info: ["sources", "2", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.chadbergeron.com", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 64, 12}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.chadbergeron.com"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.167"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "216.73.216.167"} ], request_path: "/sources/2/force_index", resp_body: (truncated) 23:22:56.323 [info] {"source":"oban","duration":949,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:23:00.675 [info] {"source":"oban","duration":325,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 23:23:26.325 [info] {"source":"oban","duration":849,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0}