feat: configure cue points analysis per track type
This commit is contained in:
parent
3a9ca109c3
commit
f5e46c6f3d
|
@ -7,7 +7,7 @@ import pika
|
|||
from loguru import logger
|
||||
|
||||
from .config import Config
|
||||
from .pipeline import Pipeline, PipelineStatus
|
||||
from .pipeline import Pipeline, PipelineOptions, PipelineStatus
|
||||
from .status_reporter import StatusReporter
|
||||
|
||||
EXCHANGE = "airtime-uploads"
|
||||
|
@ -111,17 +111,19 @@ class MessageListener:
|
|||
body = body.decode()
|
||||
except (UnicodeDecodeError, AttributeError):
|
||||
pass
|
||||
msg_dict = json.loads(body)
|
||||
msg_dict: dict = json.loads(body)
|
||||
|
||||
file_id = msg_dict["file_id"]
|
||||
audio_file_path = msg_dict["tmp_file_path"]
|
||||
original_filename = msg_dict["original_filename"]
|
||||
import_directory = msg_dict["import_directory"]
|
||||
options = msg_dict.get("options", {})
|
||||
|
||||
metadata = MessageListener.spawn_analyzer_process(
|
||||
audio_file_path,
|
||||
import_directory,
|
||||
original_filename,
|
||||
options,
|
||||
)
|
||||
|
||||
callback_url = f"{self.config.general.public_url}/rest/media/{file_id}"
|
||||
|
@ -161,6 +163,7 @@ class MessageListener:
|
|||
audio_file_path,
|
||||
import_directory,
|
||||
original_filename,
|
||||
options: dict,
|
||||
):
|
||||
metadata = {}
|
||||
|
||||
|
@ -171,6 +174,7 @@ class MessageListener:
|
|||
audio_file_path,
|
||||
import_directory,
|
||||
original_filename,
|
||||
PipelineOptions(**options),
|
||||
)
|
||||
metadata = queue.get()
|
||||
except Exception as exception:
|
||||
|
|
|
@ -1 +1 @@
|
|||
from .pipeline import Pipeline, PipelineStatus
|
||||
from .pipeline import Pipeline, PipelineOptions, PipelineStatus
|
||||
|
|
|
@ -3,6 +3,7 @@ from queue import Queue
|
|||
from typing import Any, Dict, Protocol
|
||||
|
||||
from loguru import logger
|
||||
from pydantic import BaseModel
|
||||
|
||||
from .analyze_cuepoint import analyze_cuepoint, analyze_duration
|
||||
from .analyze_metadata import analyze_metadata
|
||||
|
@ -23,6 +24,10 @@ class PipelineStatus(int, Enum):
|
|||
FAILED = 2
|
||||
|
||||
|
||||
class PipelineOptions(BaseModel):
|
||||
analyze_cue_points: bool = True
|
||||
|
||||
|
||||
class Pipeline:
|
||||
"""Analyzes and imports an audio file into the Airtime library.
|
||||
|
||||
|
@ -33,10 +38,11 @@ class Pipeline:
|
|||
|
||||
@staticmethod
|
||||
def run_analysis(
|
||||
queue,
|
||||
audio_file_path,
|
||||
import_directory,
|
||||
original_filename,
|
||||
queue: Queue,
|
||||
audio_file_path: str,
|
||||
import_directory: str,
|
||||
original_filename: str,
|
||||
options: PipelineOptions,
|
||||
):
|
||||
"""Analyze and import an audio file, and put all extracted metadata into queue.
|
||||
|
||||
|
@ -78,6 +84,7 @@ class Pipeline:
|
|||
metadata = {}
|
||||
metadata = analyze_metadata(audio_file_path, metadata)
|
||||
metadata = analyze_duration(audio_file_path, metadata)
|
||||
if options.analyze_cue_points:
|
||||
metadata = analyze_cuepoint(audio_file_path, metadata)
|
||||
metadata = analyze_replaygain(audio_file_path, metadata)
|
||||
metadata = analyze_playability(audio_file_path, metadata)
|
||||
|
|
|
@ -4,7 +4,7 @@ from queue import Queue
|
|||
|
||||
import pytest
|
||||
|
||||
from libretime_analyzer.pipeline import Pipeline
|
||||
from libretime_analyzer.pipeline import Pipeline, PipelineOptions
|
||||
|
||||
from ..conftest import AUDIO_FILENAME, AUDIO_IMPORT_DEST
|
||||
|
||||
|
@ -16,6 +16,7 @@ def test_run_analysis(src_dir: Path, dest_dir: Path):
|
|||
str(src_dir / AUDIO_FILENAME),
|
||||
str(dest_dir),
|
||||
AUDIO_FILENAME,
|
||||
PipelineOptions(),
|
||||
)
|
||||
metadata = queue.get()
|
||||
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
# pylint: disable=invalid-name
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
from ._migrations import legacy_migration_factory
|
||||
|
||||
UP = """
|
||||
alter table "cc_track_types" add column "analyze_cue_points" boolean default 't' not null;
|
||||
"""
|
||||
|
||||
DOWN = """
|
||||
alter table "cc_track_types" drop column if exists "analyze_cue_points";
|
||||
"""
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("legacy", "0043_remove_cors_preference"),
|
||||
]
|
||||
operations = [
|
||||
migrations.RunPython(
|
||||
code=legacy_migration_factory(
|
||||
target="44",
|
||||
sql=UP,
|
||||
)
|
||||
)
|
||||
]
|
|
@ -1,2 +1,2 @@
|
|||
# The schema version is defined using the migration file prefix number
|
||||
LEGACY_SCHEMA_VERSION = "43"
|
||||
LEGACY_SCHEMA_VERSION = "44"
|
||||
|
|
|
@ -95,6 +95,7 @@ CREATE TABLE "cc_track_types"
|
|||
"visibility" BOOLEAN DEFAULT 't' NOT NULL,
|
||||
"type_name" VARCHAR(64) DEFAULT '' NOT NULL,
|
||||
"description" VARCHAR(255) DEFAULT '' NOT NULL,
|
||||
"analyze_cue_points" BOOLEAN DEFAULT 't' NOT NULL,
|
||||
PRIMARY KEY ("id"),
|
||||
CONSTRAINT "cc_track_types_id_idx" UNIQUE ("id"),
|
||||
CONSTRAINT "cc_track_types_code_idx" UNIQUE ("code")
|
||||
|
|
|
@ -16,6 +16,12 @@ class Library(models.Model):
|
|||
db_column="visibility",
|
||||
)
|
||||
|
||||
analyze_cue_points = models.BooleanField(
|
||||
blank=True,
|
||||
default=True,
|
||||
db_column="analyze_cue_points",
|
||||
)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = "cc_track_types"
|
||||
|
|
|
@ -5611,6 +5611,8 @@ components:
|
|||
maxLength: 255
|
||||
enabled:
|
||||
type: boolean
|
||||
analyze_cue_points:
|
||||
type: boolean
|
||||
required:
|
||||
- code
|
||||
- id
|
||||
|
@ -5992,6 +5994,8 @@ components:
|
|||
maxLength: 255
|
||||
enabled:
|
||||
type: boolean
|
||||
analyze_cue_points:
|
||||
type: boolean
|
||||
PatchedListenerCount:
|
||||
type: object
|
||||
properties:
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
"js/airtime/showbuilder/main_builder.js": "6db47cc75cb5072b09431fbd6c90b89f",
|
||||
"js/airtime/showbuilder/tabs.js": "a0b5284afde950a6f32c7e9e75550690",
|
||||
"js/airtime/status/status.js": "f8c99b7b30e66c9127470bc8c01fb4b1",
|
||||
"js/airtime/tracktype/tracktype.js": "6f6107b8e628fe132617795ddb780544",
|
||||
"js/airtime/tracktype/tracktype.js": "cca00731e212727908bec54f21d4be58",
|
||||
"js/airtime/user/user.js": "58b9a9951aca48bbed1ad080aa318080",
|
||||
"js/airtime/utilities/utilities.js": "ef59f38fbef5a7807c9fe266c58e7a17",
|
||||
"js/airtime/widgets/table-example.js": "0aa2d9c528ee2d3fdeca997c7e93bdee",
|
||||
|
|
|
@ -52,6 +52,7 @@ class TracktypeController extends Zend_Controller_Action
|
|||
$tracktype->setTypeName($formData['type_name']);
|
||||
$tracktype->setDescription($formData['description']);
|
||||
$tracktype->setVisibility($formData['visibility']);
|
||||
$tracktype->setAnalyzeCuePoints($formData['analyze_cue_points']);
|
||||
$tracktype->save();
|
||||
|
||||
$form->reset();
|
||||
|
|
|
@ -53,6 +53,12 @@ class Application_Form_AddTracktype extends Zend_Form
|
|||
$visibility->setRequired(true);
|
||||
$this->addElement($visibility);
|
||||
|
||||
$analyze_cue_points = new Zend_Form_Element_Checkbox('analyze_cue_points');
|
||||
$analyze_cue_points->setLabel(_('Analyze cue points:'));
|
||||
$analyze_cue_points->setAttrib('checked', true);
|
||||
$analyze_cue_points->setRequired(true);
|
||||
$this->addElement($analyze_cue_points);
|
||||
|
||||
$saveBtn = new Zend_Form_Element_Button('save_tracktype');
|
||||
$saveBtn->setAttrib('class', 'btn right-floated');
|
||||
$saveBtn->setIgnore(true);
|
||||
|
|
|
@ -92,7 +92,8 @@ class Application_Model_RabbitMq
|
|||
$tmpFilePath,
|
||||
$importedStorageDirectory,
|
||||
$originalFilename,
|
||||
$fileId
|
||||
$fileId,
|
||||
$fileTrackTypeId
|
||||
) {
|
||||
$config = Config::getConfig();
|
||||
|
||||
|
@ -114,6 +115,15 @@ class Application_Model_RabbitMq
|
|||
$data['import_directory'] = $importedStorageDirectory;
|
||||
$data['original_filename'] = $originalFilename;
|
||||
|
||||
$options = [];
|
||||
|
||||
if ($fileTrackTypeId) {
|
||||
$fileTrackType = new Application_Model_Tracktype($fileTrackTypeId);
|
||||
$options['analyze_cue_points'] = $fileTrackType->getAnalyzeCuePoints();
|
||||
}
|
||||
|
||||
$data['options'] = $options;
|
||||
|
||||
$jsonData = json_encode($data);
|
||||
// self::sendMessage($exchange, 'topic', false, $jsonData, 'airtime-uploads');
|
||||
|
||||
|
|
|
@ -46,6 +46,12 @@ class Application_Model_Tracktype
|
|||
$tracktype->setDbVisibility($visibility);
|
||||
}
|
||||
|
||||
public function setAnalyzeCuePoints($value)
|
||||
{
|
||||
$tracktype = $this->_tracktypeInstance;
|
||||
$tracktype->setDbAnalyzeCuePoints($value);
|
||||
}
|
||||
|
||||
public function getCode()
|
||||
{
|
||||
$tracktype = $this->_tracktypeInstance;
|
||||
|
@ -74,6 +80,13 @@ class Application_Model_Tracktype
|
|||
return $tracktype->getDbVisibility();
|
||||
}
|
||||
|
||||
public function getAnalyzeCuePoints()
|
||||
{
|
||||
$tracktype = $this->_tracktypeInstance;
|
||||
|
||||
return $tracktype->getDbAnalyzeCuePoints();
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
$this->_tracktypeInstance->save();
|
||||
|
@ -162,7 +175,7 @@ class Application_Model_Tracktype
|
|||
public static function getTracktypeData($id)
|
||||
{
|
||||
$sql = <<<'SQL'
|
||||
SELECT code, type_name, description, visibility, id
|
||||
SELECT code, type_name, description, visibility, id, analyze_cue_points
|
||||
FROM cc_track_types
|
||||
WHERE id = :id
|
||||
SQL;
|
||||
|
|
|
@ -170,9 +170,10 @@ class CcFiles extends BaseCcFiles
|
|||
|
||||
Application_Service_MediaService::importFileToLibrary(
|
||||
$file->getPrimaryKey(),
|
||||
$filePath,
|
||||
$originalFilename,
|
||||
self::getOwnerId(),
|
||||
$file->getDbTrackTypeId(),
|
||||
$originalFilename,
|
||||
$filePath,
|
||||
$copyFile
|
||||
);
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ class CcTracktypesTableMap extends TableMap
|
|||
$this->addColumn('visibility', 'DbVisibility', 'BOOLEAN', true, null, true);
|
||||
$this->addColumn('type_name', 'DbTypeName', 'VARCHAR', true, 64, '');
|
||||
$this->addColumn('description', 'DbDescription', 'VARCHAR', true, 255, '');
|
||||
$this->addColumn('analyze_cue_points', 'DbAnalyzeCuePoints', 'BOOLEAN', true, null, true);
|
||||
// validators
|
||||
} // initialize()
|
||||
|
||||
|
|
|
@ -63,6 +63,13 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
*/
|
||||
protected $description;
|
||||
|
||||
/**
|
||||
* The value for the analyze_cue_points field.
|
||||
* Note: this column has a database default value of: true
|
||||
* @var boolean
|
||||
*/
|
||||
protected $analyze_cue_points;
|
||||
|
||||
/**
|
||||
* @var PropelObjectCollection|CcFiles[] Collection to store aggregation of CcFiles objects.
|
||||
*/
|
||||
|
@ -107,6 +114,7 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
$this->visibility = true;
|
||||
$this->type_name = '';
|
||||
$this->description = '';
|
||||
$this->analyze_cue_points = true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -174,6 +182,17 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
return $this->description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [analyze_cue_points] column value.
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function getDbAnalyzeCuePoints()
|
||||
{
|
||||
|
||||
return $this->analyze_cue_points;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the value of [id] column.
|
||||
*
|
||||
|
@ -287,6 +306,35 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
return $this;
|
||||
} // setDbDescription()
|
||||
|
||||
/**
|
||||
* Sets the value of the [analyze_cue_points] column.
|
||||
* Non-boolean arguments are converted using the following rules:
|
||||
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
|
||||
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
|
||||
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
|
||||
*
|
||||
* @param boolean|integer|string $v The new value
|
||||
* @return CcTracktypes The current object (for fluent API support)
|
||||
*/
|
||||
public function setDbAnalyzeCuePoints($v)
|
||||
{
|
||||
if ($v !== null) {
|
||||
if (is_string($v)) {
|
||||
$v = in_array(strtolower($v), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
|
||||
} else {
|
||||
$v = (boolean) $v;
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->analyze_cue_points !== $v) {
|
||||
$this->analyze_cue_points = $v;
|
||||
$this->modifiedColumns[] = CcTracktypesPeer::ANALYZE_CUE_POINTS;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setDbAnalyzeCuePoints()
|
||||
|
||||
/**
|
||||
* Indicates whether the columns in this object are only set to default values.
|
||||
*
|
||||
|
@ -313,6 +361,10 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
return false;
|
||||
}
|
||||
|
||||
if ($this->analyze_cue_points !== true) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// otherwise, everything was equal, so return true
|
||||
return true;
|
||||
} // hasOnlyDefaultValues()
|
||||
|
@ -340,6 +392,7 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
$this->visibility = ($row[$startcol + 2] !== null) ? (boolean) $row[$startcol + 2] : null;
|
||||
$this->type_name = ($row[$startcol + 3] !== null) ? (string) $row[$startcol + 3] : null;
|
||||
$this->description = ($row[$startcol + 4] !== null) ? (string) $row[$startcol + 4] : null;
|
||||
$this->analyze_cue_points = ($row[$startcol + 5] !== null) ? (boolean) $row[$startcol + 5] : null;
|
||||
$this->resetModified();
|
||||
|
||||
$this->setNew(false);
|
||||
|
@ -349,7 +402,7 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
}
|
||||
$this->postHydrate($row, $startcol, $rehydrate);
|
||||
|
||||
return $startcol + 5; // 5 = CcTracktypesPeer::NUM_HYDRATE_COLUMNS.
|
||||
return $startcol + 6; // 6 = CcTracktypesPeer::NUM_HYDRATE_COLUMNS.
|
||||
|
||||
} catch (Exception $e) {
|
||||
throw new PropelException("Error populating CcTracktypes object", $e);
|
||||
|
@ -606,6 +659,9 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
if ($this->isColumnModified(CcTracktypesPeer::DESCRIPTION)) {
|
||||
$modifiedColumns[':p' . $index++] = '"description"';
|
||||
}
|
||||
if ($this->isColumnModified(CcTracktypesPeer::ANALYZE_CUE_POINTS)) {
|
||||
$modifiedColumns[':p' . $index++] = '"analyze_cue_points"';
|
||||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'INSERT INTO "cc_track_types" (%s) VALUES (%s)',
|
||||
|
@ -632,6 +688,9 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
case '"description"':
|
||||
$stmt->bindValue($identifier, $this->description, PDO::PARAM_STR);
|
||||
break;
|
||||
case '"analyze_cue_points"':
|
||||
$stmt->bindValue($identifier, $this->analyze_cue_points, PDO::PARAM_BOOL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
$stmt->execute();
|
||||
|
@ -782,6 +841,9 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
case 4:
|
||||
return $this->getDbDescription();
|
||||
break;
|
||||
case 5:
|
||||
return $this->getDbAnalyzeCuePoints();
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
break;
|
||||
|
@ -816,6 +878,7 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
$keys[2] => $this->getDbVisibility(),
|
||||
$keys[3] => $this->getDbTypeName(),
|
||||
$keys[4] => $this->getDbDescription(),
|
||||
$keys[5] => $this->getDbAnalyzeCuePoints(),
|
||||
);
|
||||
$virtualColumns = $this->virtualColumns;
|
||||
foreach ($virtualColumns as $key => $virtualColumn) {
|
||||
|
@ -875,6 +938,9 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
case 4:
|
||||
$this->setDbDescription($value);
|
||||
break;
|
||||
case 5:
|
||||
$this->setDbAnalyzeCuePoints($value);
|
||||
break;
|
||||
} // switch()
|
||||
}
|
||||
|
||||
|
@ -904,6 +970,7 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
if (array_key_exists($keys[2], $arr)) $this->setDbVisibility($arr[$keys[2]]);
|
||||
if (array_key_exists($keys[3], $arr)) $this->setDbTypeName($arr[$keys[3]]);
|
||||
if (array_key_exists($keys[4], $arr)) $this->setDbDescription($arr[$keys[4]]);
|
||||
if (array_key_exists($keys[5], $arr)) $this->setDbAnalyzeCuePoints($arr[$keys[5]]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -920,6 +987,7 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
if ($this->isColumnModified(CcTracktypesPeer::VISIBILITY)) $criteria->add(CcTracktypesPeer::VISIBILITY, $this->visibility);
|
||||
if ($this->isColumnModified(CcTracktypesPeer::TYPE_NAME)) $criteria->add(CcTracktypesPeer::TYPE_NAME, $this->type_name);
|
||||
if ($this->isColumnModified(CcTracktypesPeer::DESCRIPTION)) $criteria->add(CcTracktypesPeer::DESCRIPTION, $this->description);
|
||||
if ($this->isColumnModified(CcTracktypesPeer::ANALYZE_CUE_POINTS)) $criteria->add(CcTracktypesPeer::ANALYZE_CUE_POINTS, $this->analyze_cue_points);
|
||||
|
||||
return $criteria;
|
||||
}
|
||||
|
@ -987,6 +1055,7 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
$copyObj->setDbVisibility($this->getDbVisibility());
|
||||
$copyObj->setDbTypeName($this->getDbTypeName());
|
||||
$copyObj->setDbDescription($this->getDbDescription());
|
||||
$copyObj->setDbAnalyzeCuePoints($this->getDbAnalyzeCuePoints());
|
||||
|
||||
if ($deepCopy && !$this->startCopy) {
|
||||
// important: temporarily setNew(false) because this affects the behavior of
|
||||
|
@ -1352,6 +1421,7 @@ abstract class BaseCcTracktypes extends BaseObject implements Persistent
|
|||
$this->visibility = null;
|
||||
$this->type_name = null;
|
||||
$this->description = null;
|
||||
$this->analyze_cue_points = null;
|
||||
$this->alreadyInSave = false;
|
||||
$this->alreadyInValidation = false;
|
||||
$this->alreadyInClearAllReferencesDeep = false;
|
||||
|
|
|
@ -24,13 +24,13 @@ abstract class BaseCcTracktypesPeer
|
|||
const TM_CLASS = 'CcTracktypesTableMap';
|
||||
|
||||
/** The total number of columns. */
|
||||
const NUM_COLUMNS = 5;
|
||||
const NUM_COLUMNS = 6;
|
||||
|
||||
/** The number of lazy-loaded columns. */
|
||||
const NUM_LAZY_LOAD_COLUMNS = 0;
|
||||
|
||||
/** The number of columns to hydrate (NUM_COLUMNS - NUM_LAZY_LOAD_COLUMNS) */
|
||||
const NUM_HYDRATE_COLUMNS = 5;
|
||||
const NUM_HYDRATE_COLUMNS = 6;
|
||||
|
||||
/** the column name for the id field */
|
||||
const ID = 'cc_track_types.id';
|
||||
|
@ -47,6 +47,9 @@ abstract class BaseCcTracktypesPeer
|
|||
/** the column name for the description field */
|
||||
const DESCRIPTION = 'cc_track_types.description';
|
||||
|
||||
/** the column name for the analyze_cue_points field */
|
||||
const ANALYZE_CUE_POINTS = 'cc_track_types.analyze_cue_points';
|
||||
|
||||
/** The default string format for model objects of the related table **/
|
||||
const DEFAULT_STRING_FORMAT = 'YAML';
|
||||
|
||||
|
@ -66,12 +69,12 @@ abstract class BaseCcTracktypesPeer
|
|||
* e.g. CcTracktypesPeer::$fieldNames[CcTracktypesPeer::TYPE_PHPNAME][0] = 'Id'
|
||||
*/
|
||||
protected static $fieldNames = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId', 'DbCode', 'DbVisibility', 'DbTypeName', 'DbDescription', ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbCode', 'dbVisibility', 'dbTypeName', 'dbDescription', ),
|
||||
BasePeer::TYPE_COLNAME => array (CcTracktypesPeer::ID, CcTracktypesPeer::CODE, CcTracktypesPeer::VISIBILITY, CcTracktypesPeer::TYPE_NAME, CcTracktypesPeer::DESCRIPTION, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID', 'CODE', 'VISIBILITY', 'TYPE_NAME', 'DESCRIPTION', ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id', 'code', 'visibility', 'type_name', 'description', ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, )
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId', 'DbCode', 'DbVisibility', 'DbTypeName', 'DbDescription', 'DbAnalyzeCuePoints', ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbCode', 'dbVisibility', 'dbTypeName', 'dbDescription', 'dbAnalyzeCuePoints', ),
|
||||
BasePeer::TYPE_COLNAME => array (CcTracktypesPeer::ID, CcTracktypesPeer::CODE, CcTracktypesPeer::VISIBILITY, CcTracktypesPeer::TYPE_NAME, CcTracktypesPeer::DESCRIPTION, CcTracktypesPeer::ANALYZE_CUE_POINTS, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID', 'CODE', 'VISIBILITY', 'TYPE_NAME', 'DESCRIPTION', 'ANALYZE_CUE_POINTS', ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id', 'code', 'visibility', 'type_name', 'description', 'analyze_cue_points', ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, )
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -81,12 +84,12 @@ abstract class BaseCcTracktypesPeer
|
|||
* e.g. CcTracktypesPeer::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
|
||||
*/
|
||||
protected static $fieldKeys = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbCode' => 1, 'DbVisibility' => 2, 'DbTypeName' => 3, 'DbDescription' => 4, ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbCode' => 1, 'dbVisibility' => 2, 'dbTypeName' => 3, 'dbDescription' => 4, ),
|
||||
BasePeer::TYPE_COLNAME => array (CcTracktypesPeer::ID => 0, CcTracktypesPeer::CODE => 1, CcTracktypesPeer::VISIBILITY => 2, CcTracktypesPeer::TYPE_NAME => 3, CcTracktypesPeer::DESCRIPTION => 4, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'CODE' => 1, 'VISIBILITY' => 2, 'TYPE_NAME' => 3, 'DESCRIPTION' => 4, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'code' => 1, 'visibility' => 2, 'type_name' => 3, 'description' => 4, ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, )
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbCode' => 1, 'DbVisibility' => 2, 'DbTypeName' => 3, 'DbDescription' => 4, 'DbAnalyzeCuePoints' => 5, ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbCode' => 1, 'dbVisibility' => 2, 'dbTypeName' => 3, 'dbDescription' => 4, 'dbAnalyzeCuePoints' => 5, ),
|
||||
BasePeer::TYPE_COLNAME => array (CcTracktypesPeer::ID => 0, CcTracktypesPeer::CODE => 1, CcTracktypesPeer::VISIBILITY => 2, CcTracktypesPeer::TYPE_NAME => 3, CcTracktypesPeer::DESCRIPTION => 4, CcTracktypesPeer::ANALYZE_CUE_POINTS => 5, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'CODE' => 1, 'VISIBILITY' => 2, 'TYPE_NAME' => 3, 'DESCRIPTION' => 4, 'ANALYZE_CUE_POINTS' => 5, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'code' => 1, 'visibility' => 2, 'type_name' => 3, 'description' => 4, 'analyze_cue_points' => 5, ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, )
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -165,12 +168,14 @@ abstract class BaseCcTracktypesPeer
|
|||
$criteria->addSelectColumn(CcTracktypesPeer::VISIBILITY);
|
||||
$criteria->addSelectColumn(CcTracktypesPeer::TYPE_NAME);
|
||||
$criteria->addSelectColumn(CcTracktypesPeer::DESCRIPTION);
|
||||
$criteria->addSelectColumn(CcTracktypesPeer::ANALYZE_CUE_POINTS);
|
||||
} else {
|
||||
$criteria->addSelectColumn($alias . '.id');
|
||||
$criteria->addSelectColumn($alias . '.code');
|
||||
$criteria->addSelectColumn($alias . '.visibility');
|
||||
$criteria->addSelectColumn($alias . '.type_name');
|
||||
$criteria->addSelectColumn($alias . '.description');
|
||||
$criteria->addSelectColumn($alias . '.analyze_cue_points');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,12 +11,14 @@
|
|||
* @method CcTracktypesQuery orderByDbVisibility($order = Criteria::ASC) Order by the visibility column
|
||||
* @method CcTracktypesQuery orderByDbTypeName($order = Criteria::ASC) Order by the type_name column
|
||||
* @method CcTracktypesQuery orderByDbDescription($order = Criteria::ASC) Order by the description column
|
||||
* @method CcTracktypesQuery orderByDbAnalyzeCuePoints($order = Criteria::ASC) Order by the analyze_cue_points column
|
||||
*
|
||||
* @method CcTracktypesQuery groupByDbId() Group by the id column
|
||||
* @method CcTracktypesQuery groupByDbCode() Group by the code column
|
||||
* @method CcTracktypesQuery groupByDbVisibility() Group by the visibility column
|
||||
* @method CcTracktypesQuery groupByDbTypeName() Group by the type_name column
|
||||
* @method CcTracktypesQuery groupByDbDescription() Group by the description column
|
||||
* @method CcTracktypesQuery groupByDbAnalyzeCuePoints() Group by the analyze_cue_points column
|
||||
*
|
||||
* @method CcTracktypesQuery leftJoin($relation) Adds a LEFT JOIN clause to the query
|
||||
* @method CcTracktypesQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query
|
||||
|
@ -33,12 +35,14 @@
|
|||
* @method CcTracktypes findOneByDbVisibility(boolean $visibility) Return the first CcTracktypes filtered by the visibility column
|
||||
* @method CcTracktypes findOneByDbTypeName(string $type_name) Return the first CcTracktypes filtered by the type_name column
|
||||
* @method CcTracktypes findOneByDbDescription(string $description) Return the first CcTracktypes filtered by the description column
|
||||
* @method CcTracktypes findOneByDbAnalyzeCuePoints(boolean $analyze_cue_points) Return the first CcTracktypes filtered by the analyze_cue_points column
|
||||
*
|
||||
* @method array findByDbId(int $id) Return CcTracktypes objects filtered by the id column
|
||||
* @method array findByDbCode(string $code) Return CcTracktypes objects filtered by the code column
|
||||
* @method array findByDbVisibility(boolean $visibility) Return CcTracktypes objects filtered by the visibility column
|
||||
* @method array findByDbTypeName(string $type_name) Return CcTracktypes objects filtered by the type_name column
|
||||
* @method array findByDbDescription(string $description) Return CcTracktypes objects filtered by the description column
|
||||
* @method array findByDbAnalyzeCuePoints(boolean $analyze_cue_points) Return CcTracktypes objects filtered by the analyze_cue_points column
|
||||
*
|
||||
* @package propel.generator.airtime.om
|
||||
*/
|
||||
|
@ -146,7 +150,7 @@ abstract class BaseCcTracktypesQuery extends ModelCriteria
|
|||
*/
|
||||
protected function findPkSimple($key, $con)
|
||||
{
|
||||
$sql = 'SELECT "id", "code", "visibility", "type_name", "description" FROM "cc_track_types" WHERE "id" = :p0';
|
||||
$sql = 'SELECT "id", "code", "visibility", "type_name", "description", "analyze_cue_points" FROM "cc_track_types" WHERE "id" = :p0';
|
||||
try {
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->bindValue(':p0', $key, PDO::PARAM_INT);
|
||||
|
@ -391,6 +395,33 @@ abstract class BaseCcTracktypesQuery extends ModelCriteria
|
|||
return $this->addUsingAlias(CcTracktypesPeer::DESCRIPTION, $dbDescription, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the analyze_cue_points column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByDbAnalyzeCuePoints(true); // WHERE analyze_cue_points = true
|
||||
* $query->filterByDbAnalyzeCuePoints('yes'); // WHERE analyze_cue_points = true
|
||||
* </code>
|
||||
*
|
||||
* @param boolean|string $dbAnalyzeCuePoints The value to use as filter.
|
||||
* Non-boolean arguments are converted using the following rules:
|
||||
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
|
||||
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
|
||||
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return CcTracktypesQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByDbAnalyzeCuePoints($dbAnalyzeCuePoints = null, $comparison = null)
|
||||
{
|
||||
if (is_string($dbAnalyzeCuePoints)) {
|
||||
$dbAnalyzeCuePoints = in_array(strtolower($dbAnalyzeCuePoints), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(CcTracktypesPeer::ANALYZE_CUE_POINTS, $dbAnalyzeCuePoints, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query by a related CcFiles object
|
||||
*
|
||||
|
|
|
@ -13,31 +13,44 @@ class Application_Service_MediaService
|
|||
/** Move (or copy) a file to the stor/organize directory and send it off to the
|
||||
* analyzer to be processed.
|
||||
*
|
||||
* @param $filePath string Path to the local file to import to the library
|
||||
* @param $originalFilename string The original filename, if you want it to be preserved after import
|
||||
* @param $ownerId string The ID of the user that will own the file inside Airtime
|
||||
* @param $copyFile bool True if you want to copy the file to the "organize" directory, false if you want to move it (default)
|
||||
* @param mixed $fileId
|
||||
* @param mixed $fileOwnerId The ID of the user that will own the file inside Airtime
|
||||
* @param mixed $fileTrackTypeId
|
||||
* @param string $fileOriginalFilename The original filename, if you want it to be preserved after import
|
||||
* @param string $filePath Path to the local file to import to the library
|
||||
* @param bool $copyFile True if you want to copy the file to the "organize" directory, false if you want to move it (default)
|
||||
*
|
||||
* @return Ambigous
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function importFileToLibrary($fileId, $filePath, $originalFilename, $ownerId, $copyFile)
|
||||
{
|
||||
$importedStorageDirectory = Config::getStoragePath() . '/imported/' . $ownerId;
|
||||
public static function importFileToLibrary(
|
||||
$fileId,
|
||||
$fileOwnerId,
|
||||
$fileTrackTypeId,
|
||||
$fileOriginalFilename,
|
||||
$filePath,
|
||||
$copyFile
|
||||
) {
|
||||
$importedStorageDirectory = Config::getStoragePath() . '/imported/' . $fileOwnerId;
|
||||
|
||||
// Copy the temporary file over to the "organize" folder so that it's off our webserver
|
||||
// and accessible by libretime-analyzer which could be running on a different machine.
|
||||
$newTempFilePath = Application_Model_StoredFile::moveFileToStor($filePath, $fileId, $originalFilename, $copyFile);
|
||||
$newTempFilePath = Application_Model_StoredFile::moveFileToStor(
|
||||
$filePath,
|
||||
$fileId,
|
||||
$fileOriginalFilename,
|
||||
$copyFile
|
||||
);
|
||||
|
||||
// Dispatch a message to libretime-analyzer through RabbitMQ,
|
||||
// notifying it that there's a new upload to process!
|
||||
Application_Model_RabbitMq::SendMessageToAnalyzer(
|
||||
$newTempFilePath,
|
||||
$importedStorageDirectory,
|
||||
basename($originalFilename),
|
||||
$fileId
|
||||
basename($fileOriginalFilename),
|
||||
$fileId,
|
||||
$fileTrackTypeId
|
||||
);
|
||||
|
||||
return $newTempFilePath;
|
||||
|
|
|
@ -92,6 +92,7 @@
|
|||
<column name="visibility" phpName="DbVisibility" type="BOOLEAN" required="true" defaultValue="true" />
|
||||
<column name="type_name" phpName="DbTypeName" type="VARCHAR" size="64" required="true" defaultValue="" />
|
||||
<column name="description" phpName="DbDescription" type="VARCHAR" size="255" required="true" defaultValue="" />
|
||||
<column name="analyze_cue_points" phpName="DbAnalyzeCuePoints" type="BOOLEAN" required="true" defaultValue="true" />
|
||||
<unique name="cc_track_types_id_idx">
|
||||
<unique-column name="id" />
|
||||
</unique>
|
||||
|
|
|
@ -14,6 +14,8 @@ function populateForm(entries) {
|
|||
}
|
||||
$("#visibility").val(visibility_value);
|
||||
|
||||
$("#analyze_cue_points").prop("checked", entries.analyze_cue_points);
|
||||
|
||||
if (entries.id.length != 0) {
|
||||
$("#code").attr("readonly", "readonly");
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue