From a4f496f0c13fb087296e9091f005d29af22a90ec Mon Sep 17 00:00:00 2001 From: piaip Date: Thu, 3 Apr 2008 13:42:22 +0000 Subject: - support anonymous commenting for angel system (use with caution - define ANGEL_ANONYMOUS_COMMENT to enable) git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4073 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/angel.c | 4 +++- mbbsd/bbs.c | 28 +++++++++++++++++++++------- mbbsd/edit.c | 3 +-- 3 files changed, 25 insertions(+), 10 deletions(-) (limited to 'mbbsd') diff --git a/mbbsd/angel.c b/mbbsd/angel.c index 024091e9..0218ceab 100644 --- a/mbbsd/angel.c +++ b/mbbsd/angel.c @@ -38,10 +38,11 @@ angel_parse_nick_fp(FILE *fp, char *nick, int sznick) } void -angel_load_my_nick(char *buf, int szbuf) +angel_load_my_fullnick(char *buf, int szbuf) { char fn[PATHLEN]; FILE *fp = NULL; + *buf = 0; setuserfile(fn, FN_ANGELMSG); if ((fp = fopen(fn, "rt"))) @@ -49,6 +50,7 @@ angel_load_my_nick(char *buf, int szbuf) angel_parse_nick_fp(fp, buf, szbuf); fclose(fp); } + strlcat(buf, "小天使", szbuf); } // cache my angel's nickname diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index b34fc496..ad1ee541 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -2660,6 +2660,10 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) { struct tm *ptime = localtime4(&now); char buf[PATHLEN], msg[STRLEN]; + const char *myid = cuser.userid; +#if defined(PLAY_ANGEL) && defined(BN_ANGELPRAY) + char mynick[IDLEN+1]; +#endif // PLAY_ANGEL #ifndef OLDRECOMMEND static const char *ctype[3] = { "推", "噓", "→" @@ -2894,16 +2898,26 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) logIP = 1; } +#if defined(PLAY_ANGEL) && defined(BN_ANGELPRAY) && defined(ANGEL_ANONYMOUS_COMMENT) + if (HasUserPerm(PERM_ANGEL) && currboard && strcmp(currboard, BN_ANGELPRAY) == 0 && + getans("要使用小天使暱名推文嗎? [Y/n]: ") != 'n') + { + // angel push + mynick[0] = 0; + angel_load_my_fullnick(mynick, sizeof(mynick)); + myid = mynick; + } +#endif + #ifdef OLDRECOMMEND maxlength -= 2; /* '推' */ - maxlength -= strlen(cuser.userid); - sprintf(buf, "%s %s:", "→" , cuser.userid); + maxlength -= strlen(myid); + sprintf(buf, "%s %s:", "→" , myid); #else // !OLDRECOMMEND - maxlength -= strlen(cuser.userid); + maxlength -= strlen(myid); sprintf(buf, "%s%s%s %s:", - ctype_attr[type], ctype[type], ANSI_RESET, - cuser.userid); + ctype_attr[type], ctype[type], ANSI_RESET, myid); #endif // !OLDRECOMMEND move(b_lines, 0); @@ -2966,12 +2980,12 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) ANSI_COLOR(1;31) "→ " ANSI_COLOR(33) "%s" ANSI_RESET ANSI_COLOR(33) ":%-*s" ANSI_RESET "推%s\n", - cuser.userid, maxlength, msg, tail); + myid, maxlength, msg, tail); #else snprintf(buf, sizeof(buf), "%s%s " ANSI_COLOR(33) "%s" ANSI_RESET ANSI_COLOR(33) ":%-*s" ANSI_RESET "%s\n", - ctype_attr2[type], ctype[type], cuser.userid, + ctype_attr2[type], ctype[type], myid, maxlength, msg, tail); #endif // OLDRECOMMEND } diff --git a/mbbsd/edit.c b/mbbsd/edit.c index 4058aa05..2e3f3985 100644 --- a/mbbsd/edit.c +++ b/mbbsd/edit.c @@ -1475,8 +1475,7 @@ write_header(FILE * fp, char *mytitle) // FIXME unused && strcmp(currboard, BN_ANGELPRAY) == 0) { char mynick[IDLEN+1]; - angel_load_my_nick(mynick, sizeof(mynick)); - strlcat(mynick, "小天使", sizeof(mynick)); + angel_load_my_fullnick(mynick, sizeof(mynick)); getdata_str(3, 0, "請輸入想用的名字(輸入[r]為真名): ", real_name, sizeof(real_name), DOECHO, mynick); } else -- cgit v1.2.3