Think something broke the program with the update
$v) { unset($process[$key][$k]); if (is_array($v)) { $process[$key][stripslashes($k)] = $v; $process[] = &$process[$key][stripslashes($k)]; } else { $process[$key][stripslashes($k)] = stripslashes($v); } } } unset($process); } // parses commands sent from web UI (usually torrentwatch-xa.js) function parse_options($twxa_version) { global $html_out, $config_values; array_keys($_GET); $commands = array_keys($_GET); if (empty($commands)) { return false; } if (strpos($commands[0], '/') === 0) { $commands[0] = preg_replace("/^//", '', $commands[0]); } switch ($commands[0]) { case 'getClientData': echo getClientData(); exit; case 'delTorrent': if (isset($_REQUEST['trash'])) { if (isset($_REQUEST['checkCache'])) { $response = delTorrent($_REQUEST['delTorrent'], $_REQUEST['trash'], $_REQUEST['checkCache']); } else { $response = delTorrent($_REQUEST['delTorrent'], $_REQUEST['trash'], false); } } else { if (isset($_REQUEST['checkCache'])) { $response = delTorrent($_REQUEST['delTorrent'], false, $_REQUEST['checkCache']); } else { $response = delTorrent($_REQUEST['delTorrent'], false, false); } } echo "$response"; exit; case 'stopTorrent': echo stopTorrent($_REQUEST['stopTorrent']); exit; case 'startTorrent': echo startTorrent($_REQUEST['startTorrent']); exit; case 'moveTo': echo moveTorrent($_REQUEST['moveTo'], $_REQUEST['torHash']); exit; case 'updateFavorite': $response = update_favorite(); if (strpos($response, 'Error:') === 0) { echo "
$response
"; } break; case 'updateFeed': updateFeed(); break; case 'clearCache': clear_cache_by_cache_type(); break; case 'setGlobals': updateGlobalConfig(); break; case 'addFavorite': $feedLink = $_GET['rss']; foreach ($config_values['Feeds'] as $key => $feed) { if ($feed['Link'] == "$feedLink") { $idx = $key; } } if (($tmp = detectMatch(html_entity_decode($_GET['title'])))) { $GET['name'] = trim(strtr($tmp['favTitle'], ".", " ")); switch ($config_values['Settings']['Match Style']) { case "simple": $_GET['filter'] = trim($tmp['favTitle']); $_GET['quality'] = $tmp['qualities']; // Add to Favorites uses the qualities from the item for the new Favorite break; case "glob": $GET['filter'] = trim(strtr($tmp['favTitle'], " .", "???")); $_GET['filter'] .= ''; $_GET['quality'] = 'All'; // Add to Favorites makes the new Favorite accept all qualities break; case "regexp": $_GET['filter'] = trim($tmp['favTitle']); $_GET['quality'] = $tmp['qualitiesRegEx']; // Add to Favorites uses the detected qualities as a regex or . if no qualities detected } $_GET['feed'] = $_GET['rss']; $_GET['button'] = 'Add'; $_GET['downloaddir'] = 'Default'; $_GET['alsosavedir'] = 'Default'; $_GET['seedratio'] = ""; } else { $_GET['name'] = $_GET['title']; $_GET['filter'] = $_GET['title']; $_GET['quality'] = 'All'; $_GET['feed'] = $_GET['rss']; $_GET['button'] = 'Add'; $_GET['downloaddir'] = 'Default'; $_GET['alsosavedir'] = 'Default'; $_GET['seedratio'] = ""; } if ($config_values['Settings']['Default Feed All'] && $tmp['numberSequence'] > 0) { // set default feed to all only if serialized $_GET['feed'] = 'All'; } $response = update_favorite(); if ($response) { echo "$response"; } exit; case 'hide': /* $response = add_hidden(ucwords($_GET['hide'])); if ($response) { echo "ERROR:$response"; } else { $guess = detectMatch(html_entity_decode($_GET['hide'])); echo $guess['favTitle']; // use favTitle, not title } */ addHidden($_GET['hide']); exit; case 'delHidden': if (!empty($_GET['unhide'])) { delHidden($_GET['unhide']); // filter_input() will fail here because $_GET['unhide'] is an array } break; case 'dlTorrent': // Loaded via ajax foreach ($config_values['Favorites'] as $fav) { $guess = detectMatch(html_entity_decode($GET['title'])); $name = trim(strtr($guess['title'], ".", " ")); if ($name == $fav['Name']) { $downloadDir = $fav['Download Dir']; } } if ((!isset($downloadDir) || $downloadDir == "Default" ) && isset($config_values['Settings']['Download Dir'])) { $downloadDir = $config_values['Settings']['Download Dir']; } $r = client_add_torrent(str_replace('/ /', '%20', trim($_GET['link'])), $downloadDir, $_GET['title'], $_GET['feed']); if ($r == "Success") { //$torHash = get_torHash(add_cache($_GET['title'])); $torHash = get_torHash(add_cache(filter_input(INPUT_GET, 'title'))); } if (isset($torHash)) { echo $torHash; } else { echo $r; } exit(0); break; case 'clearHistory': // Loaded via ajax if (file_exists($config_values['Settings']['History'])) { unlink($config_values['Settings']['History']); } display_history(); close_html(); exit(0); break; case 'get_client': global $config_values; echo $config_values['Settings']['Client']; exit; case 'get_autodel': global $config_values; echo $config_values['Settings']['Auto-Del Seeded Torrents']; exit; case 'getDisableHideList': global $config_values; echo $config_values['Settings']['Disable Hide List']; exit; case 'checkVersion': echo checkVersion($twxa_version); exit; case 'get_dialog_data': //switch ($_GET['get_dialog_data']) { switch (filter_input(INPUT_GET, 'get_dialog_data')) { case '#favorites': display_favorites(); exit; case '#configuration': display_global_config(); exit; case '#hidelist': display_hidelist(); exit; case '#feeds': display_feeds(); exit; case '#history': display_history(); exit; case '#show_legend': display_legend(); exit; case '#clear_cache': display_clearCache(); exit; case '#show_transmission': display_transmission(); exit; default: exit; } default: //TODO check filter_input() is not false before using it $output = ""; } if (isset($output)) { if (is_array($output)) { $output = implode("
", $output); } $html_out .= str_replace("\n", "
", "
$output