回精華區
作者itoc.bbs@cpu.tfcis.org (核心動力) 看板: plan
標題新文章通知
時間動力核心 (2006/05/20 Sat 06:58:29) Updated: 2006/05/23
※ 引述《guessi.bbs@bbs.wretch.cc》之銘言:
> 站上使用者提出一個要求 [新文章通知]
> ------------------------------
> 若今日A設定抓取B所張貼的文章
> 則B貼文時將文章copy至A的信箱
> ------------------------------

  A如果要看B所張貼的文章
  那就要B將A設進他的新文章通知名單

  至於B要怎麼知道A想看他的文章
  就叫A直接寫信去給B就得了

: ────────────────────────────────────

  設定名單的部分

  直接拿特別名單6當可抓文名單

: pal.c:pal_list()

-   switch (ch = vget(1, 0, "... (1~5)特別名單 (Q)取消 ...))
+   switch (ch = vget(1, 0, "... (1~6)特別名單 (Q)取消 ...))

  ...
  ...

    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
+   case '6':

: pal.c:pal_cite()

-   "(1-5)特別名單"
+   "(1-6)特別名單"

  ...
  ...

- else if (fd >= '1' && fd <= '5')
+ else if (fd >= '1' && fd <= '6')

: pal.c:t_list()

- for (n = 1; n <= 5; n++)
+ for (n = 1; n <= 6; n++)
  {
    move(n + MENU_XPOS - 1, MENU_YPOS - 1);
    prints("(\033[1;36m%d\033[m) 群組名單.%d", n, n);
+   if (n == 6)
+     outs(" 新文章通知名單");
  }

  ...
  ...

- if (n <= 0 || n > 5)
+ if (n <= 0 || n > 6)

: ────────────────────────────────────

  我發表文章時,通知新文章通知允許名單上面的人

: post.c:do_post()

  rec_bot(folder, &hdr, sizeof(HDR));
  btime_update(currbno);
+ list6_notice(&hdr);

: post.c:list6_notice() 新增此函式在 do_post() 上面

static void
list6_notice(hdr)
  HDR *hdr;
{
  int fd;
  char fpath[64], flist[64];
  FILE *fp;
  PAL pal;
  BRD *brd;

  /* 匿名文、隱藏板 不通知 */
  if (curredit & EDIT_ANONYMOUS)
    return;
  brd = bshm->bcache + currbno;
  if ((brd->readlevel == PERM_BOARD) || (brd->readlevel == PERM_SYSOP))
    return;

  sprintf(fpath, "tmp/list6_notice.%s", cuser.userid);
  if (fp = fopen(fpath, "w"))
  {
    fprintf(fp, "%s %s (%s)\n", str_author1, cuser.userid, cuser.username);
    fprintf(fp, "標題: 新文章通知\n時間: %s\n\n", Now());

    /* 文章內容 */
    fprintf(fp, "您好,我在 [%s] 板發表了一篇新文章\n", currboard);
    fprintf(fp, "文章標題是 %s\n", hdr->title);
    fprintf(fp, "要去看喔!\n");
    fclose(fp);

    /* 看新文章通知名單有哪些人,一一寄信通知 */
    usr_fpath(flist, cuser.userid, FN_LIST".6");
    if ((fd = open(flist, O_RDONLY)) >= 0)
    {
      while (read(fd, &pal, sizeof(PAL)) == sizeof(PAL))
      {
        if (!(pal.ftype & PAL_BAD))
          mail_him(fpath, pal.userid, "新文章通知", 0);
      }
      close(fd);
    }

    unlink(fpath);
  }
}

--
=[:摃�◣�:Origin ]|[  O�cpu.tfcis.org  ]|[�搟說:]=
=[:摃�╱�:Author ]|[ itoc.Dorm11.NCTU.edu.tw  ]|[�:]=
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻