summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuuta Liang <yuuta@yuuta.moe>2024-04-03 13:36:30 -0700
committerYuuta Liang <yuuta@yuuta.moe>2024-04-03 13:36:30 -0700
commitc9e129681bd042f358a5c63f9ac91ce4c33ef603 (patch)
tree01637d563e49baa23f15ed97a4efed90346ac740
parent04a1de508aa4977c56b0e59a383a2ce7c1d3e340 (diff)
downloadksyxbot-c9e129681bd042f358a5c63f9ac91ce4c33ef603.tar
ksyxbot-c9e129681bd042f358a5c63f9ac91ce4c33ef603.tar.gz
ksyxbot-c9e129681bd042f358a5c63f9ac91ce4c33ef603.tar.bz2
ksyxbot-c9e129681bd042f358a5c63f9ac91ce4c33ef603.zip
Add ranking
-rw-r--r--db.c2
-rw-r--r--query.c6
2 files changed, 6 insertions, 2 deletions
diff --git a/db.c b/db.c
index 44cf0d8..6b13058 100644
--- a/db.c
+++ b/db.c
@@ -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;
}
diff --git a/query.c b/query.c
index 3905ae2..d052039 100644
--- a/query.c
+++ b/query.c
@@ -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++;