summaryrefslogtreecommitdiffstats
path: root/src/libcommuni/examples/bot/main.cpp
blob: 526f776a7cb27967e46c9c056841185827d734a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*
 * Copyright (C) 2008-2014 The Communi Project
 *
 * This example is free, and not covered by the BSD license. There is no
 * restriction applied to their modification, redistribution, using and so on.
 * You can study them, modify them, use them in your own program - either
 * completely or partially.
 */

#include <QtCore>
#include "ircbot.h"

int main(int argc, char* argv[])
{
    QCoreApplication app(argc, argv);

    // enable debug output
    qputenv("IRC_DEBUG", "1");
    qsrand(QTime::currentTime().msec());

    IrcBot bot;
    bot.setHost("irc.freenode.net");
    bot.setUserName("communi");
    bot.setNickName("Bot" + QString::number(qrand() % 9999));
    bot.setRealName("Communi " + Irc::version() + " example bot");

    bool joined = false;
    QStringList args = app.arguments();
    for (int i = 0; i < args.count(); ++i) {
        QString arg = args.at(i);
        if (arg == "-help") {
            qDebug() << "Usage:" << argv[0] << "(-host <host>) (-port <port>) (-ssl) (-nick <nick>) (-user <user>) (-password <password>) (-channel <channel>)";
            return 0;
        } else if (arg == "-port") {
            bool ok = false;
            int port = args.value(++i).toInt(&ok);
            if (ok)
                bot.setPort(port);
        } else if (arg == "-ssl") {
            bot.setSecure(true);
        } else if (arg == "-host") {
            bot.setHost(args.value(++i));
        } else if (arg == "-user") {
            bot.setUserName(args.value(++i));
        } else if (arg == "-password") {
            bot.setPassword(args.value(++i));
        } else if (arg == "-nick") {
            bot.setNickName(args.value(++i));
        } else if (arg == "-channel") {
            bot.join(args.value(++i));
            joined = true;
        }
    }
    if (!joined)
        bot.join("#communi");

    bot.open();
    return app.exec();
}