回文章列表
作者guessi.bbs@cpu.tfcis.org (沒) 看板: itoc
標題[修正] 轉錄文章: 原文章加註記錄
時間動力核心 (2007/03/17 Sat 16:23:39)
修正原因: 原本的轉錄方式 轉錄者IP位置沒有被記錄且無法得知原文章是否被轉錄

修 改 後: 原文章 --> 以推文方式註記 "此篇已被轉錄至[xxxx]看板"

          轉錄文 --> 除了原先文章開頭註記 "此篇文章轉錄自[xxxx]看板"
                     另外附加站簽 用以記錄轉文者IP位置
                     同時亦可區隔原文章推文/轉錄文推文

ex: 以前文章經轉錄的狀況   xxxxx 推: 推文內容推文內容  <<-- 原文章推文 ┐
    但經轉錄後的新推文     yyyyy 推: 轉錄文章推文內容  <<-- 轉錄後推文 ┤
                                                                       │
                 無法分辨兩推文為轉錄前就已經有了還是轉錄後才新增的  ←┘

說明文字顯得有些複雜 直接看code會比較容易懂 :p


:src/maple/post.c:post_cross()

! FILE *fpr, *fpw, *fpo;


    if (method)         /* 一般轉錄 */
    {

      ...
      ...

+     ve_banner(fpw, 0); /* 留下站簽 記錄轉錄者IP位置 070317 guessi */

      fclose(fpw);

      ...
      ...

    }
    else
    {

      ...
      ...

      strcpy(xpost.date, hdr->date);    /* 原文轉載保留原日期 */
    }

+   if (fpo = fopen(fpath, "a"))
+   {
+     char msg[64];
+     usint checklevel;
+
+     time_t now;
+     struct tm *ptime;
+
+     time(&now);
+     ptime = localtime(&now);
+
+     checklevel = (bshm->bcache + xbno)->readlevel;
+
+     sprintf(msg, "本文已轉錄至 [%s] 看板",
+            (checklevel == PERM_SYSOP || checklevel == PERM_BOARD) ?
+            "秘密" : xboard); /* 檢查目標看板閱讀權限 */
+
+     fprintf(fpo, "\033[1;30m轉 %s:%-*s %02d/%02d %02d:%02d\033[m\n",
+     cuser.userid, 62 - strlen(cuser.userid), msg,
+     ptime->tm_mon + 1, ptime->tm_mday, ptime->tm_hour, ptime->tm_min);
+     /* 格式自訂 盡量與推文類似 */
+
+     fclose(fpo);
+
+   } /* 轉錄原文註記錄 070317 guessi */

    strcpy(xpost.title, ve_title);

    ...
    ...





--
=[:摃�◣�:Origin ]|[  Ocpu.tfcis.org  ]|[�搟說:]=
=[:摃�╱�:Author ]|[59-115-101-19.dynamic.hine]|[�:]=
= ▊▌▎▎Modify ▎▌▋▊: Sat, 17 Mar 2007 16:28:34 CST ::]=
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻