diff options
author | Trumeet <yuuta@yuuta.moe> | 2022-04-05 13:06:55 -0700 |
---|---|---|
committer | Trumeet <yuuta@yuuta.moe> | 2022-04-05 13:06:55 -0700 |
commit | 1ad9927e8eb242a828effff2d3bec2aae9314667 (patch) | |
tree | fef5cb702b038d78e226bbb4eaa8be651a91a455 /stat.c | |
parent | a20a1a7434edc48ad12200201a8829bd89f4bb1f (diff) | |
download | ksyxbot-1ad9927e8eb242a828effff2d3bec2aae9314667.tar ksyxbot-1ad9927e8eb242a828effff2d3bec2aae9314667.tar.gz ksyxbot-1ad9927e8eb242a828effff2d3bec2aae9314667.tar.bz2 ksyxbot-1ad9927e8eb242a828effff2d3bec2aae9314667.zip |
Support global statistics.
Diffstat (limited to 'stat.c')
-rw-r--r-- | stat.c | 46 |
1 files changed, 46 insertions, 0 deletions
@@ -0,0 +1,46 @@ +/* + * Created by yuuta on 4/5/22. + */ + +#include "logic.h" +#include "log.h" +#include "tdutils.h" +#include "db.h" + +void stat(struct TdMessage *msg) { + int r; + char m[2048]; + sqlite3_stmt *stmt = NULL; + if ((r = sqlite3_prepare_v2(db, "SELECT COUNT(user), SUM(i) FROM stats;", -1, &stmt, NULL))) { + goto sql_err; + sql_err: + { + snprintf(m, 1024, "Cannot query statistics: %s.", sqlite3_errstr(r)); + LOGEV("%s", m); + if (stmt) sqlite3_finalize(stmt); + goto send; + } + } + if ((r = sqlite3_step(stmt)) != SQLITE_ROW) goto sql_err; + snprintf(m, 1024, "普天之下,莫非 K 土。TGCN 共有 %d 位 K 教授的虔诚学生卖了 %d 句菜。", + sqlite3_column_int(stmt, 0), + sqlite3_column_int(stmt, 1)); + sqlite3_finalize(stmt); + 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); +}
\ No newline at end of file |