if (empty($_POST)) { message('nothing selected'); header('Location: ' . $_SERVER['REQUEST_URI']); return; } if (empty($_POST['feed'])) { $feed = new_feed_id(); $message = 'feed created, bookmark this page'; } else { $feed = $_POST['feed']; $message = 'feed updated'; } update_feed($feed, $module, array_keys($_POST['cat'])); header('Location: ' . implode('/', array(WWW_ROOT, 'module', $module, feed_id_encode($feed)))); message($message); return; } $feed = !empty($request_parts[2]) ? feed_id_decode($request_parts[2]) : NULL; $args = array( 'module' => $module, 'filters' => get_filters($module), 'feed' => $feed, 'feed_cats' => get_feed_cats($feed) ); if ($feed) {
function parse_options() { global $html_out, $config_values; $filler = "<br>"; array_keys($_GET); $commands = array_keys($_GET); if (empty($commands)) { return FALSE; } if (preg_match("/^\\//", $commands[0])) { $commands[0] = preg_replace("/^\\//", '', $commands[0]); } switch ($commands[0]) { case 'getClientData': if ($_REQUEST['recent']) { $response = getClientData(1); } else { $response = getClientData(0); } echo $response; exit; case 'delTorrent': $response = delTorrent($_REQUEST['delTorrent'], $_REQUEST['trash'], $_REQUEST['batch']); echo "{$response}"; exit; case 'stopTorrent': $response = stopTorrent($_REQUEST['stopTorrent'], $_REQUEST['batch']); echo "{$response}"; exit; case 'startTorrent': $response = startTorrent($_REQUEST['startTorrent'], $_REQUEST['batch']); echo "{$response}"; exit; case 'moveTo': $response = moveTorrent($_REQUEST['moveTo'], $_REQUEST['torHash'], $_REQUEST['batch']); echo "{$response}"; exit; case 'updateFavorite': $response = update_favorite(); if (preg_match("/^Error:", $response)) { echo "<div id=\"fav_error\" class=\"dialog_window\" style=\"display: block\">{$response}</div>"; } break; case 'updateFeed': update_feed(); break; case 'clearCache': clear_cache(); break; case 'setGlobals': update_global_config(); write_config_file(); break; case 'matchTitle': $feedLink = $_GET['rss']; foreach ($config_values['Feeds'] as $key => $feed) { if ($feed['Link'] == "{$feedLink}") { $idx = $key; } } if ($config_values['Feeds'][$idx]['seedRatio']) { $seedRatio = $config_values['Feeds'][$idx]['seedRatio']; } else { $seedRatio = $config_values['Settings']['Default Seed Ratio']; } if (!$seedRatio) { $seedRatio = -1; } if ($tmp = guess_match(html_entity_decode($_GET['title']), TRUE)) { $_GET['name'] = trim(strtr($tmp['key'], "._", " ")); if ($config_values['Settings']['MatchStyle'] == "glob") { $_GET['filter'] = trim(strtr($tmp['key'], " ._", "???")); $_GET['filter'] .= '*'; } else { $_GET['filter'] = trim($tmp['key']); } $_GET['quality'] = $tmp['data']; $_GET['feed'] = $_GET['rss']; $_GET['button'] = 'Add'; $_GET['savein'] = 'Default'; $_GET['seedratio'] = $seedRatio; } else { $_GET['name'] = $_GET['title']; $_GET['filter'] = $_GET['title']; $_GET['quality'] = 'All'; $_GET['feed'] = $_GET['rss']; $_GET['button'] = 'Add'; $_GET['savein'] = 'Default'; $_GET['seedratio'] = $seedRatio; } if ($config_values['Settings']['Default Feed All'] && preg_match('/^(\\d+)x(\\d+)p?$|^(\\d{8})$/i', $tmp['episode'])) { $_GET['feed'] = 'All'; } $response = update_favorite(); if ($response) { echo "{$response}"; } //break; exit; case 'hide': $response = add_hidden(ucwords($_GET['hide'])); if ($response) { echo "ERROR:{$response}"; } else { $guess = guess_match(html_entity_decode($_GET['hide']), TRUE); echo $guess['key']; } exit; case 'delHidden': del_hidden($_GET['unhide']); break; case 'dlTorrent': // Loaded via ajax foreach ($config_values['Favorites'] as $fav) { $guess = guess_match(html_entity_decode($_GET['title'])); $name = trim(strtr($guess['key'], "._", " ")); if ($name == $fav['Name']) { $downloadDir = $fav['Save In']; } } if ((!isset($downloadDir) || $downloadDir == "Default") && isset($config_values['Settings']['Download Dir'])) { $downloadDir = $config_values['Settings']['Download Dir']; } $r = client_add_torrent(preg_replace('/ /', '%20', trim($_GET['link'])), $downloadDir, $_GET['title'], $_GET['feed']); if ($r == "Success") { $torHash = get_torHash(add_cache($_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 'version_check': echo version_check(); exit; case 'post_bug': global $tw_version; $response = post_bug($_POST['Summary'], $_POST['Name'], $_POST['Email'], $_POST['Priority'], $_POST['Description']); echo $response; exit; case 'get_dialog_data': switch ($_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 '#report_bug': report_bug(); exit; case '#clear_cache': display_clearCache(); exit; case '#show_transmission': display_transmission(); exit; case '#show_info': show_info(urldecode($_GET['episode_name'])); exit; default: exit; } default: $output = "<script type='text/javascript'>alert('Bad Paramaters passed to " . $_SERVER['PHP_SELF'] . ": " . $_SERVER['REQUEST_URI'] . "');</script>"; } if (isset($exec)) { exec($exec, $output); } if (isset($output)) { if (is_array($output)) { $output = implode($filler, $output); } $html_out .= str_replace("\n", "<br>", "<div class='execoutput'>{$output}</div>"); echo $html_out; $html_out = ""; } return; }
//Form for new feed has been posted, insert new record into database update_feed("insert", $fields); show_feed_roster(); break; case "edit": //Display existing record for editing edit_feed($fields); break; case "delete": //Delete record delete_feed(); show_feed_roster(); break; case "update": //Update an existing record update_feed("update", $fields); show_feed_roster(); break; case "topupdate": topupdate(); show_feed_roster(); break; case "catfeed": //Admin clicked button to create feed from category or album thumbnail view cat_feed($fields); break; } function show_feed_roster() { global $CONFIG; $query = "SELECT name, value FROM {$CONFIG['TABLE_CONFIG']} WHERE name like 'cpg_brainfeeder_%' ORDER BY name";
* remove ads. So perhaps this stuff should be left alone, * save that if the user left-clicks on the "Update feed" * link, it should use JS and update in the background, while * if ve middle-clicks, it should use traditional HTML. */ if ($verbose) { error_log("Updating feed_id {$feed_id}"); } $feed = db_get_feed($feed_id); if ($feed === NULL) { // Invalid feed ID, presumably.. error_log("Invalid feed ID: {$feed_id}"); abort("Invalid feed ID: {$feed_id}"); } $handler->start_feed($feed_id, $feed['title']); $err = update_feed($feed_id, $feed); if (!$err) { // XXX - This should never happen $handler->error($feed_id, $feed['title'], "parse_feed() returned " . ($err == "" ? var_export($err) : $err)); } /* Error-checking */ if (isset($err['status']) && $err['status'] != 0) { switch ($out_fmt) { case "json": // XXX - Convert to print_struct()? echo jsonify('state', "error", 'feed_id', $feed_id, 'error', $err['errmsg']); exit(1); case "html": default: abort($err['errmsg']); }
} switch ($_GET['cmd']) { default: agffeed($page); break; case 'edit': edit(); break; case 'delete': delete(); break; case 'install': $return_message = install($_GET['id']); break; case 'update': $feedmsg = update_feed(); agffeed($page, $feedmsg); break; } /** * Main feed display and logic * * @param $page * @param string $feedmsg */ function agffeed($page, $feedmsg = '') { global $domain, $db; ?> <div class="heading">