From 0eefa4152922e3a14a4b7cc0af3702e443588a2a Mon Sep 17 00:00:00 2001 From: ikemo Date: Sat, 6 Nov 2004 14:46:28 +0000 Subject: [PATCH] >>475, bug fixes. git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@1500 56b19765-1e22-0410-a548-a0f45d66c51a --- kita/src/libkita/boardmanager.cpp | 23 +++++++++++---------- kita/src/libkita/downloadmanager.cpp | 23 ++------------------- kita/src/libkita/favoriteboards.cpp | 1 + kita/src/libkita/favoritethreads.cpp | 1 + kita/src/libkita/kita_misc.cpp | 39 ++++++++++++++++++++++++++++++++++++ kita/src/libkita/kita_misc.h | 10 +++++++-- kita/src/libkita/threadinfo.cpp | 1 + 7 files changed, 64 insertions(+), 34 deletions(-) diff --git a/kita/src/libkita/boardmanager.cpp b/kita/src/libkita/boardmanager.cpp index eac58f6..9102ef0 100644 --- a/kita/src/libkita/boardmanager.cpp +++ b/kita/src/libkita/boardmanager.cpp @@ -16,6 +16,7 @@ #include "threadinfo.h" #include "favoriteboards.h" #include "datmanager.h" +#include "kita_misc.h" #include /* VERSION */ @@ -423,6 +424,11 @@ void BoardManager::getThreadList( /* download subject.txt */ if( online ){ + + /* make directory */ + QString cacheDir = Cache::baseDir() + Cache::serverDir( url ) + Cache::boardDir( url ); + if( !Kita::mkdir( cacheDir ) ) return; + KIO::SlaveConfig::self() ->setConfigData( "http", url.host() , "UserAgent", @@ -820,17 +826,13 @@ bool BoardManager::moveBoard( const KURL& fromURL, const KURL& toURL ) /* move cache dir */ QDir qdir; - QString newCachePath = Cache::baseDir() + Cache::serverDir( bdata->basePath() ); - /* mkdir server dir */ - if( !qdir.exists( newCachePath ) ){ - qDebug( "mkdir %s", newCachePath.ascii() ); - qdir.mkdir( newCachePath ); - } + /* mkdir new server dir */ + QString newCachePath = Cache::baseDir() + Cache::serverDir( bdata->basePath() ); + Kita::mkdir( newCachePath ); - newCachePath += Cache::boardDir( bdata->basePath() ); - /* backup old dir */ + newCachePath += Cache::boardDir( bdata->basePath() ); if( qdir.exists ( newCachePath ) ){ QString bkupPath = newCachePath; bkupPath.truncate( bkupPath.length() -1 ); /* remove '/' */ @@ -845,7 +847,7 @@ bool BoardManager::moveBoard( const KURL& fromURL, const KURL& toURL ) qDebug( "move: %s\n-> %s", oldCachePath.ascii(), newCachePath.ascii() ); qdir.rename( oldCachePath, newCachePath ); } - else qdir.mkdir( newCachePath ); + else Kita::mkdir( newCachePath ); /*---------------------------*/ @@ -868,12 +870,11 @@ bool BoardManager::moveBoard( const KURL& fromURL, const KURL& toURL ) /*---------------------------*/ /* update other information */ -/* FavoriteThreads::replace( oldURL, newURL ); Kita::Thread::replace( oldURL, newURL ); KitaThreadInfo::replace( oldURL, newURL ); Kita::FavoriteBoards::replace( oldURL, newURL ); -*/ + qDebug("%s",bdata->basePath().ascii() ); qDebug("%s",bdata->cgiBasePath().ascii() ); int count = bdata->keyBasePathList().count(); diff --git a/kita/src/libkita/downloadmanager.cpp b/kita/src/libkita/downloadmanager.cpp index 9503239..74df9f9 100644 --- a/kita/src/libkita/downloadmanager.cpp +++ b/kita/src/libkita/downloadmanager.cpp @@ -11,9 +11,9 @@ /* This is the class to download files. */ #include "downloadmanager.h" +#include "kita_misc.h" #include -#include #include #include #include @@ -278,27 +278,8 @@ bool FileLoader::get() /* create directory */ if( m_data.tmppath != QString::null ){ - QFileInfo qi( m_data.tmppath ); - QDir qdir( qi.dirPath( TRUE ) ); - if( !qdir.exists() ){ - - qDebug( "[create dir]"); - - QStringList pathList = QStringList::split( "/", qi.dirPath( TRUE ) ); - QString path = QString::null; - - for( unsigned int i = 0; i < pathList.count(); ++i ){ - - path += "/" + pathList[ i ]; - qDebug( "path = %s",path.ascii() ); - - qdir = path; - if( !qdir.exists() ){ - if( !qdir.mkdir( path ) ) return FALSE; - } - } - } + if( !Kita::mkdir( qi.dirPath( TRUE ) ) ) return FALSE; } m_data.totalsize = 0; diff --git a/kita/src/libkita/favoriteboards.cpp b/kita/src/libkita/favoriteboards.cpp index 11ab24c..9d1b5c9 100644 --- a/kita/src/libkita/favoriteboards.cpp +++ b/kita/src/libkita/favoriteboards.cpp @@ -126,6 +126,7 @@ QString FavoriteBoards::toXML() void FavoriteBoards::replace( QString fromURL, QString toURL ) { + if( FavoriteBoards::getInstance() == NULL ) return; QValueList& boardList = FavoriteBoards::getInstance()->m_list; QValueList::iterator it; for ( it = boardList.begin(); it != boardList.end(); ++it ) { diff --git a/kita/src/libkita/favoritethreads.cpp b/kita/src/libkita/favoritethreads.cpp index b841f6b..60469ce 100644 --- a/kita/src/libkita/favoritethreads.cpp +++ b/kita/src/libkita/favoritethreads.cpp @@ -180,6 +180,7 @@ const QString FavoriteThreads::toXML() const void FavoriteThreads::replace( QString fromURL, QString toURL ) { + if( FavoriteThreads::getInstance() == NULL ) return; QValueList& threadList = FavoriteThreads::getInstance() ->m_threadList; QValueList::iterator it; for ( it = threadList.begin(); it != threadList.end(); ++it ) { diff --git a/kita/src/libkita/kita_misc.cpp b/kita/src/libkita/kita_misc.cpp index bbaa881..ddbbd07 100644 --- a/kita/src/libkita/kita_misc.cpp +++ b/kita/src/libkita/kita_misc.cpp @@ -15,6 +15,10 @@ #include #include #include +#include +#include +#include +#include /*---------------------------------------------------*/ @@ -64,6 +68,41 @@ QString Kita::ecuToUnicode( const QString& str ) /*---------------------------------------*/ +/* utilities */ + +/* create directory recursively */ +bool Kita::mkdir( const QString& targetPath ) +{ + qDebug( "mkdir %s", targetPath.ascii() ); + QDir qdir( targetPath ); + if( !qdir.exists() ){ + + qDebug( "not exist" ); + + QStringList pathList = QStringList::split( "/", targetPath ); + QString path = QString::null; + + for( unsigned int i = 0; i < pathList.count(); ++i ){ + + path += "/" + pathList[ i ]; + + qdir = path; + if( !qdir.exists() ){ + if( !qdir.mkdir( path ) ) return FALSE; + qDebug( "make = %s", path.ascii() ); + } + } + } + + return TRUE; +} + + + + + +/*---------------------------------------*/ + QString Kita::datToBoard( const KURL& datURL ) { diff --git a/kita/src/libkita/kita_misc.h b/kita/src/libkita/kita_misc.h index 83a844f..853ed17 100644 --- a/kita/src/libkita/kita_misc.h +++ b/kita/src/libkita/kita_misc.h @@ -14,7 +14,6 @@ #include "boardmanager.h" #include -#include class KURL; @@ -28,7 +27,10 @@ namespace Kita QString qcpToUnicode( const QString& str ); QString utf8ToUnicode( const QString& str ); QString ecuToUnicode( const QString& str ); - + + /* utilities */ + bool Kita::mkdir( const QString& path ); + QString datToBoard( const KURL& datURL ); QString datToThread( const KURL& datURL ); QString unescape( const QString& str ); @@ -36,6 +38,10 @@ namespace Kita uint datToSince( const KURL& datURL ); QString datToOfflaw( const KURL& datURL ); bool is2ch( const KURL& url ); + + /* parsing funtions */ + + /* for MACHI BBS */ QString parse_machibbs_dat( const QString& datStr ); /* for JBBS */ diff --git a/kita/src/libkita/threadinfo.cpp b/kita/src/libkita/threadinfo.cpp index fa4cdc5..ebf34f2 100644 --- a/kita/src/libkita/threadinfo.cpp +++ b/kita/src/libkita/threadinfo.cpp @@ -67,6 +67,7 @@ void KitaThreadInfo::replace( const QString fromURL, const QString toURL ) { QMap::Iterator it; KitaThreadInfo* instance = KitaThreadInfo::getInstance(); + if( instance == NULL ) return; for ( it = instance->m_readDict.begin(); it != instance->m_readDict.end(); ++it ) { QString url = it.key(); -- 2.11.0