summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pttbbs/include/proto.h2
-rw-r--r--pttbbs/mbbsd/angel.c42
-rw-r--r--pttbbs/mbbsd/ccw.c6
-rw-r--r--pttbbs/mbbsd/io.c2
-rw-r--r--pttbbs/mbbsd/ordersong.c61
-rw-r--r--pttbbs/mbbsd/user.c1
-rw-r--r--pttbbs/mbbsd/var.c2
7 files changed, 59 insertions, 57 deletions
diff --git a/pttbbs/include/proto.h b/pttbbs/include/proto.h
index 97afc698..922b2fd4 100644
--- a/pttbbs/include/proto.h
+++ b/pttbbs/include/proto.h
@@ -36,6 +36,8 @@ int a_angelreport(void);
int a_angelreload(void);
int angel_reject_me(userinfo_t * uin);
void angel_notify_activity(void);
+void angel_log_order_song(const char *angel_nick);
+const char *angel_order_song(char *receiver, size_t sz_receiver);
void CallAngel(void);
void angel_toggle_pause();
void angel_load_my_fullnick(char *buf, int szbuf); // full nick!
diff --git a/pttbbs/mbbsd/angel.c b/pttbbs/mbbsd/angel.c
index e5049202..edd2d25d 100644
--- a/pttbbs/mbbsd/angel.c
+++ b/pttbbs/mbbsd/angel.c
@@ -79,7 +79,7 @@ angel_toggle_pause()
"設定小天使神諭呼叫器",
"請選取神諭呼叫器的新狀態: ",
"開放\t停收\t關閉",
- NULL);
+ NULL) % ANGELPAUSE_MODES;
}
}
@@ -341,6 +341,46 @@ int a_changeangel(void) {
return do_changeangel(0);
}
+const char *
+angel_order_song(char *receiver, size_t sz_receiver) {
+ userec_t udata;
+ char prompt[STRLEN], ans[3];
+ const char *angel_nick = NULL;
+
+ if (!*cuser.myangel)
+ return NULL;
+
+ // ensure if my angel is still valid.
+ if (passwd_load_user(cuser.myangel, &udata) <= 0 ||
+ !(udata.userlevel & PERM_ANGEL))
+ return NULL;
+
+ angel_nick = angel_get_nick();
+ snprintf(prompt, sizeof(prompt), "要留言給你的%s小天使嗎? [y/N]: ",
+ angel_nick);
+ if (getdata(20, 0, prompt, ans, sizeof(ans), LCECHO) && *ans == 'y') {
+ snprintf(receiver, sz_receiver, "%s小天使", angel_nick);
+ }
+ return angel_nick;
+}
+
+void
+angel_log_order_song(const char *angel_nick) {
+ char angel_exp[STRLEN];
+
+ syncnow();
+ if (cuser.timesetangel)
+ snprintf(angel_exp, sizeof(angel_exp),
+ "%d天", (cuser.timesetangel - now) / DAY_SECONDS + 1);
+ else
+ strlcpy(angel_exp, "很久", sizeof(angel_exp));
+
+ log_filef("log/osong_angel.log", LOG_CREAT,
+ "%s %*s 點歌給 %*s小天使 (關係已維持: %s)\n",
+ Cdatelite(&now), IDLEN, cuser.userid,
+ IDLEN - 6, angel_nick, angel_exp);
+}
+
int
a_angelmsg(){
char msg[3][75] = { "", "", "" };
diff --git a/pttbbs/mbbsd/ccw.c b/pttbbs/mbbsd/ccw.c
index b22fad2f..137e9d44 100644
--- a/pttbbs/mbbsd/ccw.c
+++ b/pttbbs/mbbsd/ccw.c
@@ -454,14 +454,10 @@ ccw_process(CCW_CTX *ctx)
/////////////////////////////////////////////////////////////////////////////
// Talk / Chat Adaptors
-#if 1
+#ifndef CCW_CAP_TALK
#define CCW_CAP_TALK "交談"
#define CCW_CAP_CHAT "聊天室"
#define CCW_CAP_CHATROOM "聊天室"
-#else
-#define CCW_CAP_TALK "聊天"
-#define CCW_CAP_CHAT "談天室"
-#define CCW_CAP_CHATROOM "談天室"
#endif
CCW_PROTO int
diff --git a/pttbbs/mbbsd/io.c b/pttbbs/mbbsd/io.c
index 51c7163d..fccd9433 100644
--- a/pttbbs/mbbsd/io.c
+++ b/pttbbs/mbbsd/io.c
@@ -248,7 +248,7 @@ process_pager_keys(int ch)
currutmp->msgs[0].userid, WATERBALL_GENERAL, NULL);
break;
case MSGMODE_FROMANGEL:
- my_write(currutmp->msgs[0].pid, "再問祂一次: ",
+ my_write(currutmp->msgs[0].pid, "再問一次: ",
currutmp->msgs[0].userid, WATERBALL_ANGEL, NULL);
break;
case MSGMODE_TOANGEL:
diff --git a/pttbbs/mbbsd/ordersong.c b/pttbbs/mbbsd/ordersong.c
index 93e79ce1..964b3408 100644
--- a/pttbbs/mbbsd/ordersong.c
+++ b/pttbbs/mbbsd/ordersong.c
@@ -32,9 +32,7 @@ do_order_song(void)
fileheader_t mail;
int nsongs;
char save_title[STRLEN];
-#ifdef PLAY_ANGEL
- const char *angel_nick = NULL;
-#endif
+ const char *override_receiver = NULL;
// 由於變免費了,改成要文章數跟登入天數
#ifdef ORDERSONG_MIN_NUMPOST
@@ -97,35 +95,14 @@ do_order_song(void)
vmsg("謝謝光臨 :)");
unlockutmpmode();
return 0;
- }
+ }
}
getdata_str(19, 0, "留言者(可匿名): ", sender, sizeof(sender), DOECHO,
cuser.userid);
-#ifdef ANGEL_RAIN_DAY
- do {
- struct tm t = {0};
- char prompt[STRLEN], ans[3];
- userec_t udata;
- localtime4_r(&now, &t);
- if (t.tm_mday != ANGEL_RAIN_DAY)
- break;
- if (!*cuser.myangel)
- break;
- // ensure if my angel is still valid.
- if (passwd_load_user(cuser.myangel, &udata) <= 0 ||
- !(udata.userlevel & PERM_ANGEL))
- break;
- // TODO check if the angel has been selected for one month.
- angel_nick = angel_get_nick();
- snprintf(prompt, sizeof(prompt),
- "要參加天使節活動,留言給你的%s小天使嗎? [y/N]: ",
- angel_nick);
- if (getdata(20, 0, prompt, ans, sizeof(ans), LCECHO) && *ans == 'y') {
- snprintf(receiver, sizeof(receiver), "%s小天使", angel_nick);
- }
- } while (0);
+#ifdef USE_ANGEL_SONG
+ override_receiver = angel_order_song(receiver, sizeof(receiver));
#endif
if (!*receiver)
@@ -142,14 +119,9 @@ do_order_song(void)
snprintf(save_title, sizeof(save_title), "%s:%s", sender, say);
-#ifdef PLAY_ANGEL
- if (angel_nick) {
- // Send to Angel, or simply make it blank?
- // strlcpy(address, sizeof(address), cuser.myangel);
+ if (override_receiver) {
*address = 0;
- } else
-#endif
- do {
+ } else do {
move(22, 0); clrtobot();
getdata_str(22, 0, "寄到誰的信箱(站內真實ID)?",
address, sizeof(address), LCECHO, receiver);
@@ -186,7 +158,8 @@ do_order_song(void)
return 0;
}
strlcpy(mail.owner, "[心情點播]", sizeof(mail.owner));
- snprintf(mail.title, sizeof(mail.title), "◇ %s 留言給 %s ", sender, receiver);
+ snprintf(mail.title, sizeof(mail.title), "◇ %s 留言給 %s ", sender,
+ receiver);
while (fgets(buf, sizeof(buf), fp)) {
char *po;
@@ -232,20 +205,10 @@ do_order_song(void)
"%s\t%s\t%s\t%s\t%s\t%s\t%s\n",
Cdate(&now), cuser.userid, trans_buffer, address,
sender, receiver, say));
-#ifdef PLAY_ANGEL
- if (angel_nick) {
- // TODO post to AngelPray?
- char angel_exp[STRLEN];
- if (cuser.timesetangel)
- snprintf(angel_exp, sizeof(angel_exp),
- "%d天", (cuser.timesetangel - now) / DAY_SECONDS + 1);
- else
- strlcpy(angel_exp, "很久", sizeof(angel_exp));
- log_filef("log/osong_angel.log", LOG_CREAT,
- "%s %*s 點歌給 %*s小天使 (關係已維持: %s)\n",
- Cdatelite(&now), IDLEN, cuser.userid,
- IDLEN - 6, angel_nick, angel_exp);
- }
+
+#ifdef USE_ANGEL_SONG
+ if (override_receiver)
+ angel_log_order_song(override_receiver);
#endif
if (append_record(OSONGPATH "/" FN_DIR, &mail, sizeof(mail)) != -1) {
diff --git a/pttbbs/mbbsd/user.c b/pttbbs/mbbsd/user.c
index b27c6bc7..d8bb626b 100644
--- a/pttbbs/mbbsd/user.c
+++ b/pttbbs/mbbsd/user.c
@@ -1221,6 +1221,7 @@ uinfo_query(const char *orig_uid, int adminmode, int unum)
sendalert(x.userid, ALERT_PWD_PERM); // force to reload perm
post_change_perm(changefrom, x.userlevel, cuser.userid, x.userid);
#ifdef PLAY_ANGEL
+ // TODO notify Angelbeats
if (x.userlevel & ~changefrom & PERM_ANGEL)
mail_id(x.userid, "翅膀長出來了!", "etc/angel_notify", "[天使公會]");
#endif
diff --git a/pttbbs/mbbsd/var.c b/pttbbs/mbbsd/var.c
index fddcdc26..dd3e973e 100644
--- a/pttbbs/mbbsd/var.c
+++ b/pttbbs/mbbsd/var.c
@@ -24,7 +24,7 @@ const char * const str_permid[] = {
#ifdef PLAY_ANGEL
"可擔任小天使", /* PERM_ANGEL */
#else
- "未使用",
+ "小天使(本站無效)",
#endif
"不允許\認證碼註冊", /* PERM_NOREGCODE */
"視覺站長", /* PERM_VIEWSYSOP */