summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-07-23 03:33:38 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-07-23 03:33:38 +0800
commit0283b33c66acb173a2cb7bac19a79048c755cd41 (patch)
tree060a74b3285f1bff0c53d54859d485673197187b
parenta080e7f3327f3b5a6705142797895c059d03a0fc (diff)
downloadpttbbs-0283b33c66acb173a2cb7bac19a79048c755cd41.tar
pttbbs-0283b33c66acb173a2cb7bac19a79048c755cd41.tar.gz
pttbbs-0283b33c66acb173a2cb7bac19a79048c755cd41.tar.bz2
pttbbs-0283b33c66acb173a2cb7bac19a79048c755cd41.tar.lz
pttbbs-0283b33c66acb173a2cb7bac19a79048c755cd41.tar.xz
pttbbs-0283b33c66acb173a2cb7bac19a79048c755cd41.tar.zst
pttbbs-0283b33c66acb173a2cb7bac19a79048c755cd41.zip
option to toggle cp auto log
for both entire site def and board conf. also updated board conf (for recommendation/cp auto log) git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2944 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--include/pttstruct.h3
-rw-r--r--mbbsd/bbs.c100
-rw-r--r--sample/etc/board.help9
-rw-r--r--sample/pttbbs.conf3
4 files changed, 90 insertions, 25 deletions
diff --git a/include/pttstruct.h b/include/pttstruct.h
index 348187fc..2104cf0e 100644
--- a/include/pttstruct.h
+++ b/include/pttstruct.h
@@ -216,9 +216,8 @@ typedef struct boardheader_t {
#define BRD_LOCALSAVE 000400000 /* 預設 Local Save */
#define BRD_RESTRICTEDPOST 001000000 /* 板友才能發文 */
#define BRD_GUESTPOST 002000000 /* guest能 post */
-#ifdef USE_COOLDOWN
#define BRD_COOLDOWN 004000000 /* 冷靜 */
-#endif
+#define BRD_NOCPLOG 010000000 /* 不會自動留轉錄記錄 */
#define BRD_LINK_TARGET(x) ((x)->postexpire)
#define GROUPOP() (currmode & MODE_GROUPOP)
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c
index fb69613b..819f7455 100644
--- a/mbbsd/bbs.c
+++ b/mbbsd/bbs.c
@@ -1169,16 +1169,16 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct)
addsignature(xptr, 0);
fclose(xptr);
- /* now point bp to new bord */
- bp = getbcache(getbnum(xboard));
-
- /* add cp log */
+#ifdef AUTO_CP_LOG
+ /* add cp log. bp is currboard now. */
+ if(!(bp->brdattr & BRD_NOCPLOG))
{
char buf[MAXPATHLEN];
char bname[STRLEN] = "";
struct tm *ptime = localtime4(&now);
int maxlength = 51 +2 - 6;
+ bp = getbcache(getbnum(xboard));
if ((bp->brdattr & BRD_HIDE) && (bp->brdattr & BRD_POSTMASK))
{
/* mosaic it */
@@ -1206,7 +1206,10 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct)
cuser.userid, bname, maxlength, "",
fromhost, ptime->tm_mon + 1, ptime->tm_mday);
do_add_recommend(direct, fhdr, ent, buf, 2);
- }
+ } else
+#endif
+ /* now point bp to new bord */
+ bp = getbcache(getbnum(xboard));
/*
* Cross fs有問題 } else { unlink(xfpath); link(fname, xfpath); }
@@ -2553,29 +2556,88 @@ static int
b_changerecommend(int ent, const fileheader_t * fhdr, const char *direct)
{
boardheader_t *bp=NULL;
+ int touched = 0;
if (!((currmode & MODE_BOARD) || HasUserPerm(PERM_SYSOP)))
return DONOTHING;
bp = getbcache(currbid);
+ move(b_lines - 6, 0); clrtobot();
+ outs(MSG_SEPERATOR);
+ outs("\n目前看板設定:\n");
+ prints(" - %s 推薦文章\n",
+ (bp->brdattr & BRD_NORECOMMEND) ? "不可":"可以");
+#ifndef OLDRECOMMEND
+ prints(" - %s 噓文\n",
+ ((bp->brdattr & BRD_NORECOMMEND) || (bp->brdattr & BRD_NOBOO))
+ ? "不可":"可以");
+#endif
+#ifdef AUTO_CP_LOG
+ prints(" - 轉錄文章時 %s 自動記錄\n",
+ (bp->brdattr & BRD_NOCPLOG) ? "不會":"會");
+#endif
-#ifdef OLDRECOMMEND
- bp->brdattr ^= BRD_NORECOMMEND;
+ switch(tolower(getans("請按 r%s%s 設定可否 推文%s%s: ",
+#ifndef OLDRECOMMEND
+ "/b",
#else
- if(bp->brdattr & BRD_NOBOO)
- bp->brdattr ^= BRD_NORECOMMEND;
- if(!(bp->brdattr & BRD_NORECOMMEND) || !(bp->brdattr & BRD_NOBOO))
- bp->brdattr ^= BRD_NOBOO;
+ "",
#endif
-
- substitute_record(fn_board, bp, sizeof(boardheader_t), currbid);
-
+#ifdef AUTO_CP_LOG
+ "/x",
+#else
+ "",
+#endif
+#ifndef OLDRECOMMEND
+ "噓文/",
+#else
+ "",
+#endif
+#ifdef AUTO_CP_LOG
+ "轉錄自動記錄"
+#else
+ ""
+#endif
+ )))
+ {
+#ifdef AUTO_CP_LOG
+ case 'x':
+ bp->brdattr ^= BRD_NOCPLOG;
+ touched = 1;
+ vmsg("已設定為自本板轉錄文章將 %s 自動留下記錄",
+ (bp->brdattr & BRD_NOCPLOG) ? "不會" : "會"
+ );
+ break;
+#endif
+ case 'r':
+ bp->brdattr ^= BRD_NORECOMMEND;
+ touched = 1;
#ifdef OLDRECOMMEND
- vmsg("本板現在 %s 推薦",
- (bp->brdattr & BRD_NORECOMMEND) ? "禁止" : "開放");
+ vmsg("本板現在 %s 推薦",
+ (bp->brdattr & BRD_NORECOMMEND) ? "禁止" : "開放");
+ break;
#else
- vmsg("本板現在 %s 推薦, %s 噓聲",
- (bp->brdattr & BRD_NORECOMMEND) ? "禁止" : "開放",
- (bp->brdattr & BRD_NOBOO) ? "禁止" : "開放");
+ vmsg("本板現在 %s 推薦, %s 噓聲",
+ (bp->brdattr & BRD_NORECOMMEND) ? "禁止" : "開放",
+ ((bp->brdattr & BRD_NORECOMMEND)||(bp->brdattr & BRD_NOBOO)) ? "禁止" : "開放");
+ break;
+ case 'b':
+ if(bp->brdattr & BRD_NORECOMMEND)
+ bp->brdattr |= BRD_NOBOO;
+ bp->brdattr ^= BRD_NOBOO;
+ touched = 1;
+ if (!(bp->brdattr & BRD_NOBOO))
+ bp->brdattr &= ~BRD_NORECOMMEND;
+ vmsg("本板現在 %s 推薦, %s 噓聲",
+ (bp->brdattr & BRD_NORECOMMEND) ? "禁止" : "開放",
+ ((bp->brdattr & BRD_NORECOMMEND)||(bp->brdattr & BRD_NOBOO)) ? "禁止" : "開放");
+ break;
#endif
+ default:
+ vmsg("未改變任何設定");
+ break;
+ }
+ if(touched)
+ substitute_record(fn_board, bp, sizeof(boardheader_t), currbid);
+
return FULLUPDATE;
}
diff --git a/sample/etc/board.help b/sample/etc/board.help
index 0825c75d..28345f5a 100644
--- a/sample/etc/board.help
+++ b/sample/etc/board.help
@@ -15,7 +15,8 @@
【 板主命令 】
(M/o) 舉行投票/編輯投票名單 (m/c/g/^Z) 保留/選錄精華/文摘/置底
- (D) 刪除一段範圍的文章 (T/B) 重編文章標題/重編看板標題
- (I/^E) 開放/禁止看板推薦/發文 (t/^D) 標記文章/砍除標記的文章
- (O)/(i) 發表注意事項 文章類別 (H)/(Y) 切換看板隱藏/取消推薦文章
- (^G) 舉辦賭盤/停止下注/開獎 (W)/(K)/(v) 編進板畫面/水桶/可見名單
+ (D) 刪除一段範圍的文章 (Y) 取消推薦文章
+ (T/B) 重編文章標題/重編看板標題 (t/^D) 標記文章/砍除標記的文章
+ (O)/(i) 發表注意事項/文章類別 (W)/(K)/(v) 編進板畫面/水桶/可見名單
+ (^G) 舉辦賭盤/停止下注/開獎 (H)/(^E) 切換看板隱藏/禁止發文
+ (I) 設定可否推薦文章/轉錄文章自動記錄
diff --git a/sample/pttbbs.conf b/sample/pttbbs.conf
index 3ec5fe88..3263bbc9 100644
--- a/sample/pttbbs.conf
+++ b/sample/pttbbs.conf
@@ -185,6 +185,9 @@
/* 若定義, 則使用舊式推文 */
#define OLDRECOMMEND
+/* 若定義, 轉錄會在原文留下記錄 */
+#define AUTO_CP_LOG
+
/* 贈送信箱 */
//#define ADD_EXMAILBOX 100