作者cne.bbs@processor.tfcis.org (呆呆的) 看板: plan
標題一個新功能
時間XEON (Wed, 02 Apr 2003 16:28:29 +0800 (CST)) Updated: 2003/04/08
水球檢舉板,使用者在水球記錄中按 x
可以匿名把水球轉去 Evidence 板
(用 bmw 這檔案來做的,所以使用者其實可以修改)
: bmw.c: bmw_cb[] =
+ 'x', bmw_post,
: etc/help/bmw/bmw.hlp
(x) 檢舉
: global.h
#define BN_EVIDENCE "Evidence" /* 水球檢舉板 */
: bmw.c:bmw_post() 新增這函式於 bmw_help() 之前
static int
bmw_post(xo)
XO *xo;
{
int fd;
BMW *bmw;
char userid[IDLEN + 1], fpath[80];
usr_fpath(fpath, cuser.userid, FN_BMW);
if ((fd = open(fpath, O_RDONLY)) < 0)
return XO_NONE;
ll_new();
mgets(-1);
while(bmw = mread(fd, sizeof(BMW)))
{
if (!ll_has(bmw->userid))
ll_add(bmw->userid);
}
if (!vget(1, 0, "請輸入代號(按空白鍵列出使用者):", userid,
IDLEN + 1, GET_LIST))
{
vmsg("該使用者沒有丟水球給您唷!");
close(fd);
return XO_HEAD;
}
sprintf(fpath, "[檢舉騷擾] 是否轉錄至 %s 板(Y/N)?[N] ", BN_EVIDENCE);
if (vans(fpath) == 'y')
{
FILE *fp;
char fname[40];
HDR hdr;
int ans;
ans = vans("您想要暱名嗎(Y/N)?[N] ");
sprintf(fname, "tmp/%s.bmw", cuser.userid);
fp = fopen(fname, "w");
fprintf(fp, "提出檢舉者: %s (%s)\n\n",
ans == 'y' ? "猜猜我是誰" : cuser.userid,
ans == 'y' ? "^o^" : cuser.username);
fprintf(fp, "%s\n", msg_seperator);
lseek(fd, 0, SEEK_SET);
mgets(-1);
while(bmw = mread(fd, sizeof(BMW)))
{
if (!str_cmp(bmw->userid, userid))
{
fprintf(fp, bmw->sender == cuser.userno ?
BMW_FORMAT2 " %s\n" : BMW_FORMAT " %s\n",
bmw->userid, bmw->msg, Btime(&bmw->btime));
}
}
fclose(fp);
brd_fpath(fpath, BN_EVIDENCE, fn_dir);
hdr_stamp(fpath, HDR_LINK | 'A', &hdr, fname);
strcpy(hdr.owner, "[系統檢舉]");
strcpy(hdr.nick, cuser.userid); /* 匿名可在 hdr.nick 中查到 id */
sprintf(hdr.title, "[檢舉] 水球騷擾 (%s)", userid);
rec_add(fpath, &hdr, sizeof(HDR));
unlink(fname);
}
close(fd);
return XO_HEAD;
}
--
Author: weichung.bbs@bbs.ntit.edu.tw
--
╭─ Origin ─╗ ���O���� processor.tfcis.org ~ κλμ ─┤
├ Author ╡ 61-217-97-3.HINET-IP.hinet.net