/***************************************************************************
-* 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 *
***************************************************************************/
#include "libkita/kita_misc.h"
-#include "libkita/parsemisc.h"
#include "libkita/signalcollection.h"
#include "libkita/datmanager.h"
#include "libkita/boardmanager.h"
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() ) {
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 );
/* 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 ) );
}
/* 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;
int max = count();
if ( max == 0 ) return ;
- KURL datURL = Kita::ParseMisc::parseURLonly( url );
-
/* disable all ok buttons. */
int i = 0;
while ( i < max ) {
}
/* 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 ) );
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 )
{
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 );
}
+/* 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 )
return Kita::getThreadURL( url );
}
-/* public */
-bool DatManager::is2chThread( const KURL& url )
-{
- if( BoardManager::type( url ) == Board_2ch ) return TRUE;
- return FALSE;
-}
-
/* 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 );
/* obsolete. Don't use them. */
static const QString threadURL( const KURL& url );
- static bool is2chThread( const KURL& url );
private:
{
QString indexPath = Kita::Cache::getIndexPath( url );
KConfig config( indexPath );
- return getViewPosPrivate( url, config );
+ return getViewPosPrivate( config );
}
void ThreadIndex::setViewPos( const KURL& url, int viewPos )
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() );
}
/*-------*/
/* 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 */
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 );
};
}
/* 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 );
m_bbscgi = Kita::BoardManager::boardRoot( m_datURL ) + "/test/bbs.cgi";
}
-
+
/* connect signals */
connect( buttonOk, SIGNAL( clicked() ),
SLOT( 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 );
int retcode = resultCode( response );
- qDebug( "\ncode: %d\n", retcode );
- qDebug( "%s\n", ( const char * ) response.local8Bit() );
-
switch ( retcode ) {
case K2ch_True:
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();
}
}
-/* private */
+/* create posting message for 2ch */ /* private */
QString KitaWriteView::setPostStr()
{
QString ret;
}
-/* private */
+/* create posting message for JBBS */ /* private */ /* private */
QString KitaWriteView::setJBBSPostStr()
{
QString ret;
}
-/* private */
+/* create posting message for Flash CGI */ /* private */ /* private */
QString KitaWriteView::setFlashCGIPostStr()
{
QString ret;
} 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 ) {
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;