OSDN Git Service

>>596
authorikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Thu, 25 Nov 2004 15:33:04 +0000 (15:33 +0000)
committerikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Thu, 25 Nov 2004 15:33:04 +0000 (15:33 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@1563 56b19765-1e22-0410-a548-a0f45d66c51a

kita/src/kitawritetabwidget.cpp
kita/src/libkita/boardmanager.cpp
kita/src/libkita/boardmanager.h
kita/src/libkita/datmanager.cpp
kita/src/libkita/datmanager.h
kita/src/libkita/threadindex.cpp
kita/src/libkita/threadindex.h
kita/src/part/kitawriteview.cpp

index 1f0ac6e..48f7861 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
-*   Copyright (C) 2004 by Hideki Ikemoto , (c) 2004 by 421                *
+*   Copyright (C) 2004 by Kita Developers                                 *
 *   ikemo@users.sourceforge.jp                                            *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
@@ -9,7 +9,6 @@
 ***************************************************************************/
 
 #include "libkita/kita_misc.h"
-#include "libkita/parsemisc.h"
 #include "libkita/signalcollection.h"
 #include "libkita/datmanager.h"
 #include "libkita/boardmanager.h"
@@ -64,17 +63,15 @@ void KitaWriteTabWidget::slotCreateNewThread( const KURL& url,
 void KitaWriteTabWidget::openWriteView( int mode, const KURL& url,
                                         const QString& resStr, const QString& subject )
 {
-    KURL datURL = Kita::ParseMisc::parseURLonly( url );
-
     // TODO: machiBBS kakiko support.
-    if ( Kita::BoardManager::type( datURL ) == Kita::Board_MachiBBS ) {
+    if ( Kita::BoardManager::type( url ) == Kita::Board_MachiBBS ) {
         QMessageBox::warning( this, QString( "<(_ _)>" ),
                               i18n( "Can't write to machi BBS in this version." ) );
         return ;
     }
 
     /* view exists */
-    KitaWriteView* view = findWriteView( datURL );
+    KitaWriteView* view = findWriteView( url );
     if ( view ) {
 
         if ( view->body().length() ) {
@@ -97,13 +94,13 @@ void KitaWriteTabWidget::openWriteView( int mode, const KURL& url,
     if ( mode == WRITEMODE_NORMAL ) {
 
         /* write res */
-        threadName = Kita::DatManager::threadName( datURL );
-        new_dlg = new KitaWriteView( this, "write dialog", datURL, WRITEMODE_NORMAL );
+        threadName = Kita::DatManager::threadName( url );
+        new_dlg = new KitaWriteView( this, "write dialog", url, WRITEMODE_NORMAL );
     } else {
 
         /* create new thread */
-        threadName = "New Thread";
-        new_dlg = new KitaWriteView( this, "write dialog", datURL, WRITEMODE_NEWTHREAD, subject );
+        threadName = i18n( "New Thread" );
+        new_dlg = new KitaWriteView( this, "write dialog", url, WRITEMODE_NEWTHREAD, subject );
     }
 
     new_dlg->setMessage( resStr );
@@ -116,11 +113,7 @@ void KitaWriteTabWidget::openWriteView( int mode, const KURL& url,
 /* close view which URL is url. */ /* public slot */
 void KitaWriteTabWidget::slotCloseWriteTab( const KURL& url )
 {
-    if ( count() == 0 ) return ;
-
-    KURL datURL = Kita::ParseMisc::parseURLonly( url );
-
-    KitaWriteView* view = findWriteView( datURL );
+    KitaWriteView* view = findWriteView( url );
     if ( view ) slotCloseTab( indexOf( view ) );
 }
 
@@ -140,7 +133,8 @@ void KitaWriteTabWidget::connectSignals()
 /* private */
 KitaWriteView* KitaWriteTabWidget::findWriteView( const KURL& url )
 {
-    KURL datURL = Kita::ParseMisc::parseURLonly( url );
+    KURL datURL = Kita::getDatURL( url );
+    if( datURL.isEmpty() ) return NULL;
 
     int max = count();
     if ( max == 0 ) return NULL;
@@ -179,8 +173,6 @@ void KitaWriteTabWidget::slotChangeWriteTab( const KURL& url )
     int max = count();
     if ( max == 0 ) return ;
 
-    KURL datURL = Kita::ParseMisc::parseURLonly( url );
-
     /* disable all ok buttons. */
     int i = 0;
     while ( i < max ) {
@@ -190,7 +182,7 @@ void KitaWriteTabWidget::slotChangeWriteTab( const KURL& url )
     }
 
     /* show current url page. */
-    view = findWriteView( datURL );
+    view = findWriteView( url );
     if ( view ) {
         static_cast< KitaDockWidgetBase* >( parentWidget() ) ->slotShowDock( FALSE, FALSE );
         if ( currentPage() != view ) setCurrentPage( indexOf( view ) );
index 44ecf37..aca0c05 100644 (file)
@@ -358,6 +358,15 @@ const QString BoardManager::boardPath( const KURL& url )
     return bdata->bbsPath();
 }
 
+/* (ext) */ /* public */ /* static */
+const QString BoardManager::ext( const KURL& url )
+{
+    BoardData* bdata = getBoardData( url );
+    if( bdata == NULL ) return QString::null;
+
+    return bdata->ext();
+}
+
 /* ID of board for writing */ /* public */ /* static */
 const QString BoardManager::boardID( const KURL& url )
 {
index d6886c1..fb4f172 100644 (file)
@@ -135,6 +135,7 @@ namespace Kita
       static const QStringList allBoardURLList();
       static const QString boardRoot( const KURL& url );      
       static const QString boardPath( const KURL& url );
+      static const QString ext( const KURL& url );      
       static const QString boardID( const KURL& url );      
       static const QString subjectURL( const KURL& url );      
       static const QString boardName( const KURL& url );
index fe52819..dfd31de 100644 (file)
@@ -525,6 +525,21 @@ bool DatManager::isThreadEnrolled( const KURL& url )
 }
 
 
+/* public */
+bool DatManager::is2chThread( const KURL& url )
+{
+    if( BoardManager::type( url ) != Board_2ch ) return FALSE;
+    if( Kita::getDatURL( url ).isEmpty() ) return FALSE;
+    
+    QRegExp url_2ch( ".*\\.2ch\\.net" );
+    QRegExp url_bbspink( ".*\\.bbspink\\.com" );
+    
+    if ( url_2ch.search( url.host() ) != -1
+        || url_bbspink.search( url.host() ) != -1 ) return TRUE;
+    
+    return FALSE;
+}
+
 
 /* public */
 bool DatManager::isResValid( const KURL& url, int num )
@@ -646,10 +661,3 @@ const QString DatManager::threadURL( const KURL& url )
     return Kita::getThreadURL( url );
 }
 
-/* public */
-bool DatManager::is2chThread( const KURL& url )
-{
-    if( BoardManager::type( url ) == Board_2ch ) return TRUE;
-    return FALSE;
-}
-
index 2da998a..80890b9 100644 (file)
@@ -90,6 +90,7 @@ namespace Kita
        
         /* another information */
         static bool isThreadEnrolled( const KURL& url );
+        static bool is2chThread( const KURL& url );
         static bool isResValid( const KURL& url , int num );
         static bool isBroken( const KURL& url );
         static bool isResBroken( const KURL& url , int num );
@@ -110,7 +111,6 @@ namespace Kita
         /* obsolete. Don't use them. */
        
         static const QString threadURL( const KURL& url );
-        static bool is2chThread( const KURL& url );
        
     private:
 
index 3516d07..7cc5eef 100644 (file)
@@ -64,7 +64,7 @@ int ThreadIndex::getViewPos( const KURL& url )
 {
     QString indexPath = Kita::Cache::getIndexPath( url );
     KConfig config( indexPath );
-    return getViewPosPrivate( url, config );
+    return getViewPosPrivate( config );
 }
 
 void ThreadIndex::setViewPos( const KURL& url, int viewPos )
@@ -102,7 +102,7 @@ void ThreadIndex::loadIndex( Kita::Thread* thread, const KURL& url )
     thread->setResNum( getResNumPrivate( url, config ) );
 
     /* load view pos */
-    thread->setViewPos( getViewPosPrivate( url, config ) );
+    thread->setViewPos( getViewPosPrivate( config ) );
     if( thread->viewPos() > thread->readNum() ) thread->setReadNum( thread->viewPos() );
 }
 
@@ -206,18 +206,9 @@ void ThreadIndex::setReadNumPrivate( int readNum, KConfig& config )
 /*-------*/
 
 /* private */ /* static */
-int ThreadIndex::getViewPosPrivate( const KURL& url, KConfig& config )
+int ThreadIndex::getViewPosPrivate( KConfig& config )
 {
-    int viewPos = config.readNumEntry( "ViewPos" );
-
-    /* use obsoleted "cache" file */
-    if( !viewPos ){
-       KURL datURL = Kita::getDatURL( url );
-       viewPos = KitaThreadInfo::readNum( datURL.prettyURL() );
-       if( viewPos ) config.writeEntry( "ViewPos", viewPos );
-    }
-
-    return viewPos;
+    return config.readNumEntry( "ViewPos" );
 }
 
 /* private */ /* static */
index b7b6f31..efdc282 100644 (file)
@@ -55,7 +55,7 @@ namespace Kita
         static int getReadNumPrivate( const KURL& url, KConfig& config );
         static void setReadNumPrivate( int readNum, KConfig& config );
 
-        static int getViewPosPrivate( const KURL& url, KConfig& config );
+        static int getViewPosPrivate( KConfig& config );
         static void setViewPosPrivate( int viewPos, KConfig& config );
     };
 }
index 643f6f6..4fb724c 100644 (file)
@@ -80,12 +80,10 @@ KitaWriteView::KitaWriteView( QWidget* parent, const char* name, const KURL& url
         /* create new thread */
 
         /* set dummy URL  */
-        QRegExp threadcheck( "\\d+.dat" );
-        if ( url.filename().find( threadcheck ) != -1 ) m_datURL = Kita::BoardManager::boardURL( url );
-        else m_datURL = url;
-        m_datURL.addPath( "dat/dummy.dat" );
+        m_datURL = Kita::BoardManager::boardURL( url );
+        QString dummyPath = "dat/dummy" + Kita::BoardManager::ext( url );
+        m_datURL.addPath( dummyPath );
     }
-    qDebug( "url: %s\n", m_datURL.prettyURL().ascii() );
 
     m_bbstype = Kita::BoardManager::type( m_datURL );
 
@@ -109,7 +107,7 @@ KitaWriteView::KitaWriteView( QWidget* parent, const char* name, const KURL& url
 
        m_bbscgi = Kita::BoardManager::boardRoot( m_datURL ) + "/test/bbs.cgi";
     }
-
+    
     /* connect signals */
     connect( buttonOk, SIGNAL( clicked() ),
              SLOT( slotPostMessage() ) );
@@ -266,12 +264,6 @@ void KitaWriteView::slotPostMessage()
     /* referrer */
     QString refStr = Kita::BoardManager::boardURL( m_datURL );
 
-    qDebug( "\ndaturl: %s", m_datURL.prettyURL().ascii() );
-    qDebug( "bbscgi: %s", m_bbscgi.prettyURL().ascii() );
-    qDebug( "%s", ( const char * ) postStr.local8Bit() );
-    qDebug( "referrer: %s", ( const char * ) refStr.local8Bit() );
-
-    kdDebug() << "query: " << postStr << endl;
     m_array.resize( 0 );
 
     KIO::TransferJob* job = KIO::http_post( m_bbscgi, postStr.utf8(), true );
@@ -336,9 +328,6 @@ void KitaWriteView::slotPostFinished( KIO::Job* )
     
     int retcode = resultCode( response );
 
-    qDebug( "\ncode: %d\n", retcode );
-    qDebug( "%s\n", ( const char * ) response.local8Bit() );
-
     switch ( retcode ) {
 
     case K2ch_True:
@@ -396,7 +385,7 @@ void KitaWriteView::slotPostFinished( KIO::Job* )
                                          QTextCodec::codecForName( "utf8" ) ->toUnicode( KITAUTF8_WRITENEWTHREAD ),
                                          resultTitle( response ) )
                 == KMessageBox::Yes ) {
-            m_bbscgi = Kita::BoardManager::boardRoot( m_datURL ) + "test/subbbs.cgi";
+            m_bbscgi = Kita::BoardManager::boardRoot( m_datURL ) + "/test/subbbs.cgi";
             slotPostMessage();
         }
 
@@ -457,7 +446,7 @@ bool KitaWriteView::slotBodyTextChanged()
 }
 
 
-/* private */
+/* create posting message for 2ch */ /* private */
 QString KitaWriteView::setPostStr()
 {
     QString ret;
@@ -498,7 +487,7 @@ QString KitaWriteView::setPostStr()
 }
 
 
-/* private */
+/* create posting message for JBBS */ /* private */ /* private */
 QString KitaWriteView::setJBBSPostStr()
 {
     QString ret;
@@ -537,7 +526,7 @@ QString KitaWriteView::setJBBSPostStr()
 }
 
 
-/* private */
+/* create posting message for Flash CGI */ /* private */ /* private */
 QString KitaWriteView::setFlashCGIPostStr()
 {
     QString ret;
@@ -615,9 +604,6 @@ int KitaWriteView::resultCode( const QString& response ) const
     } else { /* get code from title */
 
         QString title = resultTitle( response );
-        qDebug( "title : [%s] / [%s] "
-               , ( const char * ) title.local8Bit()
-               , ( const char * ) Kita::BoardManager::boardName( m_datURL ).local8Bit() );
 
         if ( title != QString::null ) {
 
@@ -629,6 +615,8 @@ int KitaWriteView::resultCode( const QString& response ) const
             if ( title.contains( errstr ) ) retcode = K2ch_Error;
             else if ( title.contains( truestr ) ) retcode = K2ch_True;
             else if ( title.contains( ckstr ) ) retcode = K2ch_Cookie;
+
+           /* re-post new thread message. adhock... */
             else if ( m_mode == WRITEMODE_NEWTHREAD
                       && response.contains( ckstr )
                       && response.contains( "subbbs.cgi" ) ) retcode = K2ch_NewThread;