Merge pull request #659 from Robbt/podcast-metadata-override
added track title and artist override for podcasts
This commit is contained in:
commit
c26e15fd70
17 changed files with 247 additions and 39 deletions
|
@ -101,4 +101,4 @@ class PodcastManager {
|
|||
return (strtotime($a["pub_date"]) < strtotime($b["pub_date"])) ? 1 : -1; // Descending order
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE podcast_episodes DROP COLUMN IF EXISTS episode_title;
|
||||
ALTER TABLE podcast_episodes DROP COLUMN IF EXISTS episode_description;
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE podcast_episodes ADD COLUMN episode_title VARCHAR(4096);
|
||||
ALTER TABLE podcast_episodes ADD COLUMN episode_description VARCHAR(4096);
|
|
@ -102,13 +102,13 @@ class Application_Form_GeneralPreferences extends Zend_Form_SubForm
|
|||
|
||||
|
||||
$podcast_album_override = new Zend_Form_Element_Radio('podcastAlbumOverride');
|
||||
$podcast_album_override->setLabel(_('Podcast Album Override'));
|
||||
$podcast_album_override->setLabel(_('Podcast Metadata Override'));
|
||||
$podcast_album_override->setMultiOptions(array(
|
||||
_("Disabled"),
|
||||
_("Enabled"),
|
||||
));
|
||||
$podcast_album_override->setValue(Application_Model_Preference::GetPodcastAlbumOverride());
|
||||
$podcast_album_override->setDescription(_('Enabling this means that podcast tracks will always contain the podcast name in their album field.'));
|
||||
$podcast_album_override->setDescription(_('Enabling this means that podcast tracks will get their metadata set from the podcast feed values'));
|
||||
$podcast_album_override->setSeparator(' '); //No <br> between radio buttons
|
||||
$podcast_album_override->addDecorator('HtmlTag', array('tag' => 'dd',
|
||||
'id'=>"podcastAlbumOverride-element",
|
||||
|
|
|
@ -46,7 +46,7 @@ class CcBlockTableMap extends TableMap
|
|||
$this->addForeignKey('creator_id', 'DbCreatorId', 'INTEGER', 'cc_subjs', 'id', false, null, null);
|
||||
$this->addColumn('description', 'DbDescription', 'VARCHAR', false, 512, null);
|
||||
$this->addColumn('length', 'DbLength', 'VARCHAR', false, null, '00:00:00');
|
||||
$this->addColumn('type', 'DbType', 'VARCHAR', false, 7, 'static');
|
||||
$this->addColumn('type', 'DbType', 'VARCHAR', false, 7, 'dynamic');
|
||||
// validators
|
||||
} // initialize()
|
||||
|
||||
|
|
|
@ -45,6 +45,8 @@ class PodcastEpisodesTableMap extends TableMap
|
|||
$this->addColumn('publication_date', 'DbPublicationDate', 'TIMESTAMP', true, null, null);
|
||||
$this->addColumn('download_url', 'DbDownloadUrl', 'VARCHAR', true, 4096, null);
|
||||
$this->addColumn('episode_guid', 'DbEpisodeGuid', 'VARCHAR', true, 4096, null);
|
||||
$this->addColumn('episode_title', 'DbEpisodeTitle', 'VARCHAR', true, 4096, null);
|
||||
$this->addColumn('episode_description', 'DbEpisodeDescription', 'VARCHAR', true, 4096, null);
|
||||
// validators
|
||||
} // initialize()
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ abstract class BaseCcBlockcontents extends BaseObject implements Persistent
|
|||
|
||||
/**
|
||||
* The value for the trackoffset field.
|
||||
* Note: this column has a database default value of: 0
|
||||
* Note: this column has a database default value of: 0.0
|
||||
* @var double
|
||||
*/
|
||||
protected $trackoffset;
|
||||
|
@ -136,7 +136,7 @@ abstract class BaseCcBlockcontents extends BaseObject implements Persistent
|
|||
*/
|
||||
public function applyDefaultValues()
|
||||
{
|
||||
$this->trackoffset = 0;
|
||||
$this->trackoffset = 0.0;
|
||||
$this->cliplength = '00:00:00';
|
||||
$this->cuein = '00:00:00';
|
||||
$this->cueout = '00:00:00';
|
||||
|
@ -548,7 +548,7 @@ abstract class BaseCcBlockcontents extends BaseObject implements Persistent
|
|||
*/
|
||||
public function hasOnlyDefaultValues()
|
||||
{
|
||||
if ($this->trackoffset !== 0) {
|
||||
if ($this->trackoffset !== 0.0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ abstract class BaseCcPlaylistcontents extends BaseObject implements Persistent
|
|||
|
||||
/**
|
||||
* The value for the trackoffset field.
|
||||
* Note: this column has a database default value of: 0
|
||||
* Note: this column has a database default value of: 0.0
|
||||
* @var double
|
||||
*/
|
||||
protected $trackoffset;
|
||||
|
@ -161,7 +161,7 @@ abstract class BaseCcPlaylistcontents extends BaseObject implements Persistent
|
|||
public function applyDefaultValues()
|
||||
{
|
||||
$this->type = 0;
|
||||
$this->trackoffset = 0;
|
||||
$this->trackoffset = 0.0;
|
||||
$this->cliplength = '00:00:00';
|
||||
$this->cuein = '00:00:00';
|
||||
$this->cueout = '00:00:00';
|
||||
|
@ -677,7 +677,7 @@ abstract class BaseCcPlaylistcontents extends BaseObject implements Persistent
|
|||
return false;
|
||||
}
|
||||
|
||||
if ($this->trackoffset !== 0) {
|
||||
if ($this->trackoffset !== 0.0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -65,6 +65,18 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
*/
|
||||
protected $episode_guid;
|
||||
|
||||
/**
|
||||
* The value for the episode_title field.
|
||||
* @var string
|
||||
*/
|
||||
protected $episode_title;
|
||||
|
||||
/**
|
||||
* The value for the episode_description field.
|
||||
* @var string
|
||||
*/
|
||||
protected $episode_description;
|
||||
|
||||
/**
|
||||
* @var CcFiles
|
||||
*/
|
||||
|
@ -185,6 +197,28 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
return $this->episode_guid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [episode_title] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDbEpisodeTitle()
|
||||
{
|
||||
|
||||
return $this->episode_title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [episode_description] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDbEpisodeDescription()
|
||||
{
|
||||
|
||||
return $this->episode_description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the value of [id] column.
|
||||
*
|
||||
|
@ -321,6 +355,48 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
return $this;
|
||||
} // setDbEpisodeGuid()
|
||||
|
||||
/**
|
||||
* Set the value of [episode_title] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return PodcastEpisodes The current object (for fluent API support)
|
||||
*/
|
||||
public function setDbEpisodeTitle($v)
|
||||
{
|
||||
if ($v !== null && is_numeric($v)) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->episode_title !== $v) {
|
||||
$this->episode_title = $v;
|
||||
$this->modifiedColumns[] = PodcastEpisodesPeer::EPISODE_TITLE;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setDbEpisodeTitle()
|
||||
|
||||
/**
|
||||
* Set the value of [episode_description] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return PodcastEpisodes The current object (for fluent API support)
|
||||
*/
|
||||
public function setDbEpisodeDescription($v)
|
||||
{
|
||||
if ($v !== null && is_numeric($v)) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->episode_description !== $v) {
|
||||
$this->episode_description = $v;
|
||||
$this->modifiedColumns[] = PodcastEpisodesPeer::EPISODE_DESCRIPTION;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setDbEpisodeDescription()
|
||||
|
||||
/**
|
||||
* Indicates whether the columns in this object are only set to default values.
|
||||
*
|
||||
|
@ -359,6 +435,8 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
$this->publication_date = ($row[$startcol + 3] !== null) ? (string) $row[$startcol + 3] : null;
|
||||
$this->download_url = ($row[$startcol + 4] !== null) ? (string) $row[$startcol + 4] : null;
|
||||
$this->episode_guid = ($row[$startcol + 5] !== null) ? (string) $row[$startcol + 5] : null;
|
||||
$this->episode_title = ($row[$startcol + 6] !== null) ? (string) $row[$startcol + 6] : null;
|
||||
$this->episode_description = ($row[$startcol + 7] !== null) ? (string) $row[$startcol + 7] : null;
|
||||
$this->resetModified();
|
||||
|
||||
$this->setNew(false);
|
||||
|
@ -368,7 +446,7 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
}
|
||||
$this->postHydrate($row, $startcol, $rehydrate);
|
||||
|
||||
return $startcol + 6; // 6 = PodcastEpisodesPeer::NUM_HYDRATE_COLUMNS.
|
||||
return $startcol + 8; // 8 = PodcastEpisodesPeer::NUM_HYDRATE_COLUMNS.
|
||||
|
||||
} catch (Exception $e) {
|
||||
throw new PropelException("Error populating PodcastEpisodes object", $e);
|
||||
|
@ -635,6 +713,12 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
if ($this->isColumnModified(PodcastEpisodesPeer::EPISODE_GUID)) {
|
||||
$modifiedColumns[':p' . $index++] = '"episode_guid"';
|
||||
}
|
||||
if ($this->isColumnModified(PodcastEpisodesPeer::EPISODE_TITLE)) {
|
||||
$modifiedColumns[':p' . $index++] = '"episode_title"';
|
||||
}
|
||||
if ($this->isColumnModified(PodcastEpisodesPeer::EPISODE_DESCRIPTION)) {
|
||||
$modifiedColumns[':p' . $index++] = '"episode_description"';
|
||||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'INSERT INTO "podcast_episodes" (%s) VALUES (%s)',
|
||||
|
@ -664,6 +748,12 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
case '"episode_guid"':
|
||||
$stmt->bindValue($identifier, $this->episode_guid, PDO::PARAM_STR);
|
||||
break;
|
||||
case '"episode_title"':
|
||||
$stmt->bindValue($identifier, $this->episode_title, PDO::PARAM_STR);
|
||||
break;
|
||||
case '"episode_description"':
|
||||
$stmt->bindValue($identifier, $this->episode_description, PDO::PARAM_STR);
|
||||
break;
|
||||
}
|
||||
}
|
||||
$stmt->execute();
|
||||
|
@ -827,6 +917,12 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
case 5:
|
||||
return $this->getDbEpisodeGuid();
|
||||
break;
|
||||
case 6:
|
||||
return $this->getDbEpisodeTitle();
|
||||
break;
|
||||
case 7:
|
||||
return $this->getDbEpisodeDescription();
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
break;
|
||||
|
@ -862,6 +958,8 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
$keys[3] => $this->getDbPublicationDate(),
|
||||
$keys[4] => $this->getDbDownloadUrl(),
|
||||
$keys[5] => $this->getDbEpisodeGuid(),
|
||||
$keys[6] => $this->getDbEpisodeTitle(),
|
||||
$keys[7] => $this->getDbEpisodeDescription(),
|
||||
);
|
||||
$virtualColumns = $this->virtualColumns;
|
||||
foreach ($virtualColumns as $key => $virtualColumn) {
|
||||
|
@ -927,6 +1025,12 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
case 5:
|
||||
$this->setDbEpisodeGuid($value);
|
||||
break;
|
||||
case 6:
|
||||
$this->setDbEpisodeTitle($value);
|
||||
break;
|
||||
case 7:
|
||||
$this->setDbEpisodeDescription($value);
|
||||
break;
|
||||
} // switch()
|
||||
}
|
||||
|
||||
|
@ -957,6 +1061,8 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
if (array_key_exists($keys[3], $arr)) $this->setDbPublicationDate($arr[$keys[3]]);
|
||||
if (array_key_exists($keys[4], $arr)) $this->setDbDownloadUrl($arr[$keys[4]]);
|
||||
if (array_key_exists($keys[5], $arr)) $this->setDbEpisodeGuid($arr[$keys[5]]);
|
||||
if (array_key_exists($keys[6], $arr)) $this->setDbEpisodeTitle($arr[$keys[6]]);
|
||||
if (array_key_exists($keys[7], $arr)) $this->setDbEpisodeDescription($arr[$keys[7]]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -974,6 +1080,8 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
if ($this->isColumnModified(PodcastEpisodesPeer::PUBLICATION_DATE)) $criteria->add(PodcastEpisodesPeer::PUBLICATION_DATE, $this->publication_date);
|
||||
if ($this->isColumnModified(PodcastEpisodesPeer::DOWNLOAD_URL)) $criteria->add(PodcastEpisodesPeer::DOWNLOAD_URL, $this->download_url);
|
||||
if ($this->isColumnModified(PodcastEpisodesPeer::EPISODE_GUID)) $criteria->add(PodcastEpisodesPeer::EPISODE_GUID, $this->episode_guid);
|
||||
if ($this->isColumnModified(PodcastEpisodesPeer::EPISODE_TITLE)) $criteria->add(PodcastEpisodesPeer::EPISODE_TITLE, $this->episode_title);
|
||||
if ($this->isColumnModified(PodcastEpisodesPeer::EPISODE_DESCRIPTION)) $criteria->add(PodcastEpisodesPeer::EPISODE_DESCRIPTION, $this->episode_description);
|
||||
|
||||
return $criteria;
|
||||
}
|
||||
|
@ -1042,6 +1150,8 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
$copyObj->setDbPublicationDate($this->getDbPublicationDate());
|
||||
$copyObj->setDbDownloadUrl($this->getDbDownloadUrl());
|
||||
$copyObj->setDbEpisodeGuid($this->getDbEpisodeGuid());
|
||||
$copyObj->setDbEpisodeTitle($this->getDbEpisodeTitle());
|
||||
$copyObj->setDbEpisodeDescription($this->getDbEpisodeDescription());
|
||||
|
||||
if ($deepCopy && !$this->startCopy) {
|
||||
// important: temporarily setNew(false) because this affects the behavior of
|
||||
|
@ -1215,6 +1325,8 @@ abstract class BasePodcastEpisodes extends BaseObject implements Persistent
|
|||
$this->publication_date = null;
|
||||
$this->download_url = null;
|
||||
$this->episode_guid = null;
|
||||
$this->episode_title = null;
|
||||
$this->episode_description = null;
|
||||
$this->alreadyInSave = false;
|
||||
$this->alreadyInValidation = false;
|
||||
$this->alreadyInClearAllReferencesDeep = false;
|
||||
|
|
|
@ -24,13 +24,13 @@ abstract class BasePodcastEpisodesPeer
|
|||
const TM_CLASS = 'PodcastEpisodesTableMap';
|
||||
|
||||
/** The total number of columns. */
|
||||
const NUM_COLUMNS = 6;
|
||||
const NUM_COLUMNS = 8;
|
||||
|
||||
/** 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 = 6;
|
||||
const NUM_HYDRATE_COLUMNS = 8;
|
||||
|
||||
/** the column name for the id field */
|
||||
const ID = 'podcast_episodes.id';
|
||||
|
@ -50,6 +50,12 @@ abstract class BasePodcastEpisodesPeer
|
|||
/** the column name for the episode_guid field */
|
||||
const EPISODE_GUID = 'podcast_episodes.episode_guid';
|
||||
|
||||
/** the column name for the episode_title field */
|
||||
const EPISODE_TITLE = 'podcast_episodes.episode_title';
|
||||
|
||||
/** the column name for the episode_description field */
|
||||
const EPISODE_DESCRIPTION = 'podcast_episodes.episode_description';
|
||||
|
||||
/** The default string format for model objects of the related table **/
|
||||
const DEFAULT_STRING_FORMAT = 'YAML';
|
||||
|
||||
|
@ -69,12 +75,12 @@ abstract class BasePodcastEpisodesPeer
|
|||
* e.g. PodcastEpisodesPeer::$fieldNames[PodcastEpisodesPeer::TYPE_PHPNAME][0] = 'Id'
|
||||
*/
|
||||
protected static $fieldNames = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId', 'DbFileId', 'DbPodcastId', 'DbPublicationDate', 'DbDownloadUrl', 'DbEpisodeGuid', ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbFileId', 'dbPodcastId', 'dbPublicationDate', 'dbDownloadUrl', 'dbEpisodeGuid', ),
|
||||
BasePeer::TYPE_COLNAME => array (PodcastEpisodesPeer::ID, PodcastEpisodesPeer::FILE_ID, PodcastEpisodesPeer::PODCAST_ID, PodcastEpisodesPeer::PUBLICATION_DATE, PodcastEpisodesPeer::DOWNLOAD_URL, PodcastEpisodesPeer::EPISODE_GUID, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID', 'FILE_ID', 'PODCAST_ID', 'PUBLICATION_DATE', 'DOWNLOAD_URL', 'EPISODE_GUID', ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id', 'file_id', 'podcast_id', 'publication_date', 'download_url', 'episode_guid', ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, )
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId', 'DbFileId', 'DbPodcastId', 'DbPublicationDate', 'DbDownloadUrl', 'DbEpisodeGuid', 'DbEpisodeTitle', 'DbEpisodeDescription', ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbFileId', 'dbPodcastId', 'dbPublicationDate', 'dbDownloadUrl', 'dbEpisodeGuid', 'dbEpisodeTitle', 'dbEpisodeDescription', ),
|
||||
BasePeer::TYPE_COLNAME => array (PodcastEpisodesPeer::ID, PodcastEpisodesPeer::FILE_ID, PodcastEpisodesPeer::PODCAST_ID, PodcastEpisodesPeer::PUBLICATION_DATE, PodcastEpisodesPeer::DOWNLOAD_URL, PodcastEpisodesPeer::EPISODE_GUID, PodcastEpisodesPeer::EPISODE_TITLE, PodcastEpisodesPeer::EPISODE_DESCRIPTION, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID', 'FILE_ID', 'PODCAST_ID', 'PUBLICATION_DATE', 'DOWNLOAD_URL', 'EPISODE_GUID', 'EPISODE_TITLE', 'EPISODE_DESCRIPTION', ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id', 'file_id', 'podcast_id', 'publication_date', 'download_url', 'episode_guid', 'episode_title', 'episode_description', ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, )
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -84,12 +90,12 @@ abstract class BasePodcastEpisodesPeer
|
|||
* e.g. PodcastEpisodesPeer::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
|
||||
*/
|
||||
protected static $fieldKeys = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbFileId' => 1, 'DbPodcastId' => 2, 'DbPublicationDate' => 3, 'DbDownloadUrl' => 4, 'DbEpisodeGuid' => 5, ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbFileId' => 1, 'dbPodcastId' => 2, 'dbPublicationDate' => 3, 'dbDownloadUrl' => 4, 'dbEpisodeGuid' => 5, ),
|
||||
BasePeer::TYPE_COLNAME => array (PodcastEpisodesPeer::ID => 0, PodcastEpisodesPeer::FILE_ID => 1, PodcastEpisodesPeer::PODCAST_ID => 2, PodcastEpisodesPeer::PUBLICATION_DATE => 3, PodcastEpisodesPeer::DOWNLOAD_URL => 4, PodcastEpisodesPeer::EPISODE_GUID => 5, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'FILE_ID' => 1, 'PODCAST_ID' => 2, 'PUBLICATION_DATE' => 3, 'DOWNLOAD_URL' => 4, 'EPISODE_GUID' => 5, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'file_id' => 1, 'podcast_id' => 2, 'publication_date' => 3, 'download_url' => 4, 'episode_guid' => 5, ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, )
|
||||
BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbFileId' => 1, 'DbPodcastId' => 2, 'DbPublicationDate' => 3, 'DbDownloadUrl' => 4, 'DbEpisodeGuid' => 5, 'DbEpisodeTitle' => 6, 'DbEpisodeDescription' => 7, ),
|
||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbFileId' => 1, 'dbPodcastId' => 2, 'dbPublicationDate' => 3, 'dbDownloadUrl' => 4, 'dbEpisodeGuid' => 5, 'dbEpisodeTitle' => 6, 'dbEpisodeDescription' => 7, ),
|
||||
BasePeer::TYPE_COLNAME => array (PodcastEpisodesPeer::ID => 0, PodcastEpisodesPeer::FILE_ID => 1, PodcastEpisodesPeer::PODCAST_ID => 2, PodcastEpisodesPeer::PUBLICATION_DATE => 3, PodcastEpisodesPeer::DOWNLOAD_URL => 4, PodcastEpisodesPeer::EPISODE_GUID => 5, PodcastEpisodesPeer::EPISODE_TITLE => 6, PodcastEpisodesPeer::EPISODE_DESCRIPTION => 7, ),
|
||||
BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'FILE_ID' => 1, 'PODCAST_ID' => 2, 'PUBLICATION_DATE' => 3, 'DOWNLOAD_URL' => 4, 'EPISODE_GUID' => 5, 'EPISODE_TITLE' => 6, 'EPISODE_DESCRIPTION' => 7, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'file_id' => 1, 'podcast_id' => 2, 'publication_date' => 3, 'download_url' => 4, 'episode_guid' => 5, 'episode_title' => 6, 'episode_description' => 7, ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, )
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -169,6 +175,8 @@ abstract class BasePodcastEpisodesPeer
|
|||
$criteria->addSelectColumn(PodcastEpisodesPeer::PUBLICATION_DATE);
|
||||
$criteria->addSelectColumn(PodcastEpisodesPeer::DOWNLOAD_URL);
|
||||
$criteria->addSelectColumn(PodcastEpisodesPeer::EPISODE_GUID);
|
||||
$criteria->addSelectColumn(PodcastEpisodesPeer::EPISODE_TITLE);
|
||||
$criteria->addSelectColumn(PodcastEpisodesPeer::EPISODE_DESCRIPTION);
|
||||
} else {
|
||||
$criteria->addSelectColumn($alias . '.id');
|
||||
$criteria->addSelectColumn($alias . '.file_id');
|
||||
|
@ -176,6 +184,8 @@ abstract class BasePodcastEpisodesPeer
|
|||
$criteria->addSelectColumn($alias . '.publication_date');
|
||||
$criteria->addSelectColumn($alias . '.download_url');
|
||||
$criteria->addSelectColumn($alias . '.episode_guid');
|
||||
$criteria->addSelectColumn($alias . '.episode_title');
|
||||
$criteria->addSelectColumn($alias . '.episode_description');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
* @method PodcastEpisodesQuery orderByDbPublicationDate($order = Criteria::ASC) Order by the publication_date column
|
||||
* @method PodcastEpisodesQuery orderByDbDownloadUrl($order = Criteria::ASC) Order by the download_url column
|
||||
* @method PodcastEpisodesQuery orderByDbEpisodeGuid($order = Criteria::ASC) Order by the episode_guid column
|
||||
* @method PodcastEpisodesQuery orderByDbEpisodeTitle($order = Criteria::ASC) Order by the episode_title column
|
||||
* @method PodcastEpisodesQuery orderByDbEpisodeDescription($order = Criteria::ASC) Order by the episode_description column
|
||||
*
|
||||
* @method PodcastEpisodesQuery groupByDbId() Group by the id column
|
||||
* @method PodcastEpisodesQuery groupByDbFileId() Group by the file_id column
|
||||
|
@ -19,6 +21,8 @@
|
|||
* @method PodcastEpisodesQuery groupByDbPublicationDate() Group by the publication_date column
|
||||
* @method PodcastEpisodesQuery groupByDbDownloadUrl() Group by the download_url column
|
||||
* @method PodcastEpisodesQuery groupByDbEpisodeGuid() Group by the episode_guid column
|
||||
* @method PodcastEpisodesQuery groupByDbEpisodeTitle() Group by the episode_title column
|
||||
* @method PodcastEpisodesQuery groupByDbEpisodeDescription() Group by the episode_description column
|
||||
*
|
||||
* @method PodcastEpisodesQuery leftJoin($relation) Adds a LEFT JOIN clause to the query
|
||||
* @method PodcastEpisodesQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query
|
||||
|
@ -40,6 +44,8 @@
|
|||
* @method PodcastEpisodes findOneByDbPublicationDate(string $publication_date) Return the first PodcastEpisodes filtered by the publication_date column
|
||||
* @method PodcastEpisodes findOneByDbDownloadUrl(string $download_url) Return the first PodcastEpisodes filtered by the download_url column
|
||||
* @method PodcastEpisodes findOneByDbEpisodeGuid(string $episode_guid) Return the first PodcastEpisodes filtered by the episode_guid column
|
||||
* @method PodcastEpisodes findOneByDbEpisodeTitle(string $episode_title) Return the first PodcastEpisodes filtered by the episode_title column
|
||||
* @method PodcastEpisodes findOneByDbEpisodeDescription(string $episode_description) Return the first PodcastEpisodes filtered by the episode_description column
|
||||
*
|
||||
* @method array findByDbId(int $id) Return PodcastEpisodes objects filtered by the id column
|
||||
* @method array findByDbFileId(int $file_id) Return PodcastEpisodes objects filtered by the file_id column
|
||||
|
@ -47,6 +53,8 @@
|
|||
* @method array findByDbPublicationDate(string $publication_date) Return PodcastEpisodes objects filtered by the publication_date column
|
||||
* @method array findByDbDownloadUrl(string $download_url) Return PodcastEpisodes objects filtered by the download_url column
|
||||
* @method array findByDbEpisodeGuid(string $episode_guid) Return PodcastEpisodes objects filtered by the episode_guid column
|
||||
* @method array findByDbEpisodeTitle(string $episode_title) Return PodcastEpisodes objects filtered by the episode_title column
|
||||
* @method array findByDbEpisodeDescription(string $episode_description) Return PodcastEpisodes objects filtered by the episode_description column
|
||||
*
|
||||
* @package propel.generator.airtime.om
|
||||
*/
|
||||
|
@ -154,7 +162,7 @@ abstract class BasePodcastEpisodesQuery extends ModelCriteria
|
|||
*/
|
||||
protected function findPkSimple($key, $con)
|
||||
{
|
||||
$sql = 'SELECT "id", "file_id", "podcast_id", "publication_date", "download_url", "episode_guid" FROM "podcast_episodes" WHERE "id" = :p0';
|
||||
$sql = 'SELECT "id", "file_id", "podcast_id", "publication_date", "download_url", "episode_guid", "episode_title", "episode_description" FROM "podcast_episodes" WHERE "id" = :p0';
|
||||
try {
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->bindValue(':p0', $key, PDO::PARAM_INT);
|
||||
|
@ -474,6 +482,64 @@ abstract class BasePodcastEpisodesQuery extends ModelCriteria
|
|||
return $this->addUsingAlias(PodcastEpisodesPeer::EPISODE_GUID, $dbEpisodeGuid, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the episode_title column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByDbEpisodeTitle('fooValue'); // WHERE episode_title = 'fooValue'
|
||||
* $query->filterByDbEpisodeTitle('%fooValue%'); // WHERE episode_title LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $dbEpisodeTitle The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return PodcastEpisodesQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByDbEpisodeTitle($dbEpisodeTitle = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($dbEpisodeTitle)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $dbEpisodeTitle)) {
|
||||
$dbEpisodeTitle = str_replace('*', '%', $dbEpisodeTitle);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(PodcastEpisodesPeer::EPISODE_TITLE, $dbEpisodeTitle, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the episode_description column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByDbEpisodeDescription('fooValue'); // WHERE episode_description = 'fooValue'
|
||||
* $query->filterByDbEpisodeDescription('%fooValue%'); // WHERE episode_description LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $dbEpisodeDescription The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return PodcastEpisodesQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByDbEpisodeDescription($dbEpisodeDescription = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($dbEpisodeDescription)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $dbEpisodeDescription)) {
|
||||
$dbEpisodeDescription = str_replace('*', '%', $dbEpisodeDescription);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(PodcastEpisodesPeer::EPISODE_DESCRIPTION, $dbEpisodeDescription, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query by a related CcFiles object
|
||||
*
|
||||
|
|
|
@ -46,7 +46,7 @@ class Application_Service_PodcastEpisodeService extends Application_Service_Thir
|
|||
public function importEpisode($podcastId, $episode) {
|
||||
$e = $this->addPlaceholder($podcastId, $episode);
|
||||
$p = $e->getPodcast();
|
||||
$this->_download($e->getDbId(), $e->getDbDownloadUrl(), $p->getDbTitle(), $this->_getAlbumOverride($p));
|
||||
$this->_download($e->getDbId(), $e->getDbDownloadUrl(), $p->getDbTitle(), $this->_getAlbumOverride($p), $episode["title"]);
|
||||
return $e;
|
||||
}
|
||||
|
||||
|
@ -93,7 +93,7 @@ class Application_Service_PodcastEpisodeService extends Application_Service_Thir
|
|||
// feed object, or whether it's passed in as json
|
||||
$enclosure = $episode["enclosure"];
|
||||
$url = $enclosure instanceof SimplePie_Enclosure ? $enclosure->get_link() : $enclosure["link"];
|
||||
return $this->_buildEpisode($podcastId, $url, $episode["guid"], $episode["pub_date"]);
|
||||
return $this->_buildEpisode($podcastId, $url, $episode["guid"], $episode["pub_date"], $episode["title"], $episode["description"]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -103,18 +103,22 @@ class Application_Service_PodcastEpisodeService extends Application_Service_Thir
|
|||
* @param string $url the download URL for the episode
|
||||
* @param string $guid the unique id for the episode. Often the same as the download URL
|
||||
* @param string $publicationDate the publication date of the episode
|
||||
* @param string $title the title of the episode
|
||||
* @param string $description the description of the epsiode
|
||||
*
|
||||
* @return PodcastEpisodes the newly created PodcastEpisodes object
|
||||
*
|
||||
* @throws Exception
|
||||
* @throws PropelException
|
||||
*/
|
||||
private function _buildEpisode($podcastId, $url, $guid, $publicationDate) {
|
||||
private function _buildEpisode($podcastId, $url, $guid, $publicationDate, $title, $description) {
|
||||
$e = new PodcastEpisodes();
|
||||
$e->setDbPodcastId($podcastId);
|
||||
$e->setDbDownloadUrl($url);
|
||||
$e->setDbEpisodeGuid($guid);
|
||||
$e->setDbPublicationDate($publicationDate);
|
||||
$e->setDbEpisodeTitle($title);
|
||||
$e->setDbEpisodeDescription($description);
|
||||
$e->save();
|
||||
return $e;
|
||||
}
|
||||
|
@ -128,7 +132,8 @@ class Application_Service_PodcastEpisodeService extends Application_Service_Thir
|
|||
/** @var PodcastEpisodes $episode */
|
||||
foreach($episodes as $episode) {
|
||||
$podcast = $episode->getPodcast();
|
||||
$this->_download($episode->getDbId(), $episode->getDbDownloadUrl(), $podcast->getDbTitle(), $this->_getAlbumOverride($podcast));
|
||||
Logging::info($episode);
|
||||
$this->_download($episode->getDbId(), $episode->getDbDownloadUrl(), $podcast->getDbTitle(), $this->_getAlbumOverride($podcast), $episode->getDbEpisodeTitle());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -158,7 +163,7 @@ class Application_Service_PodcastEpisodeService extends Application_Service_Thir
|
|||
* @param string $title title of podcast to be downloaded - added as album to track metadata
|
||||
* @param boolean $album_override should we override the album name when downloading
|
||||
*/
|
||||
private function _download($id, $url, $title, $album_override) {
|
||||
private function _download($id, $url, $title, $album_override, $track_title = null) {
|
||||
$CC_CONFIG = Config::getConfig();
|
||||
$stationUrl = Application_Common_HTTPHelper::getStationUrl();
|
||||
$stationUrl .= substr($stationUrl, -1) == '/' ? '' : '/';
|
||||
|
@ -169,7 +174,7 @@ class Application_Service_PodcastEpisodeService extends Application_Service_Thir
|
|||
'api_key' => $CC_CONFIG["apiKey"][0],
|
||||
'podcast_name' => $title,
|
||||
'album_override' => $album_override,
|
||||
);
|
||||
'track_title' => $track_title);
|
||||
$task = $this->_executeTask(static::$_CELERY_TASKS[self::DOWNLOAD], $data);
|
||||
// Get the created ThirdPartyTaskReference and set the episode ID so
|
||||
// we can remove the placeholder if the import ends up stuck in a pending state
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
<input name="podcast_album_override" id="podcast_album_override" ng-model="podcast.album_override" type="checkbox" />
|
||||
</div>
|
||||
<div>
|
||||
<label for="podcast_album_override"><?php echo _("Overwrite episode album names"); ?></label> <span class='album_names help_icon'></span>
|
||||
<label for="podcast_album_override"><?php echo _("Overwrite episode track metadata"); ?></label> <span class='album_names help_icon'></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="podcast-metadata-row" >
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue