diff options
Diffstat (limited to 'kfile-plugins/mhtml')
-rw-r--r-- | kfile-plugins/mhtml/Makefile.am | 21 | ||||
-rw-r--r-- | kfile-plugins/mhtml/kfile_mhtml.cpp | 201 | ||||
-rw-r--r-- | kfile-plugins/mhtml/kfile_mhtml.desktop | 60 | ||||
-rw-r--r-- | kfile-plugins/mhtml/kfile_mhtml.h | 46 |
4 files changed, 0 insertions, 328 deletions
diff --git a/kfile-plugins/mhtml/Makefile.am b/kfile-plugins/mhtml/Makefile.am deleted file mode 100644 index 326820d..0000000 --- a/kfile-plugins/mhtml/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -## Makefile.am for folder file meta info plugin - -INCLUDES = $(all_includes) - -# these are the headers for your project -noinst_HEADERS = kfile_mhtml.h - -kde_module_LTLIBRARIES = kfile_mhtml.la - -kfile_mhtml_la_SOURCES = kfile_mhtml.cpp -kfile_mhtml_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) -kfile_mhtml_la_LIBADD = $(LIB_KIO) - -# let automoc handle all of the meta source files (moc) -METASOURCES = AUTO - -services_DATA = kfile_mhtml.desktop -servicesdir = $(kde_servicesdir) - -messages: - $(XGETTEXT) *.cpp -o $(podir)/kfile_mhtml.pot diff --git a/kfile-plugins/mhtml/kfile_mhtml.cpp b/kfile-plugins/mhtml/kfile_mhtml.cpp deleted file mode 100644 index 0a07ea9..0000000 --- a/kfile-plugins/mhtml/kfile_mhtml.cpp +++ /dev/null @@ -1,201 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2005 by Spiros Georgaras * - * sngeorgaras@otenet.gr * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - - -#include <config.h> -#include "kfile_mhtml.h" - -#include <kgenericfactory.h> -#include <kmdcodec.h> -#include <tqstring.h> -#include <tqcstring.h> -#include <tqfile.h> -#include <tqtextstream.h> -#include <tqtextcodec.h> - -typedef KGenericFactory<mhtmlPlugin> mhtmlFactory; - -K_EXPORT_COMPONENT_FACTORY(kfile_mhtml, mhtmlFactory( "kfile_mhtml" )) - -mhtmlPlugin::mhtmlPlugin(TQObject *parent, const char *name, - const TQStringList &args) - : KFilePlugin(parent, name, args) -{ - KFileMimeTypeInfo* info = addMimeTypeInfo( "application/x-mimearchive" ); - KFileMimeTypeInfo::GroupInfo* group = 0L; - group = addGroupInfo(info, "mhtmlInfo", i18n("Document Information")); - KFileMimeTypeInfo::ItemInfo* item; - item = addItemInfo(group, "Subject", i18n("Subject"), TQVariant::String); - item = addItemInfo(group, "Sender", i18n("Sender"), TQVariant::String); - item = addItemInfo(group, "Recipient", i18n("Recipient"), TQVariant::String); - item = addItemInfo(group, "CopyTo", i18n("CC"), TQVariant::String); - item = addItemInfo(group, "BlindCopyTo", i18n("BCC"), TQVariant::String); - item = addItemInfo(group, "Date", i18n("Date"), TQVariant::String); -} - -bool mhtmlPlugin::readInfo( KFileMetaInfo& info, uint /*what*/) -{ - TQString mSender; - TQString mRecipient; - TQString mCopyTo; - TQString mBlindCopyTo; - TQString mSubject; - TQString mDate; - bool canUnfold; - if ( info.path().isEmpty() ) // remote file - return false; - - TQFile f(info.path()); - if (!f.open(IO_ReadOnly)) return false; - TQTextStream stream(&f); - TQString l=stream.readLine(); - int nFieldsFound = 0; - while(!l.isEmpty()){ - if(l.startsWith("From: ")) { - mSender=l.mid(6); - nFieldsFound |= 1; - canUnfold=TRUE; - } else if(l.startsWith("To: ")) { - mRecipient=l.mid(4); - nFieldsFound |= 2; - canUnfold=TRUE; - } else if(l.startsWith("Subject: ")) { - mSubject=l.mid(9); - nFieldsFound |= 4; - canUnfold=TRUE; - } else if(l.startsWith("Cc: ")) { - mCopyTo=l.mid(4); - nFieldsFound |= 8; - canUnfold=TRUE; - } else if(l.startsWith("Bcc: ")) { - mBlindCopyTo=l.mid(5); - nFieldsFound |= 16; - canUnfold=TRUE; - } else if(l.startsWith("Date: ")) { - mDate=l.mid(6); - nFieldsFound |= 32; - canUnfold=FALSE; - }else if(l.startsWith(" ") || l.startsWith("\t")){ - // unfold field - if(canUnfold){ - TQString tmp=l.stripWhiteSpace(); - if(nFieldsFound & 16) mBlindCopyTo=mBlindCopyTo+" "+tmp; - else if(nFieldsFound & 8) mCopyTo=mCopyTo+" "+tmp; - else if(nFieldsFound & 4) mSubject=mSubject+" "+tmp; - else if(nFieldsFound & 2) mRecipient=mRecipient+" "+tmp; - else if(nFieldsFound & 1) mSender=mSender+" "+tmp; - } - }else canUnfold=FALSE; - // break out of the loop once the six fields have been found - if ( nFieldsFound == 32+16+8+4+2+1 ) - break; - l=stream.readLine(); - } - f.close(); - KFileMetaInfoGroup group = appendGroup(info, "mhtmlInfo"); - appendItem(group, "Subject", decodeRFC2047Phrase(mSubject,FALSE)); - appendItem(group, "Sender", decodeRFC2047Phrase(mSender)); - appendItem(group, "Recipient", decodeRFC2047Phrase(mRecipient)); - appendItem(group, "CopyTo", decodeRFC2047Phrase(mCopyTo)); - appendItem(group, "BlindCopyTo", decodeRFC2047Phrase(mBlindCopyTo)); - appendItem(group, "Date", mDate); - return true; -} - -TQString mhtmlPlugin::decodeRFC2047Phrase(const TQString &msg, bool removeLessGreater){ - int st=msg.find("=?"); - int en=-1; - TQString msgCopy=msg; - TQString decodedText=msgCopy.left(st); - TQString encodedText=msgCopy.mid(st); - st=encodedText.find("=?"); - while(st!=-1){ - en=encodedText.find("?="); - while(encodedText.mid(en+2,1)!=" " && en+2<(int)encodedText.length()) en=encodedText.find("?=",en+1); - if(en==-1) break; - decodedText+=encodedText.left(st); - TQString tmp=encodedText.mid(st,en-st+2); - encodedText=encodedText.mid(en+2); - decodedText+=decodeRFC2047String(tmp); - st=encodedText.find("=?",st+1); - } - decodedText += encodedText; - // remove unwanted '<' and '>' - if(removeLessGreater){ - if(decodedText.stripWhiteSpace().startsWith("<") && decodedText.stripWhiteSpace().endsWith(">")){ - TQString tmp=decodedText.stripWhiteSpace(); - tmp=tmp.mid(1,tmp.length()-2); - decodedText=tmp; - }else{ - TQString dec=decodedText; - TQString tmp; - - st=decodedText.find("<"); - while(st!=-1){ - st=dec.find("<",st); - if(st==0 || (st!=0 && (dec.mid(st-2,2)==", "))){ - en=dec.find(">",st); - if(en==-1 && dec.find(",",st)<en){ - st++; - continue; - } - dec=dec.left(st)+dec.mid(st+1,en-st-1)+dec.mid(en+1); - }else if(st!=-1) st++; - } - decodedText=dec; - } - } - return decodedText; -} - -TQString mhtmlPlugin::decodeRFC2047String(const TQString &msg){ - TQString charset; - TQString encoding; - TQString notEncodedText; - TQString encodedText; - TQString decodedText; - int encEnd=0; - if(msg.startsWith("=?") && (encEnd=msg.findRev("?="))!=-1){ - notEncodedText=msg.mid(encEnd+2); - encodedText=msg.left(encEnd); - encodedText=encodedText.mid(2,encodedText.length()-2); - int questionMark=encodedText.find('?'); - if(questionMark==-1) return msg; - charset=encodedText.left(questionMark).lower(); - encoding=encodedText.mid(questionMark+1,1).lower(); - if(encoding!="b" && encoding!="q") return msg; - encodedText=encodedText.mid(questionMark+3); - if(charset.find(" ")!=-1 && encodedText.find(" ")!=-1) return msg; - TQCString tmpIn; - TQCString tmpOut; - tmpIn = encodedText.local8Bit(); - if(encoding=="q")tmpOut=KCodecs::quotedPrintableDecode(tmpIn); - else tmpOut=KCodecs::base64Decode(tmpIn); - if(charset!="us-ascii"){ - TQTextCodec *codec = TQTextCodec::codecForName(charset.local8Bit()); - if(!codec) return msg; - decodedText=codec->toUnicode(tmpOut); - decodedText=decodedText.replace("_"," "); - }else decodedText=tmpOut.replace("_"," "); - return decodedText + notEncodedText; - }else return msg; -} -#include "kfile_mhtml.moc" - diff --git a/kfile-plugins/mhtml/kfile_mhtml.desktop b/kfile-plugins/mhtml/kfile_mhtml.desktop deleted file mode 100644 index 52a7492..0000000 --- a/kfile-plugins/mhtml/kfile_mhtml.desktop +++ /dev/null @@ -1,60 +0,0 @@ -[Desktop Entry] -Type=Service -Name=mhtml Info -Name[bg]=Информация за mhtml -Name[br]=Titouroù mhtml -Name[ca]=Informació mhtml -Name[cs]=mhtml informace -Name[da]=mhtml-info -Name[de]=MHTML-Information -Name[el]=Πληροφορίες mhtml -Name[eo]=mhtml informo -Name[es]=Información mhtml -Name[et]=mhtmli info -Name[eu]=mhtml infoa -Name[fa]=اطلاعات mhtml -Name[fi]=mhtml tiedot -Name[fr]=Informations sur « mhtml » -Name[fy]=mhtml-ynformaasje -Name[ga]=Eolas mhtml -Name[gl]=Información de mhtml -Name[he]=מידע אודות mhtml -Name[hr]=Podaci o mhtml -Name[hu]=Mhtml-információ -Name[is]=Upplýsingar um mhtml -Name[it]=Informazioni su mhtml -Name[ja]=mhtml 情報 -Name[ka]=mhtml ინფორმაცია -Name[kk]=mhtml мәліметі -Name[km]=ព័ត៌មាន mhtml -Name[lt]=mhtml info -Name[mk]=Информации за mhtml -Name[ms]=Maklumat mhtml -Name[nb]=mhtml-informasjon -Name[nds]=MHTML-Informatschonen -Name[ne]=एमएचटीएमएल सूचना -Name[nl]=mhtml-informatie -Name[nn]=mhtml-informasjon -Name[pa]=mhtml ਜਾਣਕਾਰੀ -Name[pl]=Informacja mhtml -Name[pt]=Informações de mhtml -Name[pt_BR]=Informações sobre mhtml -Name[ru]=Информация mhtml -Name[sk]=Informácie o mhtml -Name[sl]=Informacija o mhtml -Name[sr]=MHTML информације -Name[sr@Latn]=MHTML informacije -Name[sv]=MHTML-information -Name[ta]=mhtml தகவல் -Name[tr]=mhtml Bilgisi -Name[uk]=Інформація про mhtml -Name[uz]=mhtml fayllari haqida maʼlumot -Name[uz@cyrillic]=mhtml файллари ҳақида маълумот -Name[vi]=Thông tin mhtml -Name[zh_CN]=mhtml 信息 -Name[zh_TW]=mhtml 資訊 -ServiceTypes=KFilePlugin -X-TDE-Library=kfile_mhtml -MimeType=application/x-mimearchive -PreferredGroups=mhtmlInfo -PreferredItems=Subject,Sender,Recipient,CopyTo,BlindCopyTo,Date diff --git a/kfile-plugins/mhtml/kfile_mhtml.h b/kfile-plugins/mhtml/kfile_mhtml.h deleted file mode 100644 index b48583e..0000000 --- a/kfile-plugins/mhtml/kfile_mhtml.h +++ /dev/null @@ -1,46 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2005 by Spiros Georgaras * - * sngeorgaras@otenet.gr * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - - -#ifndef __KFILE_MHTML_H__ -#define __KFILE_MHTML_H__ - -/** - * Note: For further information look into <$TDEDIR/include/kfilemetainfo.h> - */ -#include <kfilemetainfo.h> - -class TQStringList; - -class mhtmlPlugin: public KFilePlugin -{ - Q_OBJECT - - -public: - mhtmlPlugin( TQObject *parent, const char *name, const TQStringList& args ); - virtual bool readInfo( KFileMetaInfo& info, uint what); -private: - TQString decodeRFC2047Phrase(const TQString &msg, bool removeLessGreater=TRUE); - TQString decodeRFC2047String(const TQString &msg); -}; - -#endif // __KFILE_MHTML_H__ - |