summaryrefslogtreecommitdiff
path: root/stat.c
blob: 0e5906f8e514afce308f9149f2ee7f54b04b40ea (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
60
61
62
63
64
65
/*
 * Created by yuuta on 4/5/22.
 */

#include "logic.h"
#include "log.h"
#include "tdutils.h"
#include "db.h"
#include "botd.h"

#include <stdlib.h>
#include <string.h>

static char *praises[] = {
        "普天之下,莫非 K 土。",
        "率土之滨,莫非 K 臣。",
};

void stat(struct TdMessage *msg) {
    int r;
    char m[1024];
    if ((r = sqlite3_step(stmt_global_stat)) != SQLITE_ROW) {
        goto sql_err;
        sql_err:
        {
            snprintf(m, 1024, "Cannot query statistics: %s.", sqlite3_errstr(r));
            LOGEV("%s", m);
            sqlite3_reset(stmt_global_stat);
            goto send;
        }
    }

    snprintf(m, sizeof(m), "%s"
                                  "TGCN 共有 %d 位 K 教授的虔诚学生卖了 %d 句菜,"
                                  "其中卖菜最多的人共卖了 %d 句菜,"
                                  "平均每人卖了 %d 句菜。"
                                  "\n\n"
                                  "共有 %d 句教授语录。\n"
                                  "Bot 已运行 %ld 秒。",
             praises[rand() % (sizeof(praises) / sizeof(char *))],
             sqlite3_column_int(stmt_global_stat, 0),
             sqlite3_column_int(stmt_global_stat, 1),
             sqlite3_column_int(stmt_global_stat, 2),
             sqlite3_column_int(stmt_global_stat, 3),
             sqlite3_column_int(stmt_global_stat, 4),
             time(NULL) - start_time);
    sqlite3_reset(stmt_global_stat);
    goto send;
    send:
    td_send(TdCreateObjectSendMessage(msg->chat_id_,
                                      0,
                                      msg->id_,
                                      TdCreateObjectMessageSendOptions(false, false, true, NULL),
                                      NULL,
                                      (struct TdInputMessageContent *)
                                              TdCreateObjectInputMessageText(
                                                      TdCreateObjectFormattedText(m,
                                                                                  (struct TdVectorTextEntity *)
                                                                                          TdCreateObjectVectorObject(
                                                                                                  0, NULL)
                                                      ),
                                                      false,
                                                      false)),
            NULL, NULL);
}