591cf27dc5
A pack that hard-failed at import blacklisted its release, put every episode back to missing and left the season reading 0/10, with nothing on screen joining the two. Every fact was already recorded. The blacklist now carries its reason out of the database: deck rows read `blacklisted · size` instead of a bare `blacklisted`, and say whether the policy turned the file down — relaxable for this title — or the release itself failed, which a retry only repeats. A season whose pack was abandoned says so on its row and above its deck, with the release name, when it failed, and what it failed on. A row the blacklist no longer answers for keeps rendering and claims no reason. Two defects from the integration review of #211 sit in the same code and are fixed here: a waived row threw away the rule it now carries and read a bare `below policy`, and the empty-eligible count called every waived row force-grabbable, since #211 gave those rows the rule `overridable` reads. Verified against a real browser: series detail, both season decks and their buckets, at 1280 and 390 px. Refs #227, #211
166 lines
3.7 KiB
JSON
166 lines
3.7 KiB
JSON
{
|
|
"db_name": "SQLite",
|
|
"query": "SELECT r.id AS \"id!: i64\", r.indexer_id AS \"indexer_id!: i64\", r.guid AS \"guid!: String\", r.name AS \"name!: String\", r.size AS \"size!: i64\", r.seeders, r.publish_date, r.download_url AS \"download_url!: String\", r.parsed AS \"parsed!: serde_json::Value\", r.score, r.verdict, r.rejected_rule, NULL AS \"blacklist_reason?: String\" FROM releases r JOIN movie_releases mr ON mr.release_id = r.id WHERE mr.movie_id = ? ORDER BY CASE r.verdict WHEN 'eligible' THEN 0 WHEN 'waived' THEN 1 ELSE 2 END, r.score DESC, r.id",
|
|
"describe": {
|
|
"columns": [
|
|
{
|
|
"name": "id!: i64",
|
|
"ordinal": 0,
|
|
"type_info": "Integer",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "releases",
|
|
"name": "id"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "indexer_id!: i64",
|
|
"ordinal": 1,
|
|
"type_info": "Integer",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "releases",
|
|
"name": "indexer_id"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "guid!: String",
|
|
"ordinal": 2,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "releases",
|
|
"name": "guid"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "name!: String",
|
|
"ordinal": 3,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "releases",
|
|
"name": "name"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "size!: i64",
|
|
"ordinal": 4,
|
|
"type_info": "Integer",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "releases",
|
|
"name": "size"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "seeders",
|
|
"ordinal": 5,
|
|
"type_info": "Integer",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "releases",
|
|
"name": "seeders"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "publish_date",
|
|
"ordinal": 6,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "releases",
|
|
"name": "publish_date"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "download_url!: String",
|
|
"ordinal": 7,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "releases",
|
|
"name": "download_url"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "parsed!: serde_json::Value",
|
|
"ordinal": 8,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "releases",
|
|
"name": "parsed"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "score",
|
|
"ordinal": 9,
|
|
"type_info": "Float",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "releases",
|
|
"name": "score"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "verdict",
|
|
"ordinal": 10,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "releases",
|
|
"name": "verdict"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "rejected_rule",
|
|
"ordinal": 11,
|
|
"type_info": "Text",
|
|
"origin": {
|
|
"Table": {
|
|
"table": "releases",
|
|
"name": "rejected_rule"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "blacklist_reason?: String",
|
|
"ordinal": 12,
|
|
"type_info": "Null",
|
|
"origin": "Expression"
|
|
}
|
|
],
|
|
"parameters": {
|
|
"Right": 1
|
|
},
|
|
"nullable": [
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
true,
|
|
true,
|
|
false,
|
|
false,
|
|
true,
|
|
true,
|
|
true,
|
|
true
|
|
]
|
|
},
|
|
"hash": "7aa154a1bd54ec84412a1be6d7db51bb65ce9702e3bb1d26b51b93c5fdefa79f"
|
|
}
|