diff options
author | Yuuta Liang <yuuta@yuuta.moe> | 2024-04-03 13:36:30 -0700 |
---|---|---|
committer | Yuuta Liang <yuuta@yuuta.moe> | 2024-04-03 13:36:30 -0700 |
commit | c9e129681bd042f358a5c63f9ac91ce4c33ef603 (patch) | |
tree | 01637d563e49baa23f15ed97a4efed90346ac740 | |
parent | 04a1de508aa4977c56b0e59a383a2ce7c1d3e340 (diff) | |
download | ksyxbot-c9e129681bd042f358a5c63f9ac91ce4c33ef603.tar ksyxbot-c9e129681bd042f358a5c63f9ac91ce4c33ef603.tar.gz ksyxbot-c9e129681bd042f358a5c63f9ac91ce4c33ef603.tar.bz2 ksyxbot-c9e129681bd042f358a5c63f9ac91ce4c33ef603.zip |
Add ranking
-rw-r--r-- | db.c | 2 | ||||
-rw-r--r-- | query.c | 6 |
2 files changed, 6 insertions, 2 deletions
@@ -164,7 +164,7 @@ void db_init(void) { goto sql_err; } - if ((r = sqlite3_prepare_v2(db, "SELECT i FROM stats WHERE user = ?", -1, &stmt_personal_stat, NULL))) { + if ((r = sqlite3_prepare_v2(db, "SELECT * FROM (SELECT i FROM stats WHERE user = ?), (SELECT COUNT(i) FROM stats WHERE i >= (SELECT i FROM stats WHERE user = ?)), (SELECT COUNT(i) FROM stats)", -1, &stmt_personal_stat, NULL))) { errmsg = (char *) sqlite3_errstr(r); goto sql_err; } @@ -53,6 +53,8 @@ int handle_inline(struct TdUpdateNewInlineQuery *update) { const bool query = update->query_; char *query_str = NULL; int personal_stat = 0; + int ranking = 0; + int total = 0; char id_temp[32]; char msg_stat[32]; sqlite3_stmt *stmt_query = query ? stmt_search : stmt_random; @@ -72,6 +74,8 @@ int handle_inline(struct TdUpdateNewInlineQuery *update) { switch (r = sqlite3_step(stmt_personal_stat)) { case SQLITE_ROW: { personal_stat = sqlite3_column_int(stmt_personal_stat, 0); + ranking = sqlite3_column_int(stmt_personal_stat, 1); + total = sqlite3_column_int(stmt_personal_stat, 2); break; } case SQLITE_DONE: { @@ -82,7 +86,7 @@ int handle_inline(struct TdUpdateNewInlineQuery *update) { } } - snprintf(msg_stat, sizeof(msg_stat), "我已经卖了 %d 句菜", personal_stat); + snprintf(msg_stat, sizeof(msg_stat), "我已经卖了 %d 句菜,TGCN 排名 %d / %d", personal_stat, ranking, total); snprintf(id_temp, sizeof(id_temp), "s%lld", update->sender_user_id_); results_inline[0] = create_inline_result(id_temp, "卖菜统计", "点击发送卖菜统计", msg_stat); effective_items_count++; |