boolinate video/audio

This commit is contained in:
Shish
2020-10-27 00:49:50 +00:00
parent ed735e17be
commit ee7a4f178c
3 changed files with 32 additions and 29 deletions

View File

@@ -136,15 +136,9 @@ class Upgrade extends Extension
if ($this->get_version("db_version") < 17) {
log_info("upgrade", "Adding media information columns to images table");
$database->execute($database->scoreql_to_sql(
"ALTER TABLE images ADD COLUMN lossless SCORE_BOOL NULL"
));
$database->execute($database->scoreql_to_sql(
"ALTER TABLE images ADD COLUMN video SCORE_BOOL NULL"
));
$database->execute($database->scoreql_to_sql(
"ALTER TABLE images ADD COLUMN audio SCORE_BOOL NULL"
));
$database->execute("ALTER TABLE images ADD COLUMN lossless BOOLEAN NULL");
$database->execute("ALTER TABLE images ADD COLUMN video BOOLEAN NULL");
$database->execute("ALTER TABLE images ADD COLUMN audio BOOLEAN NULL");
$database->execute("ALTER TABLE images ADD COLUMN length INTEGER NULL ");
log_info("upgrade", "Setting indexes for media columns");
@@ -170,22 +164,7 @@ class Upgrade extends Extension
$this->set_version("db_version", 17);
}
if ($this->get_version("db_version") < 18) {
log_info("upgrade", "Setting predictable media values for known file types");
if ($database->transaction) {
// Each of these commands could hit a lot of data, combining
// them into one big transaction would not be a good idea.
$database->commit();
}
$database->execute($database->scoreql_to_sql("UPDATE images SET lossless = SCORE_BOOL_Y, video = SCORE_BOOL_Y WHERE ext IN ('swf')"));
$database->execute($database->scoreql_to_sql("UPDATE images SET lossless = SCORE_BOOL_N, video = SCORE_BOOL_N, audio = SCORE_BOOL_Y WHERE ext IN ('mp3')"));
$database->execute($database->scoreql_to_sql("UPDATE images SET lossless = SCORE_BOOL_N, video = SCORE_BOOL_N, audio = SCORE_BOOL_N WHERE ext IN ('jpg','jpeg')"));
$database->execute($database->scoreql_to_sql("UPDATE images SET lossless = SCORE_BOOL_Y, video = SCORE_BOOL_N, audio = SCORE_BOOL_N WHERE ext IN ('ico','ani','cur','png','svg')"));
$database->execute($database->scoreql_to_sql("UPDATE images SET lossless = SCORE_BOOL_Y, audio = SCORE_BOOL_N WHERE ext IN ('gif')"));
$database->execute($database->scoreql_to_sql("UPDATE images SET audio = SCORE_BOOL_N WHERE ext IN ('webp')"));
$database->execute($database->scoreql_to_sql("UPDATE images SET lossless = SCORE_BOOL_N, video = SCORE_BOOL_Y WHERE ext IN ('flv','mp4','m4v','ogv','webm')"));
$this->set_version("db_version", 18);
}
// 18 was populating data using an out of date format
if ($this->get_version("db_version") < 19) {
log_info("upgrade", "Adding MIME type column");
@@ -197,6 +176,30 @@ class Upgrade extends Extension
$this->set_version("db_version", 19);
}
if ($this->get_version("db_version") < 20) {
$database->standardise_boolean("images", "lossless");
$database->standardise_boolean("images", "video");
$database->standardise_boolean("images", "audio");
$this->set_version("db_version", 20);
}
if ($this->get_version("db_version") < 21) {
log_info("upgrade", "Setting predictable media values for known file types");
if ($database->transaction) {
// Each of these commands could hit a lot of data, combining
// them into one big transaction would not be a good idea.
$database->commit();
}
$database->execute("UPDATE images SET lossless = :t, video = :t WHERE ext IN ('swf')", ["t"=>true]);
$database->execute("UPDATE images SET lossless = :f, video = :f, audio = :t WHERE ext IN ('mp3')", ["t"=>true, "f"=>false]);
$database->execute("UPDATE images SET lossless = :f, video = :f, audio = :f WHERE ext IN ('jpg','jpeg')", ["f"=>false]);
$database->execute("UPDATE images SET lossless = :t, video = :f, audio = :f WHERE ext IN ('ico','ani','cur','png','svg')", ["t"=>true, "f"=>false]);
$database->execute("UPDATE images SET lossless = :t, audio = :f WHERE ext IN ('gif')", ["t"=>true, "f"=>false]);
$database->execute("UPDATE images SET audio = :f WHERE ext IN ('webp')", ["f"=>false]);
$database->execute("UPDATE images SET lossless = :f, video = :t WHERE ext IN ('flv','mp4','m4v','ogv','webm')", ["t"=>true, "f"=>false]);
$this->set_version("db_version", 21);
}
}
public function get_priority(): int