#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>
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 */
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 ) + "/";
m_bbscgi = cgipath;
}
+ break;
+
+ default:
+
+ m_bbscgi = Kita::BoardManager::boardRoot( m_datURL ) + "/test/bbs.cgi";
+ }
+
/* connect signals */
connect( buttonOk, SIGNAL( clicked() ),
SLOT( slotPostMessage() ) );
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 );
/* 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 ;
}
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() );
/* 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 */
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();
}
QString bodystr = body();
bodystr.replace( "<", "<" ).replace( ">", ">" ).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 );
}
/* 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();
QString KitaWriteView::setPostStr()
{
QString ret;
- if ( !m_cp932Codec ) m_cp932Codec = new QCp932Codec();
int mib = m_cp932Codec->mibEnum();
int serverTime;
( 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 );
QString KitaWriteView::setJBBSPostStr()
{
QString ret;
- if ( !m_cp932Codec ) m_cp932Codec = new QCp932Codec();
int mib = m_cp932Codec->mibEnum();
int serverTime;
}
+/* 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 );
&& 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;
+ }
}
}
/* 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 ) {