/* * Created by yuuta on 4/5/22. */ #include "logic.h" #include "log.h" #include "tdutils.h" #include "db.h" #include #include static char *praises[] = { "普天之下,莫非 K 土。TGCN 共有 %d 位 K 教授的虔诚学生卖了 %d 句菜。", "率土之滨,莫非 K 臣。TGCN 共有 %d 位 K 教授的虔诚学生卖了 %d 句菜。", }; void stat(struct TdMessage *msg) { int r; char m[1024]; 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, praises[rand() % (sizeof(praises) / sizeof(char *))], sqlite3_column_int(stmt, 0), sqlite3_column_int(stmt, 1)); sqlite3_finalize(stmt); stmt = NULL; if ((r = sqlite3_prepare_v2(db, "SELECT COUNT(t) FROM says;", -1, &stmt, NULL))) goto sql_err; if ((r = sqlite3_step(stmt)) != SQLITE_ROW) goto sql_err; size_t len = strlen(m); snprintf(&m[len], 1024 - len, "\n\n共有 %d 句教授语录。", sqlite3_column_int(stmt, 0)); 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); }