OSDN Git Service

>>532
authorikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Mon, 15 Nov 2004 15:35:36 +0000 (15:35 +0000)
committerikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Mon, 15 Nov 2004 15:35:36 +0000 (15:35 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@1525 56b19765-1e22-0410-a548-a0f45d66c51a

kita/src/libkita/access.cpp
kita/src/libkita/datinfo.cpp
kita/src/part/kitawriteview.cpp
kita/src/part/kitawriteview.h

index 052d95c..95704e4 100644 (file)
@@ -127,7 +127,9 @@ bool Access::getupdate( int readNum )
     job->addMetaData( "PropagateHttpHeader", "true" );
 
     /* resume */
-    if ( m_bbstype == Board_2ch && ! m_orgData.isNull() ) {
+    if ( m_bbstype != Board_MachiBBS
+         && m_bbstype != Board_JBBS
+         && ! m_orgData.isNull() ) {
         m_firstReceive = TRUE; /* remove first char. see also slotReceiveThreadData() */
         job->addMetaData( "resume", QString::number( m_orgData.length() - 1 ) );
         job->addMetaData( "AllowCompressedPage", "false" );
index bba170a..9cb16e1 100644 (file)
@@ -676,12 +676,14 @@ QString DatInfo::getTreeByResCore(
    then return TRUE.                            */  /* private */
 bool DatInfo::checkRes( const int num, const int target )
 {
+    const int range = 20;
     if ( ! parseDat( num ) ) return FALSE;
 
     setAncList( num );
     AncList& anclist = m_resDatVec[ num ].anclist;
 
     for ( AncList::iterator it = anclist.begin(); it != anclist.end(); ++it ) {
+        if( ( *it ).to - ( *it ).from > range ) continue;
         if ( target >= ( *it ).from && target <= ( *it ).to ) return TRUE;
     }
 
index 61cc200..643f6f6 100644 (file)
 #include "kitahtmlview.h"
 #include "libkita/datmanager.h"
 #include "libkita/boardmanager.h"
-#include "libkita/parsemisc.h"
 #include "libkita/signalcollection.h"
 #include "libkita/account.h"
 #include "libkita/kita-utf8.h"
+#include "libkita/kita_misc.h"
 
 #include <ksqueezedtextlabel.h>
 #include <klocale.h>
@@ -71,9 +71,11 @@ Call slotPostMessage() to post the message.
 KitaWriteView::KitaWriteView( QWidget* parent, const char* name, const KURL& url, int mode, const QString& newThreadName )
         : KitaWriteDialogBase( parent, name, 0 )
 {
+    if ( !m_cp932Codec ) m_cp932Codec = new QCp932Codec();
+    
     m_mode = mode;
 
-    if ( m_mode == WRITEMODE_NORMAL ) m_datURL = Kita::ParseMisc::parseURLonly( url );
+    if ( m_mode == WRITEMODE_NORMAL ) m_datURL = Kita::getDatURL( url );
     else {
         /* create new thread */
 
@@ -86,12 +88,12 @@ KitaWriteView::KitaWriteView( QWidget* parent, const char* name, const KURL& url
     qDebug( "url: %s\n", m_datURL.prettyURL().ascii() );
 
     m_bbstype = Kita::BoardManager::type( m_datURL );
-    
-    if( m_bbstype == Kita::Board_2ch ){ /* 2ch */
-       m_bbscgi = Kita::BoardManager::boardRoot( m_datURL ) + "/test/bbs.cgi";
-    }
-    else if ( m_bbstype == Kita::Board_JBBS ){ /* JBBS */
 
+    /* set path of bbs.cgi */
+    switch( m_bbstype ){
+       
+    case Kita::Board_JBBS:
+    {
        QString cgipath = Kita::BoardManager::boardRoot( m_datURL )
            + "/bbs/write.cgi/" + Kita::BoardManager::boardID( m_datURL ) + "/";
        
@@ -101,6 +103,13 @@ KitaWriteView::KitaWriteView( QWidget* parent, const char* name, const KURL& url
        m_bbscgi = cgipath;
     }
 
+       break;
+
+    default:
+
+       m_bbscgi = Kita::BoardManager::boardRoot( m_datURL ) + "/test/bbs.cgi";
+    }
+
     /* connect signals */
     connect( buttonOk, SIGNAL( clicked() ),
              SLOT( slotPostMessage() ) );
@@ -135,7 +144,7 @@ KitaWriteView::KitaWriteView( QWidget* parent, const char* name, const KURL& url
     bodyText->setFont( font );
     bodyText->setTabChangesFocus( TRUE );
 
-    boardNameLabel->setText( Kita::DatManager::boardName( m_datURL ) );
+    boardNameLabel->setText( Kita::BoardManager::boardName( m_datURL ) );
     if ( m_mode == WRITEMODE_NORMAL ) {
         threadName->setText( Kita::DatManager::threadName( m_datURL ) );
         threadName->setReadOnly( TRUE );
@@ -230,7 +239,7 @@ void KitaWriteView::slotPostMessage()
 
     /* fusianasan */
     if ( nameLine->text().length() == 0
-            && Kita::DatManager::getBBSDefaultName( m_datURL ) == "fusianasan" ) {
+            && Kita::BoardManager::getBBSDefaultName( m_datURL ) == "fusianasan" ) {
         QMessageBox::warning( this, "Kita", i18n( "fusianasan." ) );
         return ;
     }
@@ -243,10 +252,19 @@ void KitaWriteView::slotPostMessage()
     QString name = nameLine->text();
     KitaConfig::addNameCompletionItem( name );
 
+    /* set post message */
     QString postStr;
-    if( m_bbstype == Kita::Board_2ch ) postStr = setPostStr();
-    else if( m_bbstype == Kita::Board_JBBS ) postStr = setJBBSPostStr();
-    QString refStr = Kita::DatManager::boardURL( m_datURL );
+    switch( m_bbstype ){
+       
+    case Kita::Board_JBBS: postStr = setJBBSPostStr(); break;
+       
+    case Kita::Board_FlashCGI: postStr = setFlashCGIPostStr(); break;
+
+    default: postStr = setPostStr(); break;
+    }
+
+    /* referrer */
+    QString refStr = Kita::BoardManager::boardURL( m_datURL );
 
     qDebug( "\ndaturl: %s", m_datURL.prettyURL().ascii() );
     qDebug( "bbscgi: %s", m_bbscgi.prettyURL().ascii() );
@@ -342,7 +360,7 @@ void KitaWriteView::slotPostFinished( KIO::Job* )
         /* reload board */
         else {
 
-            QString board = Kita::DatManager::boardURL( m_datURL );
+            QString board = Kita::BoardManager::boardURL( m_datURL );
             emit openURLRequestExt( board, KParts::URLArgs(), "kita_open_2chboard", 0 );
 
             emit closeCurrentTab(); /* to KitaWriteTabWidget */
@@ -378,7 +396,7 @@ void KitaWriteView::slotPostFinished( KIO::Job* )
                                          QTextCodec::codecForName( "utf8" ) ->toUnicode( KITAUTF8_WRITENEWTHREAD ),
                                          resultTitle( response ) )
                 == KMessageBox::Yes ) {
-            m_bbscgi = Kita::DatManager::boardRoot( m_datURL ) + "test/subbbs.cgi";
+            m_bbscgi = Kita::BoardManager::boardRoot( m_datURL ) + "test/subbbs.cgi";
             slotPostMessage();
         }
 
@@ -408,12 +426,12 @@ void KitaWriteView::slotCurrentChanged ( QWidget * w )
     QString bodystr = body();
     bodystr.replace( "<", "&lt;" ).replace( ">", "&gt;" ).replace( "\n", " <br> " );
     QString namestr = name();
-    if ( namestr == NULL || namestr.length() == 0 ) namestr = Kita::DatManager::getBBSDefaultName( m_datURL );
+    if ( namestr == NULL || namestr.length() == 0 ) namestr = Kita::BoardManager::getBBSDefaultName( m_datURL );
     QString rawData = namestr + "<>" + mail() + "<>"
                       + now.toString( "yy/MM/dd hh:mm:ss" )
                       + "<> " + bodystr + " <>";
 
-    QString htmlstr = Kita::ParseMisc::DatToHtml( rawData, resnum, KitaConfig::showMailAddress() );
+    QString htmlstr = Kita::DatToHtml( rawData, resnum, KitaConfig::showMailAddress() );
     m_preview->setInnerHTML( htmlstr );
 }
 
@@ -421,8 +439,6 @@ void KitaWriteView::slotCurrentChanged ( QWidget * w )
 /* private slot */
 bool KitaWriteView::slotBodyTextChanged()
 {
-    if ( !m_cp932Codec ) m_cp932Codec = new QCp932Codec();
-
     int lines = bodyText->lines();
     int maxLines = Kita::BoardManager::getBBSMaxLine( m_datURL );
     int tmpln = bodyText->length();
@@ -445,7 +461,6 @@ bool KitaWriteView::slotBodyTextChanged()
 QString KitaWriteView::setPostStr()
 {
     QString ret;
-    if ( !m_cp932Codec ) m_cp932Codec = new QCp932Codec();
 
     int mib = m_cp932Codec->mibEnum();
     int serverTime;
@@ -465,7 +480,7 @@ QString KitaWriteView::setPostStr()
     ( ret += "&FROM=" ) += KURL::encode_string( nameLine->text(), mib );
     ( ret += "&mail=" ) += KURL::encode_string( mailLine->text(), mib );
     ( ret += "&MESSAGE=" ) += KURL::encode_string( bodyText->text(), mib );
-    ( ret += "&bbs=" ) += Kita::DatManager::boardID( m_datURL );
+    ( ret += "&bbs=" ) += Kita::BoardManager::boardID( m_datURL );
 
     /* key */
     if ( m_mode == WRITEMODE_NORMAL ) ( ret += "&key=" ) += Kita::DatManager::threadID( m_datURL );
@@ -487,7 +502,6 @@ QString KitaWriteView::setPostStr()
 QString KitaWriteView::setJBBSPostStr()
 {
     QString ret;
-    if ( !m_cp932Codec ) m_cp932Codec = new QCp932Codec();
 
     int mib = m_cp932Codec->mibEnum();
     int serverTime;
@@ -523,10 +537,37 @@ QString KitaWriteView::setJBBSPostStr()
 }
 
 
+/* private */
+QString KitaWriteView::setFlashCGIPostStr()
+{
+    QString ret;
+
+    int mib = m_cp932Codec->mibEnum();
+
+    /* submit ( URL encoded ) */
+    if ( m_mode == WRITEMODE_NORMAL ) ( ret += "submit=" ) += "%8f%91%82%ab%8d%9e%82%de";  /* kakikomu */
+    else ( ret += "submit=" ) += "%90V%8bK%83X%83%8c%83b%83h%8d%ec%90%ac"; /* sinki thread sakusei */
+
+    /* subject */
+    if ( m_mode == WRITEMODE_NEWTHREAD ) ( ret += "&subject=" ) += KURL::encode_string( threadName->text(), mib );
+
+    /* from, mail, message, bbs */
+    ( ret += "&FROM=" ) += KURL::encode_string( nameLine->text(), mib );
+    ( ret += "&mail=" ) += KURL::encode_string( mailLine->text(), mib );
+    ( ret += "&MESSAGE=" ) += KURL::encode_string( bodyText->text(), mib );
+    ( ret += "&bbs=" ) += Kita::BoardManager::boardID( m_datURL );
+
+    /* key */
+    if ( m_mode == WRITEMODE_NORMAL ) ( ret += "&key=" ) += Kita::DatManager::threadID( m_datURL );
+
+    return ret;
+}
+
+
 /* save post log */ /* private */
 void KitaWriteView::logPostMessage()
 {
-    QString boardName = Kita::DatManager::boardName( m_datURL );
+    QString boardName = Kita::BoardManager::boardName( m_datURL );
     QString threadName = Kita::DatManager::threadName( m_datURL );
     QString threadURL = Kita::DatManager::threadURL( m_datURL );
 
@@ -592,8 +633,19 @@ int KitaWriteView::resultCode( const QString& response ) const
                       && response.contains( ckstr )
                       && response.contains( "subbbs.cgi" ) ) retcode = K2ch_NewThread;
 
+            /* for Flash CGI */
+            else if( m_bbstype == Kita::Board_FlashCGI ){
+               
+                if( title.contains( "ERROR!!" ) ) retcode = K2ch_Error;    
+                else retcode = K2ch_True;
+            }
+           
             /* for JBBS.  adhoc... */
-            else if( m_bbstype == Kita::Board_JBBS && response.contains( "x-euc-jp" ) ) retcode = K2ch_True;
+            else if( m_bbstype == Kita::Board_JBBS ){
+               
+                 if ( response.contains( "x-euc-jp" ) ) retcode = K2ch_True;
+                 else retcode = K2ch_Error;
+            }
         }
     }
 
@@ -604,6 +656,17 @@ int KitaWriteView::resultCode( const QString& response ) const
 /* private */
 QString KitaWriteView::resultMessage( const QString& response ) const
 {
+    if( m_bbstype == Kita::Board_FlashCGI ){
+       
+       QRegExp regexp( "<blockquote>(.*)</blockquote>" );
+       int pos = regexp.search( response );
+       if ( pos != -1 ) {
+           return regexp.cap( 1 ).replace( "<br>", "\n" );
+       }
+
+       return QString::null;
+    }
+    
     QRegExp regexp( "<b>([^<]*)</b>" );
     int pos = regexp.search( response );
     if ( pos != -1 ) {
index bc63010..9aaee5d 100644 (file)
@@ -76,6 +76,7 @@ private:
  
     QString setPostStr();
     QString setJBBSPostStr();
+    QString setFlashCGIPostStr();
     void logPostMessage();    
     int resultCode( const QString& response ) const;
     QString resultMessage( const QString& response ) const;