From 2230c0a8c5a4eb2397673d37e709454195c5e284 Mon Sep 17 00:00:00 2001 From: piaip Date: Fri, 28 Aug 2009 13:57:40 +0000 Subject: * moving into the new pwcu (password - current user helper) API git-svn-id: http://opensvn.csie.org/pttbbs/branches/pttbbs.pwcu@4783 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) (limited to 'mbbsd/bbs.c') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 528e61b4..d1f268e3 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -170,9 +170,7 @@ anticrosspost(void) cuser.userid, Cdatelite(&now)); post_violatelaw(cuser.userid, BBSMNAME "系統警察", "Cross-post", "罰單處份"); - cuser.userlevel |= PERM_VIOLATELAW; - cuser.timeviolatelaw = now; - cuser.vl_count++; + pwcuViolateLaw(); mail_id(cuser.userid, "Cross-Post罰單", "etc/crosspost.txt", BBSMNAME "警察部隊"); if ((now - cuser.firstlogin) / DAY_SECONDS < 14) @@ -243,11 +241,7 @@ save_violatelaw(void) } demoney(-1000 * cuser.vl_count); - cuser.userlevel &= (~PERM_VIOLATELAW); - // force overriding alerts - if(currutmp) - currutmp->alerts &= ~ALERT_PWD_PERM; - passwd_sync_update(usernum, &cuser); + pwcuSaveViolateLaw(); sendalert(cuser.userid, ALERT_PWD_PERM); log_filef("log/violation", LOG_CREAT, "%s %s pay-violation: $%d complete.\n", @@ -908,7 +902,8 @@ do_general(int garbage) int i, j; int defanony, ifuseanony; int money = 0; - char genbuf[PATHLEN], *owner; + char genbuf[PATHLEN]; + const char *owner; char ctype[8][5] = {"問題", "建議", "討論", "心得", "閒聊", "請益", "公告", "情報"}; boardheader_t *bp; @@ -1128,9 +1123,10 @@ do_general(int garbage) if (money > 0) { demoney(money); + pwcuIncNumPost(); addPost = 1; prints("這是您的第 %d 篇有效文章,稿酬 %d 元", - ++cuser.numposts, money); + cuser.numposts, money); } else { // no money, no record. outs("本篇不列入記錄,敬請包涵。"); @@ -3125,10 +3121,11 @@ del_post(int ent, fileheader_t * fhdr, char *direct) if (tusernum) { userec_t xuser; - passwd_sync_query(tusernum, &xuser); - if (xuser.numposts) + assert(tusernum != usernum); + passwd_query(tusernum, &xuser); + if (xuser.numposts > 0) xuser.numposts--; - passwd_sync_update(tusernum, &xuser); + passwd_update(tusernum, &xuser); sendalert_uid(tusernum, ALERT_PWD_POSTS); // TODO alert user? @@ -3143,11 +3140,9 @@ del_post(int ent, fileheader_t * fhdr, char *direct) else { // owner case - if (cuser.numposts){ - cuser.numposts--; - sendalert(cuser.userid, ALERT_PWD_POSTS); - } + pwcuDecNumPost(); demoney(-fhdr->multi.money); + sendalert(cuser.userid, ALERT_PWD_POSTS); vmsgf("您的文章減為 %d 篇,支付清潔費 %d 元", cuser.numposts, fhdr->multi.money); } -- cgit v1.2.3 From 6b2f2f3e275322f0cfeccf57d35350edae0de6a0 Mon Sep 17 00:00:00 2001 From: piaip Date: Sat, 29 Aug 2009 14:31:57 +0000 Subject: * (pwcu branch) remove the 'goodpost' ~ I love this commit. git-svn-id: http://opensvn.csie.org/pttbbs/branches/pttbbs.pwcu@4791 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 39 --------------------------------------- 1 file changed, 39 deletions(-) (limited to 'mbbsd/bbs.c') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index d1f268e3..f0356a46 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -2342,14 +2342,6 @@ recommend_cancel(int ent, fileheader_t * fhdr, const char *direct) getdata(b_lines - 1, 0, "確定要推薦歸零[y/N]? ", yn, 5, LCECHO); if (yn[0] != 'y') return FULLUPDATE; -#ifdef ASSESS - // to save resource - if (fhdr->recommend > 9) - { - inc_goodpost(fhdr->owner, -1 * (fhdr->recommend / 10)); - sendalert(fhdr->owner, ALERT_PWD_GOODPOST); - } -#endif fhdr->recommend = 0; substitute_ref_record(direct, fhdr, ent); @@ -2765,20 +2757,6 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) } do_add_recommend(direct, fhdr, ent, buf, type); - -#ifdef ASSESS - /* 每 10 次推文 加一次 goodpost */ - // TODO 轉來的怎麼辦? - // when recommend reaches MAX_RECOMMENDS... - if (type == RECTYPE_GOOD && (fhdr->filemode & FILE_MARKED) && - (fhdr->recommend != oldrecom) && - fhdr->recommend % 10 == 0) - { - inc_goodpost(fhdr->owner, 1); - sendalert(fhdr->owner, ALERT_PWD_GOODPOST); - } -#endif - lastrecommend = now; lastrecommend_bid = currbid; strlcpy(lastrecommend_fname, fhdr->filename, sizeof(lastrecommend_fname)); @@ -2801,23 +2779,6 @@ mark_post(int ent, fileheader_t * fhdr, const char *direct) return DONOTHING; fhdr->filemode ^= FILE_MARKED; - -#ifdef ASSESS - if (fhdr->filemode & FILE_MARKED) - { - if (!(currbrdattr & BRD_BAD) && fhdr->recommend >= 10) - { - inc_goodpost(fhdr->owner, fhdr->recommend / 10); - sendalert(fhdr->owner, ALERT_PWD_GOODPOST); - } - } - else if (fhdr->recommend > 9) - { - inc_goodpost(fhdr->owner, -1 * (fhdr->recommend / 10)); - sendalert(fhdr->owner, ALERT_PWD_GOODPOST); - } -#endif - substitute_ref_record(direct, fhdr, ent); check_locked(fhdr); return PART_REDRAW; -- cgit v1.2.3 From 8c66da7267b5b91eb47b3321892a505e7824d5e6 Mon Sep 17 00:00:00 2001 From: piaip Date: Sun, 30 Aug 2009 00:29:10 +0000 Subject: * (pwch branch) change chess results to use pwcu API git-svn-id: http://opensvn.csie.org/pttbbs/branches/pttbbs.pwcu@4793 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'mbbsd/bbs.c') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index f0356a46..aeffdc27 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -2428,9 +2428,6 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) int isGuest = (strcmp(cuser.userid, STR_GUEST) == EQUSTR); int logIP = 0; int ymsg = b_lines -1; -#ifdef ASSESS - char oldrecom = fhdr->recommend; -#endif // ASSESS if (!fhdr || !fhdr->filename[0]) return DONOTHING; -- cgit v1.2.3 From 7b2cc2e83030882b319bbf87932c7727c174adc7 Mon Sep 17 00:00:00 2001 From: piaip Date: Sun, 30 Aug 2009 07:33:13 +0000 Subject: * (pwcu branch) const cuser code complete git-svn-id: http://opensvn.csie.org/pttbbs/branches/pttbbs.pwcu@4795 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 8 -------- 1 file changed, 8 deletions(-) (limited to 'mbbsd/bbs.c') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index aeffdc27..d19c8d91 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -3878,11 +3878,3 @@ Select(void) return do_select(); } -#ifdef HAVEMOBILE -void -mobile_message(const char *mobile, char *message) -{ - // this is for validation. - bsmtp(fpath, title, rcpt, "non-exist"); -} -#endif -- cgit v1.2.3 From 37019e5c460e64a6dec35863d53603fbe9825ce1 Mon Sep 17 00:00:00 2001 From: piaip Date: Sun, 30 Aug 2009 08:25:07 +0000 Subject: * (pwcu branch) code refine, remove unused code, and finetune alerts git-svn-id: http://opensvn.csie.org/pttbbs/branches/pttbbs.pwcu@4796 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'mbbsd/bbs.c') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index d19c8d91..dc8390b5 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -242,12 +242,12 @@ save_violatelaw(void) demoney(-1000 * cuser.vl_count); pwcuSaveViolateLaw(); - sendalert(cuser.userid, ALERT_PWD_PERM); log_filef("log/violation", LOG_CREAT, "%s %s pay-violation: $%d complete.\n", Cdate(&now), cuser.userid, (int)cuser.vl_count*1000); - vmsg("罰單已付,請盡速重新登入。"); + vmsg("罰單已付,請重新登入。"); + exit(0); return 0; } @@ -340,6 +340,13 @@ CheckPostPerm(void) if (currmode & MODE_DIGEST) return 0; + // check if my own permission is changed. + if (ISNEWPERM(currutmp)) + { + currmode &= ~MODE_POSTCHECKED; + pwcuReload(); + } + if (currmode & MODE_POSTCHECKED) { /* checked? let's check if perm reloaded */ @@ -3021,7 +3028,7 @@ del_post(int ent, fileheader_t * fhdr, char *direct) xuser.timeviolatelaw = now; passwd_sync_update(tusernum, &xuser); } - sendalert(userid, ALERT_PWD_BADPOST); + sendalert(userid, ALERT_PWD_PERM); mail_id(userid, genbuf, newpath, cuser.userid); #ifdef BAD_POST_RECORD @@ -3084,11 +3091,8 @@ del_post(int ent, fileheader_t * fhdr, char *direct) if (xuser.numposts > 0) xuser.numposts--; passwd_update(tusernum, &xuser); - sendalert_uid(tusernum, ALERT_PWD_POSTS); - - // TODO alert user? deumoney(tusernum, -fhdr->multi.money); - + sendalert_uid(tusernum, ALERT_PWD_PERM); #ifdef USE_COOLDOWN if (bp->brdattr & BRD_COOLDOWN) add_cooldowntime(tusernum, 15); @@ -3100,7 +3104,7 @@ del_post(int ent, fileheader_t * fhdr, char *direct) // owner case pwcuDecNumPost(); demoney(-fhdr->multi.money); - sendalert(cuser.userid, ALERT_PWD_POSTS); + sendalert(cuser.userid, ALERT_PWD_PERM); vmsgf("您的文章減為 %d 篇,支付清潔費 %d 元", cuser.numposts, fhdr->multi.money); } -- cgit v1.2.3 From 19e36427e3fdfebc319fd7e0a92054ea9db85fd1 Mon Sep 17 00:00:00 2001 From: piaip Date: Sun, 30 Aug 2009 08:35:46 +0000 Subject: * code refine git-svn-id: http://opensvn.csie.org/pttbbs/branches/pttbbs.pwcu@4797 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 1 + 1 file changed, 1 insertion(+) (limited to 'mbbsd/bbs.c') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index dc8390b5..0d1a1a9a 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -247,6 +247,7 @@ save_violatelaw(void) Cdate(&now), cuser.userid, (int)cuser.vl_count*1000); vmsg("罰單已付,請重新登入。"); + u_exit("save_violate"); exit(0); return 0; } -- cgit v1.2.3 From 5f589c904a3be5b6eaa5abd57052b481d6a24c18 Mon Sep 17 00:00:00 2001 From: piaip Date: Sun, 30 Aug 2009 10:08:49 +0000 Subject: * fix numlogindays git-svn-id: http://opensvn.csie.org/pttbbs/branches/pttbbs.pwcu@4799 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mbbsd/bbs.c') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 0d1a1a9a..183bc16f 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -2714,7 +2714,7 @@ recommend(int ent, fileheader_t * fhdr, const char *direct) static int tolog = 0; if( tolog == 0 ) tolog = - (cuser.numlogins < 50 || (now - cuser.firstlogin) < DAY_SECONDS * 7) + (cuser.numlogindays < 50 || (now - cuser.firstlogin) < DAY_SECONDS * 7) ? 1 : 2; if( tolog == 1 ){ FILE *fp; -- cgit v1.2.3 From 3fbfbac63d50619f92d98140fa7f59f570a180c7 Mon Sep 17 00:00:00 2001 From: piaip Date: Mon, 31 Aug 2009 05:54:49 +0000 Subject: * merge pwcu branch with trunk git-svn-id: http://opensvn.csie.org/pttbbs/branches/pttbbs.pwcu@4806 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'mbbsd/bbs.c') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 183bc16f..2bcf9538 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -1235,7 +1235,12 @@ do_generalboardreply(/*const*/ fileheader_t * fhdr) if (!CheckPostRestriction(currbid)) { - getdata(b_lines - 1, 0, ANSI_COLOR(1;31) "▲ 無法回應至看板。 " ANSI_RESET + getdata(b_lines - 1, 0, +#ifdef USE_PFTERM + ANSI_COLOR(1;31) "▲ 無法回應至看板。 " ANSI_RESET +#else + "▲ 無法回應至看板。 " +#endif "改回應至 (M)作者信箱 (Q)取消?[Q] ", genbuf, sizeof(genbuf), LCECHO); switch (genbuf[0]) { @@ -3212,6 +3217,8 @@ view_postinfo(int ent, const fileheader_t * fhdr, const char *direct, int crs_ln outc(' '); outs(ANSI_CLRTOEND); move(area_l, 0); + // TODO XXX support wide terminal someday. + prints("┌─────────────────────────────────────┐\n"); aidu = fn2aidu((char *)fhdr->filename); -- cgit v1.2.3 From d4d7b4113cf03c906f9d408526b0dee082adde53 Mon Sep 17 00:00:00 2001 From: piaip Date: Mon, 7 Sep 2009 02:11:19 +0000 Subject: * allow query old login number (for self only) * merge latest git-svn-id: http://opensvn.csie.org/pttbbs/branches/pttbbs.pwcu@4816 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mbbsd/bbs.c') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 2bcf9538..11ad652e 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -1133,7 +1133,7 @@ do_general(int garbage) demoney(money); pwcuIncNumPost(); addPost = 1; - prints("這是您的第 %d 篇有效文章,稿酬 %d 元", + prints("這是您的第 %d 篇有效文章,獲得稿酬 %d 元", cuser.numposts, money); } else { // no money, no record. -- cgit v1.2.3 From 2e8dbc427eb9b70b674018ff8f96b0eca105f0a2 Mon Sep 17 00:00:00 2001 From: piaip Date: Thu, 10 Sep 2009 09:01:36 +0000 Subject: * code refine git-svn-id: http://opensvn.csie.org/pttbbs/branches/pttbbs.pwcu@4823 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/bbs.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'mbbsd/bbs.c') diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 11ad652e..efac93c4 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -3093,10 +3093,12 @@ del_post(int ent, fileheader_t * fhdr, char *direct) { userec_t xuser; assert(tusernum != usernum); - passwd_query(tusernum, &xuser); - if (xuser.numposts > 0) - xuser.numposts--; - passwd_update(tusernum, &xuser); + // TODO we're doing redundant i/o here... merge and refine someday + if (passwd_sync_query(tusernum, &xuser) == 0) { + if (xuser.numposts > 0) + xuser.numposts--; + passwd_sync_update(tusernum, &xuser); + } deumoney(tusernum, -fhdr->multi.money); sendalert_uid(tusernum, ALERT_PWD_PERM); #ifdef USE_COOLDOWN -- cgit v1.2.3