50 lines
2.2 KiB
PHP
50 lines
2.2 KiB
PHP
<?php
|
|
|
|
$main = RippingCluster_Main::instance();
|
|
$req = $main->request();
|
|
$config = $main->config();
|
|
|
|
// Grab the name of this source
|
|
$encoded_filename = null;
|
|
if ($req->exists('submit')) {
|
|
$encoded_filename = RippingCluster_Main::issetelse($_POST['id'], 'RippingCluster_Exception_InvalidParameters');
|
|
|
|
// Update the recently used list
|
|
$recent_output_directories = $config->get('rips.output_directories.recent');
|
|
if ( ! in_array($_POST['rip-options']['output-directory'], $recent_output_directories)) {
|
|
array_unshift($recent_output_directories, $_POST['rip-options']['output-directory']);
|
|
$config->set('rips.output_directories.recent', array_slice($recent_output_directories, 0, $config->get('rips.output_directories.recent_limit', 10)));
|
|
}
|
|
|
|
// Create the jobs from the request
|
|
$jobs = RippingCluster_Job::fromPostRequest($_POST['plugin'], $_POST['id'], $_POST['rip-options'], $_POST['rips']);
|
|
|
|
// Spawn the background client process to run all the jobs
|
|
RippingCluster_Job::runAllJobs();
|
|
|
|
RippingCluster_Page::redirect('rips/setup/queued');
|
|
|
|
} elseif ($req->exists('queued')) {
|
|
$this->smarty->assign('rips_submitted', true);
|
|
|
|
} else {
|
|
$this->smarty->assign('rips_submitted', false);
|
|
$encoded_filename = $req->get('id', 'RippingCluster_Exception_InvalidParameters');
|
|
|
|
$plugin = $req->get('plugin', 'RippingCluster_Exception_InvalidParameters');
|
|
$source = RippingCluster_Source_PluginFactory::loadEncoded($plugin, $encoded_filename);
|
|
|
|
$this->smarty->assign('source', $source);
|
|
$this->smarty->assign('titles', $source->titles());
|
|
$this->smarty->assign('longest_title', $source->longestTitle());
|
|
$this->smarty->assign('default_output_directory', $config->get('rips.default.output_directory'));
|
|
|
|
$default_output_directories = $config->get('rips.output_directories.default');
|
|
$recent_output_directories = $config->get('rips.output_directories.recent');
|
|
$this->smarty->assign('default_output_directories', $default_output_directories);
|
|
$this->smarty->assign('recent_output_directories', $recent_output_directories);
|
|
$this->smarty->assign('next_output_directory_index', count($default_output_directories) + count($recent_output_directories) + 1);
|
|
}
|
|
|
|
?>
|