return KIO::NetAccess::del( str );
}
+//
+// access offlaw.cgi
+//
+QString OfflawAccess::get()
+{
+ QString getURL = m_url.url();
+ // FIXME: getURL
+
+ QString retstr;
+ m_threadData = "";
+ m_firstReceive = FALSE;
+ m_invalidDataReceived = FALSE;
+
+ KIO::SlaveConfig::self() ->setConfigData( "http",
+ KURL( getURL ).host(),
+ "UserAgent",
+ QString( "Monazilla/1.00 (Kita/%1)" ).arg( VERSION ) );
+
+ KIO::TransferJob* job = KIO::get( getURL, true, false );
+ m_currentJob = job;
+
+ connect( job, SIGNAL( data( KIO::Job*, const QByteArray& ) ),
+ SLOT( slotReceiveThreadData( KIO::Job*, const QByteArray& ) ) );
+ connect( job, SIGNAL( result( KIO::Job* ) ), SLOT( slotThreadResult( KIO::Job* ) ) );
+
+ // use 'HTTP-Headers' metadata.
+ job->addMetaData( "PropagateHttpHeader", "true" );
+
+ return QString::null; /* dummy */
+}
+
+void OfflawAccess::slotThreadResult( KIO::Job* job )
+{
+ m_currentJob = 0;
+ if ( job->error() )
+ {
+ job->showErrorDialog();
+ }
+ else
+ {
+ m_header = job->queryMetaData( "HTTP-Headers" );
+ }
+
+ if ( !m_invalidDataReceived && m_threadData.length() )
+ {
+ KURL url = m_url;
+ make_cacheDir( url );
+ writeCacheData();
+ }
+ emit finishLoad();
+}
+
+void OfflawAccess::slotReceiveThreadData( KIO::Job*, const QByteArray& data )
+{
+ QString cstr( data );
+
+ if( ( m_orgData != QString::null && responseCode() != 206 )
+ || ( m_firstReceive && cstr[0] != '\n' )
+ || ( m_orgData == QString::null && responseCode() != 200 )
+ ) m_invalidDataReceived = TRUE;
+
+ if( m_invalidDataReceived ) return;
+
+ /* If this is the first call at resumption, remove LF at head. */
+ if(m_firstReceive)
+ {
+ cstr = cstr.mid(1);
+ }
+ m_firstReceive = FALSE;
+ m_threadData += cstr ;
+ emit receiveData( cstr );
+}
+
#include "access.moc"
public:
Access( const KURL& url ) : m_url( url ), m_currentJob( 0 ) {};
- ~Access() {};
+ virtual ~Access() {};
QString get();
void killJob();
int responseCode();
static bool deleteLog( const Thread* thread );
- private:
+ protected:
void writeCacheData();
- void parse_machiBBS();
void make_cacheDir( const KURL& url );
const KURL m_url;
bool m_firstReceive;
bool m_invalidDataReceived;
+ private:
+ void parse_machiBBS();
+
private slots:
void slotReceiveThreadData( KIO::Job* job, const QByteArray& data );
void slotThreadResult( KIO::Job* job );
void finishLoad();
};
+ class OfflawAccess : public Access
+ {
+ Q_OBJECT
+
+ public:
+ OfflawAccess( const KURL& url ) : Access( url ) {};
+ virtual ~OfflawAccess() {};
+
+ QString get();
+
+ private slots:
+ void slotReceiveThreadData( KIO::Job* job, const QByteArray& data );
+ void slotThreadResult( KIO::Job* job );
+ };
}
#endif