Commit:    7cbd35c71a8e5c5c76178e19c23af2176f373d80
Author:    Ben Ramsey <[email protected]>         Sat, 23 Jan 2016 00:36:06 
-0500
Parents:   1a72cf3803f548fd59b5c302b0fa5b1d45341e9c
Branches:  master

Link:       
http://git.php.net/?p=web/news.git;a=commitdiff;h=7cbd35c71a8e5c5c76178e19c23af2176f373d80

Log:
Use Nntp class to list messages on individual group page

Changed paths:
  M  group.php


Diff:
diff --git a/group.php b/group.php
index 36d61f7..58c0c91 100644
--- a/group.php
+++ b/group.php
@@ -21,25 +21,11 @@ if (isset($_GET['i'])) {
        $i = 0;
 }
 
-$s = nntp_connect(NNTP_HOST);
-if (!$s) {
-       error("Failed to connect to news server");
-}
-
-$res = nntp_cmd($s,"GROUP $group",211);
-if (!$res) {
-       error("Failed to get info on group");
-}
-
-list (, $f, $l, $g) = explode(" ", $res);
-if (!$i || $i > $l - 19 || $i < $f) {
-       $i = $l - $f > 19 ? $l - 19 : $f;
-}
-$n = min($l, $i + 19);
-
-$res = nntp_cmd($s,"XOVER $i-$n", 224);
-if (!$res) {
-       error("Failed to get xover data");
+try {
+       $nntpClient = new \Web\News\Nntp(NNTP_HOST);
+       $overview = $nntpClient->getArticlesOverview($group, $i);
+} catch (Exception $e) {
+       error($e->getMessage());
 }
 
 $host = htmlspecialchars($_SERVER['HTTP_HOST'], ENT_QUOTES, "UTF-8");
@@ -71,7 +57,7 @@ break;
 case 'html':
 default:
 head($group);
-navbar($group,$f,$l,$i);
+navbar($group, $overview['group']['low'], $overview['group']['high'], 
$overview['group']['start']);
 echo '  <table class="stripped" width="100%">' . "\n";
 echo '   <tr>' . "\n";
 echo '    <th>#</td>' . "\n";
@@ -85,43 +71,39 @@ break;
 
 # list of articles
 # TODO: somehow determine the correct charset
-$charset = "";
+$charset = "utf-8";
 
-while ($line = fgets($s, 16384)) {
-       if ($line == ".\r\n") break;
-       $line = chop($line);
-       
list($n,$subj,$author,$odate,$messageid,$references,$bytes,$lines,$extra)
-       = explode("\t", $line, 9);
+foreach ($overview['articles'] as $articleNumber => $details) {
        /*  $date = date("H:i:s M/d/y", strtotime($odate)); */
-       $date822 = date("r", strtotime($odate));
+       $date822 = date("r", strtotime($details['date']));
 
        switch($format) {
                case 'rss':
                echo "  <item>\n";
-               echo "   <link>http://$host/$group/$n</link>\n";
-               echo "   <title>", format_subject($subj, $charset), 
"</title>\n";
-               echo "   <description>", 
htmlspecialchars(format_author($author, $charset), ENT_QUOTES, "UTF-8"), 
"</description>\n";
+               echo "   <link>http://$host/$group/$articleNumber</link>\n";
+               echo "   <title>", format_subject($details['subject'], 
$charset), "</title>\n";
+               echo "   <description>", 
htmlspecialchars(format_author($details['author'], $charset), ENT_QUOTES, 
"UTF-8"), "</description>\n";
                echo "   <pubDate>$date822</pubDate>\n";
                echo "  </item>\n";
                break;
                case 'rdf':
                echo " <item>\n";
-               echo "  <title>", format_subject($subj, $charset), "</title>\n";
-               echo "  <link>http://$host/$group/$n</link>\n";
-               echo "  <description>", htmlspecialchars(format_author($author, 
$charset), ENT_QUOTES, "UTF-8"), "</description>\n";
+               echo "  <title>", format_subject($details['subject'], 
$charset), "</title>\n";
+               echo "  <link>http://$host/$group/$articleNumber</link>\n";
+               echo "  <description>", 
htmlspecialchars(format_author($details['author'], $charset), ENT_QUOTES, 
"UTF-8"), "</description>\n";
                echo "  <pubDate>$date822</pubDate>\n";
                echo " </item>\n";
                break;
                case 'html':
                default:
                echo "   <tr>\n";
-               echo "    <td><a href=\"/$group/$n\">$n</a></td>\n";
-               echo "    <td><a href=\"/$group/$n\">";
-               echo format_subject($subj, $charset);
+               echo "    <td><a 
href=\"/$group/$articleNumber\">$articleNumber</a></td>\n";
+               echo "    <td><a href=\"/$group/$articleNumber\">";
+               echo format_subject($details['subject'], $charset);
                echo "</a></td>\n";
-               echo "    <td vcard\">".format_author($author, 
$charset)."</td>\n";
-               echo "    <td align=\"center\"><tt>" . format_date($odate) . 
"</tt></td>\n";
-               echo "    <td align=\"right\">$lines</td>\n";
+               echo "    <td vcard\">".format_author($details['author'], 
$charset)."</td>\n";
+               echo "    <td align=\"center\"><tt>" . 
format_date($details['date']) . "</tt></td>\n";
+               echo "    <td align=\"right\">{$details['lines']}</td>\n";
                echo "   </tr>\n";
        }
 }
@@ -136,7 +118,7 @@ switch ($format) {
        case 'html':
        default:
        echo "  </table>\n";
-       navbar($group, $f, $l, $i);
+       navbar($group, $overview['group']['low'], $overview['group']['high'], 
$overview['group']['start']);
        foot();
 }


--
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to