summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pttbbs/mbbsd/angel.c56
1 files changed, 43 insertions, 13 deletions
diff --git a/pttbbs/mbbsd/angel.c b/pttbbs/mbbsd/angel.c
index e1c76e80..6a42981e 100644
--- a/pttbbs/mbbsd/angel.c
+++ b/pttbbs/mbbsd/angel.c
@@ -364,6 +364,9 @@ do_changeangel(int force) {
return 0;
}
#endif
+ if (is_bad_master)
+ log_filef("log/bad_master.log", LOG_CREAT,
+ "%s %s change angel.\n", Cdatelite(&now), cuser.userid);
if (is_bad_master &&
!verify_captcha("為避免大量非正常更換小天使,\n"))
return 0;
@@ -433,8 +436,9 @@ int angel_check_master(void) {
vmsg("此 ID 不存在。");
return 0;
}
+ wait_penalty(1);
is_my_master = (strcasecmp(xuser.myangel, cuser.userid) == 0);
- move(10, 0);
+ move(7, 0);
if (is_my_master) {
prints(ANSI_COLOR(1;32) "%s 是你的主人。" ANSI_RESET "\n",
xuser.userid);
@@ -451,6 +455,8 @@ int angel_check_master(void) {
prints(ANSI_COLOR(1;31) "%s 不是你的小主人。" ANSI_RESET "\n",
xuser.userid);
}
+ log_filef("log/angel_query_master.log", LOG_CREAT,
+ "%s [%s] query [%s]\n", Cdatelite(&now), cuser.userid, uid);
pressanykey();
return 0;
}
@@ -500,45 +506,69 @@ int a_angelreport() {
outs(ERR_PROTOCOL2);
} else {
prints(
- "\t 現在時間: %s\n\n"
- "\n\t 系統內已登記的天使為 %d 位。\n"
- "\n\t 目前有 %d 位天使在線上,其中 %d 位神諭呼叫器為設定開放;\n",
+ "\t 現在時間: %s\n"
+ "\t 系統內已登記的天使為 %d 位。\n"
+ "\t 目前有 %d 位天使在線上,其中 %d 位神諭呼叫器為設定開放;\n",
Cdatelite(&now),
rpt.total_angels,
rpt.total_online_angels,
rpt.total_active_angels);
prints(
- "\n\t 上線天使中,擁有活躍小主人數目最少為 %d 位,最多為 %d 位\n"
- "\n\t 上線且開放收主人的天使中,活躍主人最少 %d 位,最多 %d 位\n"
- "\n\t 活躍小主人定義為 %d 天內有對任一(包含前任)小天使傳過訊息\n",
+ "\t 上線天使中,擁有活躍小主人數目最少為 %d 位,最多為 %d 位\n"
+ "\t 上線且開放收主人的天使中,活躍主人最少 %d 位,最多 %d 位\n"
+ "\t 活躍小主人定義為 %d 天內有對任一(包含前任)小天使傳過訊息\n",
rpt.min_masters_of_online_angels,
rpt.max_masters_of_online_angels,
rpt.min_masters_of_active_angels,
rpt.max_masters_of_active_angels,
rpt.inactive_days ? rpt.inactive_days : 120);
+ if (!rpt.inactive_days)
+ rpt.inactive_days = 120;
+ int days = (now - 1361168062) / 86400 + 1;
+ if (days < rpt.inactive_days)
+ prints("\t (由於活躍小主人是新增的統計項目,"
+ "目前實際只有 %d 天內的數據)\n", days);
+
+ prints("\n\t " ANSI_COLOR(1;33) "提醒您以下數據有包含您私人的記錄,"
+ "任意公佈可能會洩露身份。\n" ANSI_RESET);
#ifdef ANGEL_REPORT_INDEX
if (HasUserPerm(PERM_ANGEL)) {
if (currutmp->angelpause != ANGELPAUSE_NONE)
- prints("\n\t 由於您目前拒收小主人所以無順位資訊\n");
+ prints("\t 由於您目前拒收小主人所以無順位資訊\n");
else if (rpt.my_active_index == 0)
- prints("\n\t 您似乎有其它登入停收或拒收所以目前無天使順位\n");
+ prints("\t 您似乎有其它登入停收或拒收所以目前無天使順位\n");
else
- prints("\n\t 您的線上小天使順位為 %d。"
- "\n\t 此順位可能會因其它小天使上線或改變呼叫器而變大\n",
+ prints("\t 您的線上小天使順位為 %d。\n"
+ "\t 此順位可能會因其它小天使上線或改變呼叫器而變大\n",
rpt.my_active_index);
}
#endif
- prints("\n\t 您目前大約有 %d 位活躍小主人。\n", rpt.my_active_masters);
+ prints("\t 您目前大約有 %d 位活躍小主人。\n", rpt.my_active_masters);
+
if (rpt.last_assigned_master > 0) {
- prints("\n\t 你最後收到的新小主人是 %s (%s)\n",
+ prints("\t 你最後收到的新小主人是 %s (%s)\n",
getuserid(rpt.last_assigned_master),
Cdatelite(&rpt.last_assigned));
+ prints("\n"
+ "\t (很多新的小主人可能是誤按或洗天使總之都不會送訊息,\n"
+ "\t 如果你等很久都沒看到新主人的訊息,就可以明白為何之前\n"
+ "\t 會以為都沒有新主人,其實是有收到但對方不講話)\n");
}
+#ifdef ANGEL_ASSIGN_DOCUMENT
+ prints("\n\t 若覺得很久都沒收到新主人可按 [a] 鍵查看分配機制說明。\n");
+#endif
}
close(fd);
+#ifdef ANGEL_ASSIGN_DOCUMENT
+ if (tolower(pressanykey()) == 'a') {
+ more(ANGEL_ASSIGN_DOCUMENT, YEA);
+ }
+#else
pressanykey();
+#endif
+ wait_penalty(1);
return 0;
}