'; echo '

List of Available Newsgroups:

'; // Use cache if new enough if (filemtime($grouplist_cache_filename) > (time() - $grouplist_cache_time)) { // Allow refresh from cron.php if($argv[1] != '.RELOAD') { echo file_get_contents($grouplist_cache_filename); exit(); } } ob_start(); echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $menulist = file($config_dir . "menu.conf", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $groups_array = array(); foreach ($menulist as $menu) { if (($menu[0] == '#') || trim($menu) == "") { continue; } $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]); } } } //ksort($groups_array); $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 '
SectionGroupDescriptionMessages
'; 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 ''; echo ''; file_put_contents($grouplist_cache_filename, ob_get_contents()); ob_end_flush();