回精華區
作者LHD.bbs@bs2.twbbs.org (好冷哦) 看板: plan
標題Re: expire的設定
時間次世代BS2 (2005/01/09 Sun 00:47:01) Updated: 2005/01/09
※ 引述《pigco.bbs@cpu.tfcis.org (哈)》之銘言:
> 我要怎麼修改才能讓個人板的文章上限跟一般板不一樣呢?
> 我希望一般板的上限是5000,可是個人板的上限是3000。
> 我知道5000那邊去改default就好。
> 那判斷P_開頭的板,文章上限是3000要怎麼辦?
> 我一直都覺得expire.conf的設定不是很實用,
> 不知道有沒有可能改成比較方便的設定方式...
> 像是我想分類成公開板、轉信板、個人板三種類別各一組上限數字,
> 就只能設一種為default,其他的要一個一個增加...

: expire.c

  #define DEF_DAYS        365           /* 預設清除超過 365 天的文章 */
  #define DEF_MAXP        5000          /* 預設清除超過 5000 篇的文章 */
+ #define DEF_MAXP_P      3000          /* 個人板預設清除超過 3000 篇的文章 */
  #define DEF_MINP        500           /* 預設低於 500 篇的看板不砍文章 */

: expire.c:main() 如果個人板板名都是以 P_ 開頭,那麼這樣改

          key->days = number;
-         key->maxp = db.maxp;
+         key->maxp = (strncmp(bname, "P_", 2) || (argc == 5)) ? db.maxp :
+           DEF_MAXP_P;
          key->minp = db.minp;
...

    if (count)
    {
      key = (Life *) bsearch(bname, table, count, sizeof(Life), life_cmp);
      if (!key)
+     {
        key = &db;
+       /* LHD: 個人板預設上限 */
+       key->maxp = strncmp(bname, "P_", 2) ? DEF_MAXP : DEF_MAXP_P;
+     }
    }
    else
    {
      key = &db;
+     /* LHD: 個人板預設上限 */
+     key->maxp = strncmp(bname, "P_", 2) ? DEF_MAXP : DEF_MAXP_P;
    }

: expire.c:main() 如果個人板分類都是「個人」,那麼這樣改
: 這樣改會有個小問題,就是如果在 expire.conf 設定了一筆個人板,但沒指定 max
: 此時該個人板的 max 會依據 DEF_MAXP 而不是 DEF_MAXP_P

    if (count)
    {
      key = (Life *) bsearch(bname, table, count, sizeof(Life), life_cmp);
      if (!key)
+     {
        key = &db;
+       key->maxp = strcmp(brdp->class, "個人") ? DEF_MAXP : DEF_MAXP_P;
+     }
    }
    else
    {
      key = &db;
+     key->maxp = strcmp(brdp->class, "個人") ? DEF_MAXP : DEF_MAXP_P;
    }

--
▄▄▄▄▄▄▄        ▄▄▄▄  ▄▄▄▄▄▄    <telnet://bs2.twbbs.org>
  █▄▄▄▄█        █        ▄▄▄▄▄█ Player: LHD                      
▄█▄▄▄▄█  ▄▄▄█        █▄▄▄▄▄ From: bsd3.cis.nctu.edu.tw       
☆ 次世代BS2 ☆ 可申請個人板 100MB超大相簿 http://pic.twbbs.org 資科人200MB
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻