post is now in the lib too. have to work on the actions now.
[banana.git] / thread.php
index ba1efe0..488e047 100644 (file)
 * Copyright: See COPYING files that comes with this distribution
 ********************************************************************************/
 
-require_once("include/session.inc.php");
-require_once("include/misc.inc.php");
-require_once("include/format.inc.php");
-require_once("include/config.inc.php");
-require_once("include/NetNNTP.inc.php");
-require_once("include/post.inc.php");
-require_once("include/spool.inc.php");
-require_once("include/password.inc.php");
-require_once("include/profile.inc.php");
-require_once("include/error.inc.php");
-
-$profile=getprofile();
+require_once("include/banana.inc.php");
 require_once("include/header.inc.php");
 
 if (isset($_REQUEST['group'])) {
-  $group=htmlentities(strtolower($_REQUEST['group']));
+    $group = htmlentities(strtolower($_REQUEST['group']));
 } else {
-  $group=htmlentities(strtolower(strtok(str_replace(" ","",$_REQUEST['newsgroups']),",")));
+    $group = htmlentities(strtolower(strtok(str_replace(" ","",$_REQUEST['newsgroups']),",")));
 }
 
 if (isset($_REQUEST['id'])) {
-  $id=htmlentities(strtolower($_REQUEST['id']));
+    $id=htmlentities(strtolower($_REQUEST['id']));
 }
 
-//$nntp = new nntp($news['server'],120,1);
-$nntp = new nntp($news['server']);
-if (!$nntp) error("nntpsock");
-if ($news['user']!="anonymous") {
-  $result = $nntp->authinfo($news["user"],$news["pass"]);
-  if (!$result) error("nntpauth");
-}
-$spool = new spool($nntp,$group,$profile['display'],
-  $profile['lastnews']);
-if (!$spool) error("nntpspool");
-$max = 50;
-if (isset($_REQUEST['first']) && ($_REQUEST['first']>sizeof($spool->overview)))
-  $_REQUEST['first']=sizeof($spool->overview);
-$first = (isset($_REQUEST['first'])?
-  (floor($_REQUEST['first']/$max)*$max+1):1);
-$last  = (isset($_REQUEST['first'])?
-  (floor($_REQUEST['first']/$max+1)*$max):$max);
+echo $banana->action_showThread($group, $_REQUEST['first'] ? $_REQUEST['first'] : 1);
 
-if (isset($_REQUEST['action']) && (isset($_REQUEST['type'])) && 
-(isset($_SESSION['bananapostok'])) && ($_SESSION['bananapostok'])) {
-  switch ($_REQUEST['type']) {  
-    case 'cancel':
-      $mid = array_search($id,$spool->ids);
-      $nntp->group($group);
-      $post = new NNTPPost($nntp,$id);
-      
-      if (checkcancel($post->headers)) {
-        $message = 'From: '.$profile['name']."\n"
-          ."Newsgroups: $group\n"
-          ."Subject: cmsg $mid\n"
-          .$news['customhdr']
-          ."Control: cancel $mid\n"
-          ."\n"
-          ."Message canceled with Banana";
-        $result = $nntp->post($message);
-        if ($result) {
-          $spool->delid($id);
-          $text = "<p class=\"normal\">"._b_('Message annulé')."</p>";
-        } else {
-          $text = "<p class=\"error\">"._b_('Impossible d\'annuler le message')."</p>";
-        }
-      } else {
-        $text="<p class=\"error\">\n\t"._b_('Vous n\'avez pas les permissions pour annuler ce message')."\n</p>";
-      }
-      break;
-    case 'new':
-      $body = preg_replace("/\n\.[ \t\r]*\n/m","\n..\n",stripslashes($_REQUEST['body']));
-      $message = 'From: '.$profile['name']."\n"
-        ."Newsgroups: ".stripslashes(str_replace(" ","",
-          $_REQUEST['newsgroups']))."\n"
-        ."Subject: ".stripslashes($_REQUEST['subject'])."\n"
-        .(isset($profile['org'])?"Organization: ".$profile['org']."\n":"")
-        .($_REQUEST['followup']!=''?'Followup-To: '
-        .stripslashes($_REQUEST['followup'])."\n":"")
-        .$news['customhdr']
-        ."\n"
-        .wrap($body,"",$news['wrap']);
-      $result = $nntp->post($message);
-      if ($result) {
-        $text="<p class=\"normal\">"._b_('Message posté')."</p>";
-      } else {
-        $text="<p class=\"error\">"._b_('Impossible de poster le message')."</p>";
-      }
-      break;
-    case 'followupok':
-      $rq=$nntp->group($group);
-      $post = new NNTPPost($nntp,$id);
-      if ($post) {
-        $refs = (isset($post->headers->references)?
-                $post->headers->references." ":"").$post->headers->msgid;
-      }
-    
-      $body = preg_replace("/\n\.[ \t\r]*\n/m","\n..\n",stripslashes($_REQUEST['body']));
-      $message = 'From: '.$profile['name']."\n"
-        ."Newsgroups: ".stripslashes($_REQUEST['newsgroups'])."\n"
-        ."Subject: ".stripslashes($_REQUEST['subject'])."\n"
-        .(isset($profile['org'])?"Organization: ".$profile['org']."\n":"")
-        .($_REQUEST['followup']!=''?'Followup-To: '
-        .stripslashes($_REQUEST['followup'])."\n":"")
-        ."References: $refs\n"
-        .$news['customhdr']
-        .$profile['customhdr']
-        ."\n"
-        .wrap($body,"",$news['wrap']);
-      $result = $nntp->post($message);
-      if ($result) {
-        $text="<p class=\"normal\">"._b_('Message posté')."</p>";
-      } else {
-        $text="<p class=\"error\">"._b_('Impossible de poster le message')."</p>";
-      }
-      break;
-  }
-  $_SESSION['bananapostok']=false;
-  $spool = new spool($nntp,$group,$profile['display'],
-    $profile['lastnews']);
-  if (!$spool) error("nntpspool");
-}
+if (isset($_REQUEST['action']) && (isset($_REQUEST['type']))
+        && (isset($_SESSION['bananapostok'])) && ($_SESSION['bananapostok']))
+{
+    switch ($_REQUEST['type']) {  
+        case 'cancel':
+            $mid  = array_search($id, $banana->spool->ids);
+            $banana->newPost($id);
 
+            if ($banana->post && $banana->post->checkcancel()) {
+                $message = 'From: '.$banana->profile['name']."\n"
+                    ."Newsgroups: $group\n"
+                    ."Subject: cmsg $mid\n"
+                    .$banana->custom
+                    ."Control: cancel $mid\n"
+                    ."\n"
+                    ."Message canceled with Banana";
+                if ($banana->nntp->post($message)) {
+                    $banana->spool->delid($id);
+                    $text = "<p class=\"normal\">"._b_('Message annulé')."</p>";
+                } else {
+                    $text = "<p class=\"error\">"._b_('Impossible d\'annuler le message')."</p>";
+                }
+            } else {
+                $text = "<p class=\"error\">\n\t"._b_('Vous n\'avez pas les permissions pour annuler ce message')."\n</p>";
+            }
+            break;
 
-?>
-<h1>
-  <?php echo $group; ?>
-</h1>
-<?php
-if (isset($text)) {
-    echo $text;
-}
-displayshortcuts();
-
-?>
+        case 'new':
+            $body = preg_replace("/\n\.[ \t\r]*\n/m","\n..\n",$_REQUEST['body']);
+            $message = 'From: '.$banana->profile['name']."\n"
+                ."Newsgroups: ".str_replace(" ","", $_REQUEST['newsgroups'])."\n"
+                ."Subject: ".$_REQUEST['subject']."\n"
+                .(isset($banana->profile['org'])?"Organization: ".$banana->profile['org']."\n":"")
+                .($_REQUEST['followup']!=''?'Followup-To: '.$_REQUEST['followup']."\n":"")
+                .$banana->custom
+                ."\n"
+                .wrap($body, "", $banana->wrap);
+            if ($banana->nntp->post($message)) {
+                $text = "<p class=\"normal\">"._b_('Message posté')."</p>";
+            } else {
+                $text = "<p class=\"error\">"._b_('Impossible de poster le message')."</p>";
+            }
+            break;
 
-<table class="<?php echo $css['bicol']?>" cellpadding="0" cellspacing="0" border="0">
-  <tr>
-    <th class="<?php echo $css['date']?>">
-      <?php echo _b_('Date'); ?>
-    </th>
-    <th class="<?php echo $css['subject']?>">
-      <?php echo _b_('Sujet'); ?>
-    </th>
-    <th class="<?php echo $css['from']?>">
-      <?php echo _b_('Auteur'); ?>
-    </th>
-  </tr>
-<?php
-$spool->disp($first,$last);
-$nntp->quit();
-echo "</table>";
+        case 'followupok':
+            $banana->newPost($id);
+            if ($banana->post) {
+                $refs = (isset($banana->post->headers['references'])?
+                $banana->post->headers['references']." ":"").$banana->post->headers['message-id'];
+            }
 
-displayshortcuts();
+            $body = preg_replace("/\n\.[ \t\r]*\n/m","\n..\n",$_REQUEST['body']);
+            $message = 'From: '.$banana->profile['name']."\n"
+                ."Newsgroups: ".$_REQUEST['newsgroups']."\n"
+                ."Subject: ".$_REQUEST['subject']."\n"
+                .(isset($banana->profile['org'])?"Organization: ".$banana->profile['org']."\n":"")
+                .($_REQUEST['followup']!=''?'Followup-To: '.$_REQUEST['followup']."\n":"")
+                ."References: $refs\n"
+                .$banana->custom
+                .$banana->profile['customhdr']
+                ."\n"
+                .wrap($body, "", $banana->wrap);
+            if ($banana->nntp->post($message)) {
+                $text = "<p class=\"normal\">"._b_('Message posté')."</p>";
+            } else {
+                $text = "<p class=\"error\">"._b_('Impossible de poster le message')."</p>";
+            }
+            break;
+    }
+    $_SESSION['bananapostok']=false;
+    $banana->newSpool($group, $banana->profile['display'], $banana->profile['lastnews']);
+}
 
 require_once("include/footer.inc.php");
 ?>