List of Available Newsgroups:'; // Use cache if new enough if (filemtime($grouplist_cache_filename) > (time() - $grouplist_cache_time)) { // Allow refresh from cron.php if (isset($argv[1]) && $argv[1] == '.RELOAD') { // Do not use cache, instead rebuild grouplist } else { echo file_get_contents($grouplist_cache_filename); exit(); } } ob_start(); echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $menulist = get_section_menu_array(); $groups_array = array(); foreach ($menulist as $menu) { $menuitem = explode(':', $menu); if ($menuitem[0] == 'spoolnews') { continue; } if ($menuitem[2] == '1') { $in_gl = file($config_dir . $menuitem[0] . "/groups.txt"); foreach ($in_gl as $ok_group) { if (($ok_group[0] == ':') || (trim($ok_group) == "")) { continue; } $ok_group = preg_split("/[ \t]/", trim($ok_group), 2); $groups_array[$ok_group[0]] = $menuitem[0] . '/thread.php?group=' . urlencode($ok_group[0]); } } } $ns = nntp_open(); foreach ($groups_array as $thisgroup) { $section = explode("/", $thisgroup); $group = explode("group=", $thisgroup); if (is_file($spooldir . '/' . urldecode($group[1]) . '-title')) { $title = file_get_contents($spooldir . '/' . urldecode($group[1]) . '-title'); $title = strrchr($title, "\t"); } else { $title = ''; } echo ''; echo ''; echo ''; echo ''; } nntp_close($ns); echo '
SectionNewsgroupDescriptionMessages
'; echo ' ' . $section[0]; echo ''; echo '' . urldecode($group[1]) . "
\r\n"; echo '
' . $title . ''; # Check if group exists. Open it if it does fputs($ns, "group " . urldecode($group[1]) . "\r\n"); $response = line_read($ns); $messages = explode(' ', $response); if (strcmp(substr($response, 0, 3), "211") == 0) { echo "\n" . $messages[1]; } echo '
'; echo '
'; include "../spoolnews/tail.inc"; echo ''; file_put_contents($grouplist_cache_filename, ob_get_contents()); ob_end_flush();