summaryrefslogtreecommitdiffstats
path: root/mbbsd
diff options
context:
space:
mode:
authorvictor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2003-10-14 21:33:33 +0800
committervictor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2003-10-14 21:33:33 +0800
commit994e44a546b9e0a7bfbbd3ee935a3882b780f2cc (patch)
tree680a6d8cdc213480bc7d6aae28d441bd8952d4e9 /mbbsd
parent50f20458362cbf06180c0cddd570db13d5c44c87 (diff)
downloadpttbbs-994e44a546b9e0a7bfbbd3ee935a3882b780f2cc.tar
pttbbs-994e44a546b9e0a7bfbbd3ee935a3882b780f2cc.tar.gz
pttbbs-994e44a546b9e0a7bfbbd3ee935a3882b780f2cc.tar.bz2
pttbbs-994e44a546b9e0a7bfbbd3ee935a3882b780f2cc.tar.lz
pttbbs-994e44a546b9e0a7bfbbd3ee935a3882b780f2cc.tar.xz
pttbbs-994e44a546b9e0a7bfbbd3ee935a3882b780f2cc.tar.zst
pttbbs-994e44a546b9e0a7bfbbd3ee935a3882b780f2cc.zip
1. add feature assessment of article and sale
2. add file pttbbs/util/cleanshm.c to help clean unused var in PASSWD git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1241 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd')
-rw-r--r--mbbsd/Makefile4
-rw-r--r--mbbsd/assess.c55
-rw-r--r--mbbsd/bbs.c50
3 files changed, 91 insertions, 18 deletions
diff --git a/mbbsd/Makefile b/mbbsd/Makefile
index e6a9adbd..b1bb69d6 100644
--- a/mbbsd/Makefile
+++ b/mbbsd/Makefile
@@ -8,8 +8,8 @@ LDFLAGS+= -L/usr/local/lib/mysql -lmysqlclient
.endif
PROG= mbbsd
-OBJS= admin.o announce.o args.o bbs.o board.o cache.o cal.o card.o\
- chat.o chc.o chicken.o dark.o\
+OBJS= admin.o announce.o args.o assess.o bbs.o board.o cache.o cal.o\
+ card.o chat.o chc.o chicken.o dark.o\
edit.o friend.o gamble.o gomo.o guess.o indict.o io.o\
kaede.o lovepaper.o mail.o mbbsd.o menu.o more.o name.o osdep.o\
othello.o page.o read.o record.o register.o screen.o stuff.o\
diff --git a/mbbsd/assess.c b/mbbsd/assess.c
new file mode 100644
index 00000000..cc5e84b1
--- /dev/null
+++ b/mbbsd/assess.c
@@ -0,0 +1,55 @@
+#include "bbs.h"
+
+inline static void inc(unsigned char *num)
+{
+ if (*num < SALE_MAXVALUE)
+ (*num)++;
+}
+
+void inc_goodpost(int uid)
+{
+ passwd_query(uid, &xuser);
+ inc(&xuser.goodpost);
+ passwd_update(uid, &xuser);
+}
+
+void inc_badpost(int uid)
+{
+ passwd_query(uid, &xuser);
+ inc(&xuser.badpost);
+ passwd_update(uid, &xuser);
+}
+
+void inc_goodsale(int uid)
+{
+ passwd_query(uid, &xuser);
+ inc(&xuser.goodsale);
+ passwd_update(uid, &xuser);
+}
+
+void inc_badsale(int uid)
+{
+ passwd_query(uid, &xuser);
+ inc(&xuser.badsale);
+ passwd_update(uid, &xuser);
+}
+
+void set_assess(int uid, unsigned char num, int type)
+{
+ passwd_query(uid, &xuser);
+ 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);
+}
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c
index d8289d7f..fa78a7d6 100644
--- a/mbbsd/bbs.c
+++ b/mbbsd/bbs.c
@@ -1404,19 +1404,33 @@ do_bid(int ent, fileheader_t * fhdr, boardheader_t *bp, char *direct, struct t
print_bidinfo(0, bidinfo);
if(!bidinfo.payby) money="Ptt$ "; else money=" NT$ ";
if(now>bidinfo.enddate || bidinfo.high==bidinfo.buyitnow)
- {
- prints("���v�Фw�g����,");
- if( bidinfo.userid[0])
- {
- /*if(!payby && bidinfo.usermax!=-1)
- {�HPtt���۰ʦ���
- }*/
- prints("���� %s �H %d �o��!", bidinfo.userid,
- bidinfo.high);
- }
- else prints("�L�H�o��!");
- pressanykey();
- return FULLUPDATE;
+ {
+ prints("���v�Фw�g����,");
+ if( bidinfo.userid[0]) {
+ /*if(!payby && bidinfo.usermax!=-1)
+ {�HPtt���۰ʦ���
+ }*/
+ prints("���� %s �H %d �o��!", bidinfo.userid,
+ bidinfo.high);
+ if (!(bidinfo.flag & SALE_COMMENTED) && strcmp(bidinfo.userid, currutmp->userid)){
+ char tmp = getans("�z���o������������p��? 1:�� 2:���� 3:���q[Q]");
+ if ('1' <= tmp && tmp <= '3'){
+ switch(tmp){
+ case 1:
+ inc_goodsale(currutmp->uid);
+ break;
+ case 2:
+ inc_badpost(currutmp->uid);
+ break;
+ }
+ bidinfo.flag |= SALE_COMMENTED;
+ substitute_record(fpath, &bidinfo, sizeof(bidinfo), 1);
+ }
+ }
+ }
+ else prints("�L�H�o��!");
+ pressanykey();
+ return FULLUPDATE;
}
if(bidinfo.userid[0])
{
@@ -1531,9 +1545,9 @@ recommend(int ent, fileheader_t * fhdr, char *direct)
return FULLUPDATE;
}
- if( fhdr->filemode & FILE_BID)
- return do_bid(ent, fhdr, bp, direct, ptime);
-
+ if( fhdr->filemode & FILE_BID){
+ return do_bid(ent, fhdr, bp, direct, ptime);
+ }
setdirpath(path, direct, fhdr->filename);
@@ -1565,6 +1579,9 @@ recommend(int ent, fileheader_t * fhdr, char *direct)
51 - strlen(cuser.userid) - strlen(path), " ", fromhost,
ptime->tm_mon + 1, ptime->tm_mday);
do_add_recommend(direct, fhdr, ent, buf);
+ /* �C 10 ������ �[�@�� goodpost */
+ if ((fhdr->filemode & FILE_MARKED) && fhdr->recommend % 10 == 0)
+ inc_goodpost(searchuser(fhdr->owner));
lastrecommend = now;
return FULLUPDATE;
}
@@ -1708,6 +1725,7 @@ del_post(int ent, fileheader_t * fhdr, char *direct)
fhdr->money = hdr.money;
delete_file(genbuf, sizeof(fileheader_t), num, cmpfilename);
}
+ inc_badpost(searchuser(fhdr->owner));
cancelpost(fhdr, not_owned);
setbtotal(currbid);