Files
handbrake-cluster-webui/source/webui/pages/rips/setup.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);
}
?>