| 22 |
#include "str_process.h" |
#include "str_process.h" |
| 23 |
#include "user_list.h" |
#include "user_list.h" |
| 24 |
#include "user_priv.h" |
#include "user_priv.h" |
| 25 |
|
#include "user_info_display.h" |
| 26 |
#include "user_list_display.h" |
#include "user_list_display.h" |
| 27 |
#include <string.h> |
#include <string.h> |
| 28 |
#include <time.h> |
#include <time.h> |
| 33 |
EXIT_LIST = 0, |
EXIT_LIST = 0, |
| 34 |
VIEW_USER, |
VIEW_USER, |
| 35 |
CHANGE_PAGE, |
CHANGE_PAGE, |
| 36 |
|
REFRESH_LIST, |
| 37 |
SHOW_HELP, |
SHOW_HELP, |
| 38 |
}; |
}; |
| 39 |
|
|
| 40 |
static int user_list_draw_screen(int online_user) |
static int user_list_draw_screen(int online_user) |
| 41 |
{ |
{ |
| 42 |
clearscr(); |
clearscr(); |
| 43 |
show_top((online_user ? "[在线用户]" : "[已注册用户]"), BBS_name, ""); |
show_top((online_user ? "[线上使用者]" : "[已注册用户]"), BBS_name, ""); |
| 44 |
moveto(2, 0); |
moveto(2, 0); |
| 45 |
prints("返回[\033[1;32m←\033[0;37m,\033[1;32mESC\033[0;37m] 选择[\033[1;32m↑\033[0;37m,\033[1;32m↓\033[0;37m] " |
prints("返回[\033[1;32m←\033[0;37m,\033[1;32mESC\033[0;37m] 选择[\033[1;32m↑\033[0;37m,\033[1;32m↓\033[0;37m] " |
| 46 |
"查看[\033[1;32m→\033[0;37m,\033[1;32mENTER\033[0;37m] 帮助[\033[1;32mh\033[0;37m]\033[m"); |
"查看[\033[1;32m→\033[0;37m,\033[1;32mENTER\033[0;37m] 帮助[\033[1;32mh\033[0;37m]\033[m"); |
| 103 |
moveto(4 + i, 1); |
moveto(4 + i, 1); |
| 104 |
|
|
| 105 |
prints(" %6d %s%*s %s%*s %s", |
prints(" %6d %s%*s %s%*s %s", |
| 106 |
p_users[i].uid, |
p_users[i].id + 1, |
| 107 |
p_users[i].username, |
p_users[i].username, |
| 108 |
BBS_username_max_len - str_length(p_users[i].username, 1), |
BBS_username_max_len - str_length(p_users[i].username, 1), |
| 109 |
"", |
"", |
| 180 |
moveto(4 + i, 1); |
moveto(4 + i, 1); |
| 181 |
|
|
| 182 |
prints(" %6d %s%*s %s%*s %s%*s %s%*s %s", |
prints(" %6d %s%*s %s%*s %s%*s %s%*s %s", |
| 183 |
p_users[i].user_info.uid, |
p_users[i].id + 1, |
| 184 |
p_users[i].user_info.username, |
p_users[i].user_info.username, |
| 185 |
BBS_username_max_len - str_length(p_users[i].user_info.username, 1), |
BBS_username_max_len - str_length(p_users[i].user_info.username, 1), |
| 186 |
"", |
"", |
| 305 |
(*p_selected_index)++; |
(*p_selected_index)++; |
| 306 |
} |
} |
| 307 |
break; |
break; |
| 308 |
|
case KEY_F5: |
| 309 |
|
return REFRESH_LIST; |
| 310 |
case 'h': |
case 'h': |
| 311 |
return SHOW_HELP; |
return SHOW_HELP; |
| 312 |
default: |
default: |
| 344 |
char page_info_str[LINE_BUFFER_LEN]; |
char page_info_str[LINE_BUFFER_LEN]; |
| 345 |
USER_INFO users[BBS_user_limit_per_page]; |
USER_INFO users[BBS_user_limit_per_page]; |
| 346 |
USER_ONLINE_INFO online_users[BBS_user_limit_per_page]; |
USER_ONLINE_INFO online_users[BBS_user_limit_per_page]; |
| 347 |
int user_count; |
int user_count = 0; |
| 348 |
int page_count; |
int page_count = 0; |
| 349 |
int page_id = 0; |
int page_id = 0; |
| 350 |
int selected_index = 0; |
int selected_index = 0; |
| 351 |
int ret; |
int ret = 0; |
| 352 |
|
|
| 353 |
user_list_draw_screen(online_user); |
user_list_draw_screen(online_user); |
| 354 |
|
|
| 415 |
{ |
{ |
| 416 |
case EXIT_LIST: |
case EXIT_LIST: |
| 417 |
return 0; |
return 0; |
| 418 |
|
case REFRESH_LIST: |
| 419 |
case CHANGE_PAGE: |
case CHANGE_PAGE: |
| 420 |
ret = query_user_list(page_id, users, &user_count, &page_count); |
if (online_user) |
| 421 |
if (ret < 0) |
{ |
| 422 |
|
ret = query_user_online_list(page_id, online_users, &user_count, &page_count); |
| 423 |
|
if (ret < 0) |
| 424 |
|
{ |
| 425 |
|
log_error("query_user_online_list(page_id=%d) error\n", page_id); |
| 426 |
|
return -2; |
| 427 |
|
} |
| 428 |
|
} |
| 429 |
|
else |
| 430 |
{ |
{ |
| 431 |
log_error("query_favor_articles(page_id=%d) error\n", page_id); |
ret = query_user_list(page_id, users, &user_count, &page_count); |
| 432 |
return -2; |
if (ret < 0) |
| 433 |
|
{ |
| 434 |
|
log_error("query_user_list(page_id=%d) error\n", page_id); |
| 435 |
|
return -2; |
| 436 |
|
} |
| 437 |
} |
} |
| 438 |
|
|
| 439 |
if (user_count == 0) // empty list |
if (user_count == 0) // empty list |
| 446 |
} |
} |
| 447 |
break; |
break; |
| 448 |
case VIEW_USER: |
case VIEW_USER: |
| 449 |
log_error("View user (uid=%d)\n", |
user_info_display(online_user ? &(online_users[selected_index].user_info) : &(users[selected_index])); |
|
(online_user ? online_users[selected_index].user_info.uid : users[selected_index].uid)); |
|
|
clearscr(); |
|
|
press_any_key_ex("功能不可用,按任意键返回", 60); |
|
| 450 |
user_list_draw_screen(online_user); |
user_list_draw_screen(online_user); |
| 451 |
break; |
break; |
| 452 |
case SHOW_HELP: |
case SHOW_HELP: |