added arguments

This commit is contained in:
anselme 2015-05-26 19:54:26 +02:00
parent 9c440b9760
commit f82b053b67
4 changed files with 36 additions and 12 deletions

View File

@ -5,10 +5,10 @@ read -s -p "git password ?" pass
mkdir build mkdir build
while true while true
do do
git pull https://$user:$pass@epicsparrow.com/Anselme/sparrowbot.git git pull https://'$user':'$pass'@epicsparrow.com/Anselme/sparrowbot.git
cd build cd build
qmake-qt5 ../SparrowBot.pro qmake-qt5 ../SparrowBot.pro
make make
./SparrowBot -nogui ./SparrowBot -nogui nick=SparrowBot chan=epicsparrow server=irc.freenode.net port=6667
cd .. cd ..
done done

View File

@ -5,21 +5,45 @@
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
bool nogui = false;
QString server = "irc.freenode.net";
int port = 6667;
QString nick = "SparrowBotDebug";
QString chan = "epicsparrow";
// parsing arguments
for(int i=1; i<argc; ++i)
{
QString str = QString(argv[i]);
if(str.compare("-nogui") == 0)
nogui = true;
else if(str.contains('='))
{
QStringList argList = str.split('=');
QString key = argList.at(0);
if(key.compare("server"))
server = argList.at(1);
else if(key.compare("port"))
port = argList.at(1).toInt();
else if(key.compare("nick"))
nick = argList.at(1);
else if(key.compare("chan"))
chan = argList.at(1);
}
}
// create the socket // create the socket
SocketIRC sock; SocketIRC sock;
sock.setServer("irc.freenode.net"); sock.setServer(server);
sock.setPort(6667); sock.setPort(port);
// create the bot // create the bot
SparrowBot* bot = new SparrowBot("SparrowBotDebug", "epicsparrow"); SparrowBot* bot = new SparrowBot(nick, chan);
// connect the bot to the socket // connect the bot to the socket
QObject::connect(&sock, SIGNAL(receivedMsg(QString)), bot, SLOT(receiveMsg(QString))); QObject::connect(&sock, SIGNAL(receivedMsg(QString)), bot, SLOT(receiveMsg(QString)));
QObject::connect(bot, SIGNAL(sendMsg(QString)), &sock, SLOT(sendMsg(QString))); QObject::connect(bot, SIGNAL(sendMsg(QString)), &sock, SLOT(sendMsg(QString)));
// parsing arguments
bool nogui = argc > 1 && QString(argv[1]).compare("-nogui") == 0;
// set up UI // set up UI
if(!nogui) if(!nogui)
{ {

View File

@ -7,7 +7,7 @@ SocketIRC::SocketIRC() : server("irc.freenode.net"), port(6667), isConnected(fal
connect(&sock, SIGNAL(disconnected()), this, SLOT(onDisconnect())); connect(&sock, SIGNAL(disconnected()), this, SLOT(onDisconnect()));
} }
void SocketIRC::setServer(std::string server_) void SocketIRC::setServer(QString server_)
{ {
server = server_; server = server_;
} }
@ -28,7 +28,7 @@ void SocketIRC::connectToServer(QCoreApplication* app_)
{ {
app = app_; app = app_;
sock.connectToHost(QString(server.c_str()), quint16(port)); sock.connectToHost(server, quint16(port));
if(!sock.waitForConnected(3000)) if(!sock.waitForConnected(3000))
{ {
std::cerr << "failed to connect : " << sock.errorString().toStdString() << std::endl; std::cerr << "failed to connect : " << sock.errorString().toStdString() << std::endl;

View File

@ -13,14 +13,14 @@ class SocketIRC : public QObject
public: public:
SocketIRC(); SocketIRC();
void setServer(std::string server_); void setServer(QString server_);
void setPort(int port_); void setPort(int port_);
void connectToServer(QCoreApplication* app_); void connectToServer(QCoreApplication* app_);
private: private:
QCoreApplication* app; QCoreApplication* app;
std::string server; QString server;
int port; int port;
QTcpSocket sock; QTcpSocket sock;
bool isConnected; bool isConnected;