summaryrefslogtreecommitdiffstats
path: root/mbbsd/assess.c
diff options
context:
space:
mode:
Diffstat (limited to 'mbbsd/assess.c')
-rw-r--r--mbbsd/assess.c268
1 files changed, 0 insertions, 268 deletions
diff --git a/mbbsd/assess.c b/mbbsd/assess.c
deleted file mode 100644
index 4d63a8d8..00000000
--- a/mbbsd/assess.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/* $Id$ */
-#include "bbs.h"
-
-#ifdef ASSESS
-
-/* do (*num) + n, n is integer. */
-inline static void inc(unsigned char *num, int n)
-{
- if (n >= 0 && SALE_MAXVALUE - *num <= n)
- (*num) = SALE_MAXVALUE;
- else if (n < 0 && *num < -n)
- (*num) = 0;
- else
- (*num) += n;
-}
-
-#define modify_column(_attr) \
-int inc_##_attr(const char *userid, int num) \
-{ \
- userec_t xuser; \
- int uid = getuser(userid, &xuser);\
- if( uid > 0 ){ \
- inc(&xuser._attr, num); \
- passwd_update(uid, &xuser); \
- return xuser._attr; }\
- return 0;\
-}
-
-modify_column(goodpost); /* inc_goodpost */
-modify_column(badpost); /* inc_badpost */
-modify_column(goodsale); /* inc_goodsale */
-modify_column(badsale); /* inc_badsale */
-
-#if 0 //unused function
-void set_assess(const char *userid, unsigned char num, int type)
-{
- userec_t xuser;
- int uid = getuser(userid, &xuser);
- if(uid<=0) return;
- switch (type){
- case GOODPOST:
- xuser.goodpost = num;
- break;
- case BADPOST:
- xuser.badpost = num;
- break;
- case GOODSALE:
- xuser.goodsale = num;
- break;
- case BADSALE:
- xuser.badsale = num;
- break;
- }
- passwd_update(uid, &xuser);
-}
-#endif
-
-// how long is AID? see read.c...
-#ifndef AIDC_LEN
-#define AIDC_LEN (20)
-#endif // AIDC_LEN
-
-// #define MAXGP (100)
-#define MAXGP (SALE_MAXVALUE)
-
-int
-u_fixgoodpost(void)
-{
- char endinput = 0;
- unsigned int newgp = 0;
- int bid;
- char bname[IDLEN+1];
- char xaidc[AIDC_LEN+1];
-
- aidu_t gpaids[MAXGP+1];
- int gpbids[MAXGP+1];
- int cgps = 0;
-
- clear();
- stand_title("自動優文修正程式");
-
- outs("開始修正優文之前,有些功\課要麻煩您先查好:\n\n"
- "請先找到你所有的優文文章的看板與" AID_DISPLAYNAME "\n"
- AID_DISPLAYNAME "的查詢方法是在該篇文章前面按下大寫 Q 。\n"
- "查好後請把這些資料放在手邊,等下會請您輸入。\n"
- "另外,若有多重登入請先關閉其它連線。\n"
- "\n");
- outs("如果一切都準備好了,請按下 y 開始,或其它任意鍵跳出。\n\n");
- if (getans("優文的資料都查好了嗎?") != 'y')
- {
- vmsg("跳出修正程式。");
- return 0;
- }
- while (!endinput && newgp < MAXGP)
- {
- int y, x = 0;
- boardheader_t *bh = NULL;
-
- move(1, 0); clrtobot();
- outs("請依序輸入優文資訊,全部完成後按 ENTER 即可停止。\n");
-
- move(b_lines-2, 0); clrtobot();
- prints("目前已確認優文數目: %d" ANSI_RESET "\n\n", newgp);
-
- if (!getdata(5, 0, "請輸入優文文章所在看板名稱: ",
- bname, sizeof(bname), DOECHO))
- {
- move(5, 0);
- if (getans(ANSI_COLOR(1;33)"確定全部輸入完成了嗎? "
- ANSI_RESET "[y/N]: ") != 'y')
- continue;
- endinput = 1; break;
- }
- move (6, 0);
- outs("確認看板... ");
- if (bname[0] == '\0' || !(bid = getbnum(bname)))
- {
- outs(ANSI_COLOR(1;31) "看板不存在!");
- vmsg("請重新輸入。");
- continue;
- }
- assert(0<=bid-1 && bid-1<MAX_BOARD);
- bh = getbcache(bid);
- strlcpy(bname, bh->brdname, sizeof(bname));
- prints("已找到看板 --> %s\n", bname);
- getyx(&y, &x);
-
- // loop AID query
- while (newgp < MAXGP)
- {
- int n;
- int fd;
- char dirfile[PATHLEN];
- char *sp;
- aidu_t aidu = 0;
- fileheader_t fh;
-
- move(y, 0); clrtobot();
- move(b_lines-2, 0); clrtobot();
- prints("目前已確認優文數目: %d" ANSI_RESET "\n\n", newgp);
-
- if (getdata(y, 0, "請輸入" AID_DISPLAYNAME ": #",
- xaidc, AIDC_LEN, DOECHO) == 0)
- break;
-
- sp = xaidc;
- while(*sp == ' ') sp ++;
- if(*sp == '#') sp ++;
-
- if((aidu = aidc2aidu(sp)) <= 0)
- {
- outs(ANSI_COLOR(1;31) AID_DISPLAYNAME "格式不正確!");
- vmsg("請重新輸入。");
- continue;
- }
-
- // check repeated input of same board+AID.
- for (n = 0; n < cgps; n++)
- {
- if (gpaids[n] == aidu && gpbids[n] == bid)
- {
- vmsg("您已輸入過此優文了,請重新輸入。");
- aidu = 0;
- break;
- }
- }
-
- if (aidu <= 0)
- continue;
-
- // find aidu in board
- n = -1;
- // see read.c, search .bottom first.
- if (n < 0)
- {
- outs("搜尋置底文章...");
- setbfile(dirfile, bname, FN_DIR ".bottom");
- n = search_aidu(dirfile, aidu);
- }
- if (n < 0) {
- // search board
- outs("未找到。\n搜尋看板文章..");
- setbfile(dirfile, bname, FN_DIR);
- n = search_aidu(dirfile, aidu);
- }
- if (n < 0)
- {
- // search digest
- outs("未找到。\n搜尋文摘..");
- setbfile(dirfile, currboard, fn_mandex);
- n = search_aidu(dirfile, aidu);
- }
- if (n < 0)
- {
- // search failed...
- outs("未找到\n" ANSI_COLOR(1;31) "找不到文章!");
- vmsg("請確認後重新輸入。");
- continue;
- }
-
- // found something
- fd = open(dirfile, O_RDONLY);
- if (fd < 0)
- {
- outs(ANSI_COLOR(1;31) "系統錯誤。 請稍候再重試。\n");
- vmsg("若持續發生請至" GLOBAL_BUGREPORT "報告。");
- continue;
- }
-
- lseek(fd, n*sizeof(fileheader_t), SEEK_SET);
- memset(&fh, 0, sizeof(fh));
- read(fd, &fh, sizeof(fh));
- outs("\n開始核對資料...\n");
- n = 1;
- if (strcmp(fh.owner, cuser.userid) != 0)
- n = 0;
- prints("作者: %s (%s)\n", fh.owner, n ? "正確" :
- ANSI_COLOR(1;31) "錯誤" ANSI_RESET);
- if (!(fh.filemode & FILE_MARKED))
- n = 0;
- prints("M文: %s\n", (fh.filemode & FILE_MARKED) ? "正確" :
- ANSI_COLOR(1;31) "錯誤" ANSI_RESET);
- prints("推薦: %d\n", fh.recommend);
- close(fd);
- if (!n)
- {
- vmsg("輸入的文章並非優文,請重新輸入。");
- continue;
- }
- n = fh.recommend / 10;
- prints("計算優文數值: %+d\n", n);
-
- if (n > 0)
- {
- // log new data
- newgp += n;
- gpaids[cgps] = aidu;
- gpbids[cgps] = bid;
- cgps ++;
- }
-
- clrtobot();
-
-
- vmsg("優文已確認。若要輸入其它看板文章請在AID欄空白按 ENTER");
- }
- vmsgf("%s 看板輸入完成。", bname);
- }
- if (newgp > MAXGP)
- newgp = MAXGP;
- if (newgp <= cuser.goodpost)
- {
- vmsg("確認優文數目未高於已有優文數,不調整。");
- } else {
- log_filef("log/fixgoodpost.log", LOG_CREAT,
- "%s %s 自動修正優文數: 由 %d 變為 %d\n", Cdate(&now), cuser.userid,
- cuser.goodpost, newgp);
- cuser.goodpost = newgp;
- // update passwd file here?
- passwd_force_update(ALERT_PWD_GOODPOST);
- passwd_update(usernum, &cuser);
- vmsgf("更新優文數目為%d。", newgp);
- }
-
- return 0;
-}
-
-#endif