回精華區
作者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           
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻