summaryrefslogtreecommitdiff
path: root/stat.c
blob: 87396007debcd0acdf06622882894bbfaf786a46 (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
66
67
68
69
70
71
72
/*
 * 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_, /* chat_id */
                                      0, /* message_thread_id */
				      (struct TdMessageReplyTo *) TdCreateObjectMessageReplyToMessage(msg->chat_id_, msg->id_), /* reply_to */
                                      TdCreateObjectMessageSendOptions(
					      false, /* disable_notification */
					      false, /* from_background */
					      true, /*protect_content */
					      false, /* update_order_of_installed_sticker_sets */
					      NULL, /* scheduling_state */
					      0 /* sending_id */
					      ),
                                      NULL,
                                      (struct TdInputMessageContent *)
                                              TdCreateObjectInputMessageText(
                                                      TdCreateObjectFormattedText(m,
                                                                                  (struct TdVectorTextEntity *)
                                                                                          TdCreateObjectVectorObject(
                                                                                                  0, NULL)
                                                      ),
                                                      false,
                                                      false)),
            NULL, NULL);
}