} else retstr = "";
if ( responseCode() != 200 && responseCode() != 206 ) retstr = QString::null;
+ if ( Kita::boardType( m_thread->datURL() ) == Board_MachiBBS ) {
+ emit receiveData( m_threadData );
+ }
emit finishLoad();
}
}
m_firstReceive = FALSE;
m_threadData += cstr ;
- emit receiveData( cstr );
+ if ( Kita::boardType( m_thread->datURL() ) != Board_MachiBBS ) {
+ emit receiveData( cstr );
+ }
}
}
}
-
-
+void DatInfo::copyRawDataToBuffer_MachiBBS( const QString& rawData )
+{
+ QString data = Kita::ParseMisc::qcpToUnicode( rawData );
+ QStringList lines = QStringList::split( "\n", data );
+ QRegExp regexp( "<dt>.*<font color=\"#......\"><b> (.*) </b></font> .* (..../../..).* (..:..:..) ID:(.*)<br><dd>(.*)" );
+ QRegExp regexp2( "<dt>.*<a href=\"mailto:(.*)\"><b> (.*) </B></a> .* (..../../..).* (..:..:..) ID:(.*)<br><dd>(.*)" );
+ int resNum = 0;
+ for ( QStringList::iterator it = lines.begin(); it != lines.end(); ++it ) {
+ QString line = (*it);
+ if ( regexp.search( line ) != -1 ) {
+ resNum++;
+ QString name = regexp.cap( 1 );
+ QString date = regexp.cap( 2 );
+ QString time = regexp.cap( 3 );
+ QString id = regexp.cap( 4 );
+ QString message = regexp.cap( 5 );
+ QString datStr = name + "<><>" + date + " " + time + " ID:" + id
+ + "<>" + message + "<>";
+ setDat( datStr, resNum );
+ } else if ( regexp2.search( line ) != -1 ) {
+ resNum++;
+ QString mail = regexp2.cap( 1 );
+ QString name = regexp2.cap( 2 );
+ QString date = regexp2.cap( 3 );
+ QString time = regexp2.cap( 4 );
+ QString id = regexp2.cap( 5 );
+ QString message = regexp2.cap( 6 );
+ QString datStr = name + "<>" + mail + "<>" + date + " " + time + " ID:" + id
+ + "<>" + message + "<>";
+ setDat( datStr, resNum );
+ }
+ }
+ m_thread->setResNum( resNum );
+ KitaThreadInfo::setReadNum( m_url.prettyURL(), resNum );
+}
/* copy raw lines to buffer */
to copy the last line to buffer. */ /* private */
void DatInfo::copyRawDataToBuffer(const QString& rawData)
{
+ if ( Kita::boardType( m_url.url() ) == Board_MachiBBS ) {
+ copyRawDataToBuffer_MachiBBS( rawData );
+ return;
+ }
QStringList linelist;
int basenum = m_maxNum + 1;
bool endIsLF = FALSE;