/*
* This file is a part of VyQChat.
*
* Copyright (C) 2002-2004 Pawel Stolowski <yogin@linux.bydg.org>
*
* VyQChat is free software; you can redestribute it and/or modify it
* under terms of GNU General Public License by Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY. See GPL for more details.
*/
#include "scripting.h"
#include <qdatetime.h>
#include <qstring.h>
#include <stdlib.h>
#include <qprocess.h>
bool Scripting::run(const QString &fname, const QStringList &env)/*{{{*/
{
QProcess *proc = new QProcess(fname, NULL);
QObject::connect(proc, SIGNAL(processExited()), proc, SLOT(deleteLater()));
return proc->start(&const_cast<QStringList &>(env));
}/*}}}*/
void Scripting::executeChatline(const QString &fname, const QDateTime &date, const QString &channel, const QString &from, const QString &text)/*{{{*/
{
QStringList env;
env.push_back("EVENT=C");
env.push_back("CHANNEL=" + channel);
env.push_back("TIME=" + date.toString("hh:mm"));
env.push_back("DATE=" + date.toString());
env.push_back("FROM=" + from);
env.push_back("TEXT=" + text);
run(fname, env);
}/*}}}*/
void Scripting::executeMessage(const QString &fname, const QDateTime &date, const QString &from, const QString &text)/*{{{*/
{
QStringList env;
env.push_back("EVENT=M");
env.push_back("TIME=" + date.toString("hh:mm"));
env.push_back("DATE=" + date.toString());
env.push_back("FROM=" + from);
env.push_back("TEXT=" + text);
run(fname, env);
}/*}}}*/
void Scripting::executeJoin(const QString &fname, const QDateTime &date, const QString &channel, const QString &from)/*{{{*/
{
QStringList env;
env.push_back("EVENT=J");
env.push_back("CHANNEL=" + channel);
env.push_back("TIME=" + date.toString("hh:mm"));
env.push_back("DATE=" + date.toString());
env.push_back("FROM=" + from);
run(fname, env);
}/*}}}*/
void Scripting::executeLeave(const QString &fname, const QDateTime &date, const QString &channel, const QString &from)/*{{{*/
{
QStringList env;
env.push_back("EVENT=L");
env.push_back("CHANNEL=" + channel);
env.push_back("TIME=" + date.toString("hh:mm"));
env.push_back("DATE=" + date.toString());
env.push_back("FROM=" + from);
run(fname, env);
}/*}}}*/
void Scripting::executeBeep(const QString &fname, const QDateTime &date, const QString &from)/*{{{*/
{
QStringList env;
env.push_back("EVENT=B");
env.push_back("TIME=" + date.toString("hh:mm"));
env.push_back("DATE=" + date.toString());
env.push_back("FROM=" + from);
run(fname, env);
}/*}}}*/
void Scripting::executeInfoRequest(const QString &fname, const QDateTime &date, const QString &from)/*{{{*/
{
QStringList env;
env.push_back("EVENT=I");
env.push_back("TIME=" + date.toString("hh:mm"));
env.push_back("DATE=" + date.toString());
env.push_back("FROM=" + from);
run(fname, env);
}/*}}}*/
void Scripting::executeRegexpMatch(const QString &fname, const QDateTime &date, const QString &channel, const QString &from, const QString &text)/*{{{*/
{
QStringList env;
env.push_back("EVENT=R");
env.push_back("CHANNEL=" + channel);
env.push_back("TIME=" + date.toString("hh:mm"));
env.push_back("DATE=" + date.toString());
env.push_back("FROM=" + from);
env.push_back("TEXT=" + text);
run(fname, env);
}/*}}}*/
syntax highlighted by Code2HTML, v. 0.9.1