/* 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. */ /* Copyright (C) 2002 Dario Abatianni Copyright (C) 2005 Ismail Donmez Copyright (C) 2005 Peter Simonsson Copyright (C) 2005 John Tapsell Copyright (C) 2005-2008 Eike Hein */ #ifndef OUTPUTFILTER_H #define OUTPUTFILTER_H #include "identity.h" #include "common.h" #include #include #include #include class Server; class ChatWindow; namespace Konversation { enum MessageType { Message, Action, Command, Program, PrivateMessage }; struct OutputFilterResult { TQString output; TQStringList outputList; TQString toServer; TQStringList toServerList; TQString typeString; MessageType type; }; class OutputFilter : public TQObject { Q_OBJECT public: explicit OutputFilter(Server* server); ~OutputFilter(); TQStringList splitForEncoding(const TQString& inputLine, uint max); OutputFilterResult parse(const TQString& myNick,const TQString& line,const TQString& name); // dcc send OutputFilterResult sendRequest(const TQString &recipient,const TQString &fileName,const TQString &address,const TQString &port,unsigned long size); OutputFilterResult passiveSendRequest(const TQString& recipient,const TQString &fileName,const TQString &address,unsigned long size,const TQString &token); OutputFilterResult acceptResumeRequest(const TQString &recipient,const TQString &fileName,const TQString &port,int startAt); // dcc recv OutputFilterResult resumeRequest(const TQString &sender,const TQString &fileName,const TQString &port,TDEIO::filesize_t startAt); OutputFilterResult acceptPassiveSendRequest(const TQString& recipient,const TQString &fileName,const TQString &address,const TQString &port,unsigned long size,const TQString &token); bool replaceAliases(TQString& line); signals: void openDccSend(const TQString &recipient, KURL kurl); void requestDccSend(); // Choose Recipient and File from requester // Choose File from requester void requestDccSend(const TQString& recipient); void openDccChat(const TQString& nick); void addDccPanel(); void closeDccPanel(); void openRawLog(bool show); void closeRawLog(); void openKonsolePanel(); void openChannelList(const TQString& parameter, bool getList); void sendToAllChannels(const TQString& text); void launchScript(const TQString& target, const TQString& parameter); void banUsers(const TQStringList& userList,const TQString& channel,const TQString& option); void unbanUsers(const TQString& mask,const TQString& channel); void multiServerCommand(const TQString& command, const TQString& parameter); void reconnectServer(); void disconnectServer(); void connectTo(Konversation::ConnectionFlag flag, const TQString& hostName, const TQString& port = "", const TQString& password = "", const TQString& nick = "", const TQString& channel = "", bool useSSL = false ); void showView(ChatWindow* view); void encodingChanged (); public slots: void setCommandChar(); OutputFilterResult execBan(const TQString& mask,const TQString& channels); OutputFilterResult execUnban(const TQString& mask,const TQString& channels); protected: OutputFilterResult parseMsg(const TQString& myNick,const TQString& parameter, bool focusQueryWindow); OutputFilterResult parseSMsg(const TQString& parameter); OutputFilterResult parseMe(const TQString ¶meter, const TQString &destination); OutputFilterResult parseDescribe(const TQString& parameter); OutputFilterResult parseNotice(const TQString& parameter); OutputFilterResult parseJoin(TQString& parameter); OutputFilterResult parsePart(const TQString& parameter); OutputFilterResult parseQuit(const TQString& parameter); OutputFilterResult parseClose(TQString parameter); OutputFilterResult parseKick(const TQString& parameter); OutputFilterResult parseKickBan(const TQString& parameter); OutputFilterResult parseBan(const TQString& parameter, bool kick = false); OutputFilterResult parseUnban(const TQString& parameter); OutputFilterResult parseNames(const TQString& parameter); OutputFilterResult parseList(const TQString& parameter); OutputFilterResult parseOp(const TQString& parameter); OutputFilterResult parseDeop(const TQString& ownNick, const TQString& parameter); OutputFilterResult parseHop(const TQString& parameter); OutputFilterResult parseDehop(const TQString& ownNick, const TQString& parameter); OutputFilterResult parseVoice(const TQString& parameter); OutputFilterResult parseUnvoice(const TQString& ownNick, const TQString& parameter); OutputFilterResult parseTopic(const TQString& parameter); void parseAway(TQString& parameter); void parseBack(); OutputFilterResult parseCtcp(const TQString& parameter); OutputFilterResult parsePing(const TQString& parameter); OutputFilterResult parseVersion(const TQString& parameter); void parseServer(const TQString& parameter); void parseReconnect(); OutputFilterResult parseConnect(const TQString& parameter); OutputFilterResult parseInvite(const TQString& parameter); OutputFilterResult parseExec(const TQString& parameter); OutputFilterResult parseNotify(const TQString& parameter); OutputFilterResult parseOper(const TQString& myNick,const TQString& parameter); OutputFilterResult parseDcc(const TQString& parameter); OutputFilterResult parseRaw(const TQString& parameter); OutputFilterResult parseIgnore(const TQString& parameter); OutputFilterResult parseUnignore(const TQString& parameter); OutputFilterResult parseQuote(const TQString& parameter); OutputFilterResult parseSay(const TQString& parameter); void parseKonsole(); OutputFilterResult parseAme(const TQString& parameter); OutputFilterResult parseAmsg(const TQString& parameter); OutputFilterResult parseOmsg(const TQString& parameter); OutputFilterResult parseOnotice(const TQString& parameter); OutputFilterResult parseCharset(const TQString& charset); void parseCycle(); OutputFilterResult parseSetKey(const TQString& parameter); OutputFilterResult parseDelKey(const TQString& parameter); OutputFilterResult parseShowKey(const TQString& parameter); OutputFilterResult parseDNS(const TQString& parameter); OutputFilterResult parseKill(const TQString& parameter); OutputFilterResult parseShowTuner(const TQString &p); OutputFilterResult changeMode(const TQString& parameter,char mode,char giveTake); bool isAChannel(const TQString& check); OutputFilterResult usage(const TQString& check); OutputFilterResult info(const TQString& check); OutputFilterResult error(const TQString& check); TQString addNickToEmptyNickList(const TQString& nick, const TQString& parameter); private: TQString destination; TQString commandChar; Server* m_server; }; } #endif