OSDN Git Service

support JBBS's subject.txt
authorikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Sun, 4 Jul 2004 13:09:13 +0000 (13:09 +0000)
committerikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Sun, 4 Jul 2004 13:09:13 +0000 (13:09 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@1222 56b19765-1e22-0410-a548-a0f45d66c51a

kita/src/libkita/board.cpp
kita/src/libkita/board.h
kita/src/libkita/kita_misc.cpp
kita/src/libkita/kita_misc.h

index 5586559..0027358 100644 (file)
@@ -30,6 +30,7 @@ using namespace Kita;
 
 QDict<Board>* Board::m_boardDict = 0;
 QCp932Codec* Board::m_cp932Codec = NULL;
+QEucJpCodec* Board::m_eucJpCodec = NULL;
 
 Board::Board()
 {}
@@ -62,25 +63,33 @@ const QPtrList<Thread> Board::getThreadList( const QString& boardURL )
         QIODevice * tmpDevice = KFilterDev::deviceForFile( tmpFile, "application/x-gzip" );
         tmpDevice->open( IO_ReadOnly );
 
-       if( !m_cp932Codec ) m_cp932Codec = new QCp932Codec();
+        if( !m_cp932Codec ) m_cp932Codec = new QCp932Codec();
+        if( !m_eucJpCodec ) m_eucJpCodec = new QEucJpCodec();
         QTextStream stream( tmpDevice );
-        stream.setCodec( m_cp932Codec );
+        
+        if ( Kita::boardType( boardURL ) == Board_JBBS ) {
+            stream.setCodec( m_eucJpCodec );
+        } else {
+            stream.setCodec( m_cp932Codec );
+        }
 
         // parse subject.txt(only one format...)
         // FIXME: need to refactoring
         QRegExp regexp;
         switch ( Kita::boardType( boardURL ) ) {
-        case Board_MachiBBS:
-            regexp.setPattern( "(\\d+\\.cgi),(.*)\\((\\d+)\\)" );
-            break;
         case Board_2ch:
-        default:
             regexp.setPattern( "(\\d+\\.dat)<>(.*)\\((\\d+)\\)" );
             break;
+        case Board_MachiBBS:
+        case Board_JBBS:
+        default:
+            regexp.setPattern( "(\\d+\\.cgi),(.*)\\((\\d+)\\)" );
+            break;
         }
         QString line;
 
         while ( ( line = stream.readLine() ) != QString::null ) {
+            kdDebug() << "line: " << line << endl;
             int pos = regexp.search( line );
             if ( pos != -1 ) {
                 QString fname = regexp.cap( 1 );
index 1c82829..183a896 100644 (file)
@@ -16,6 +16,7 @@
 #include <qptrlist.h>
 #include <qxml.h>
 #include <qdict.h>
+#include <qeucjpcodec.h>
 
 #include "thread.h"
 
@@ -34,7 +35,8 @@ namespace Kita
         QString m_boardURL;
         QString m_boardName;
         static QDict<Board>* m_boardDict;
-       static QCp932Codec* m_cp932Codec;       
+        static QCp932Codec* m_cp932Codec;
+        static QEucJpCodec* m_eucJpCodec;
         Board( const QString& boardURL, const QString boardName = QString::null );
         static Board* getByURL( const QString& boardURL );
     protected:
index 3ee9239..8e88405 100644 (file)
@@ -139,10 +139,13 @@ QString Kita::unescape( const QString& str )
 int Kita::boardType( const QString& url )
 {
     QRegExp url_machibbs( "http://.*\\.machi\\.to/.*" );
-    if ( url_machibbs.search( url ) == -1 ) {
-        return Board_2ch;
-    } else {
+    QRegExp url_jbbs( "http://jbbs.shitaraba.com/.*" );
+    if ( url_machibbs.search( url ) != -1 ) {
         return Board_MachiBBS;
+    } else if ( url_jbbs.search( url ) != -1 ) {
+        return Board_JBBS;
+    } else {
+        return Board_2ch;
     }
 }
 
index ec4bb0e..6a4e093 100644 (file)
@@ -17,6 +17,7 @@ namespace Kita
 {
     enum {
         Board_MachiBBS,
+        Board_JBBS,
         Board_2ch
     };