9df120b92a
One feed pass now serves films and episodes alike. A single-episode release grabs its open episode directly; a season pack only grabs when season_grab_mode allows packs for that season (§14, #117), and when it wins, the singles stand down. Blocked series keep matching RSS (§6.3) and nothing here touches the targeted-search backoff (§6.2).
51 lines
2.1 KiB
JSON
51 lines
2.1 KiB
JSON
{
|
|
"db_name": "SQLite",
|
|
"query": "\n SELECT e.id AS \"id!: i64\",\n e.number AS \"episode!: i64\",\n se.id AS \"season_id!: i64\",\n se.number AS \"season!: i64\",\n s.tmdb_id AS \"series_tmdb_id!: i64\",\n s.title AS \"series_title!: String\"\n FROM episodes e\n JOIN seasons se ON se.id = e.season_id\n JOIN series s ON s.id = se.series_id\n WHERE e.wanted = 1\n AND NOT EXISTS (\n SELECT 1 FROM media_files f\n WHERE f.owner_kind = 'episode' AND f.owner_id = e.id\n )\n AND NOT EXISTS (\n SELECT 1 FROM grabs g\n WHERE g.target_kind = 'episode' AND g.target_id = e.id\n AND g.state IN ('sent', 'downloaded', 'imported')\n )\n AND NOT EXISTS (\n SELECT 1 FROM grabs g\n WHERE g.target_kind = 'season' AND g.target_id = se.id\n AND g.state IN ('sent', 'downloaded', 'imported')\n )\n ORDER BY e.id\n ",
|
|
"describe": {
|
|
"columns": [
|
|
{
|
|
"name": "id!: i64",
|
|
"ordinal": 0,
|
|
"type_info": "Integer"
|
|
},
|
|
{
|
|
"name": "episode!: i64",
|
|
"ordinal": 1,
|
|
"type_info": "Integer"
|
|
},
|
|
{
|
|
"name": "season_id!: i64",
|
|
"ordinal": 2,
|
|
"type_info": "Integer"
|
|
},
|
|
{
|
|
"name": "season!: i64",
|
|
"ordinal": 3,
|
|
"type_info": "Integer"
|
|
},
|
|
{
|
|
"name": "series_tmdb_id!: i64",
|
|
"ordinal": 4,
|
|
"type_info": "Integer"
|
|
},
|
|
{
|
|
"name": "series_title!: String",
|
|
"ordinal": 5,
|
|
"type_info": "Text"
|
|
}
|
|
],
|
|
"parameters": {
|
|
"Right": 0
|
|
},
|
|
"nullable": [
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false
|
|
]
|
|
},
|
|
"hash": "90799bcbc272af8890296ca4f2d90843a8bc71c820b56847e0a86a9497f03952"
|
|
}
|