回精華區
作者chwaian.bbs@processor.tfcis.org (無言) 看板: Maple_itoc
標題[功能]新聞標題放到動態看板
時間動力核心 (04/26/04 16:54:39 Mon) Updated: 2004/04/26
  要先做精華區這篇
  [功能] enews-open.c 奇摩新聞轉至看板


idea從WD的cna而來

不過後來我發現這個功能 要在itoc的版本上實現

還蠻容易的 因為itoc的版本本來就有抓新聞的功能

只要從舊有程式 拿出來用即可

: crontab -e 加入這一行

20 * * * * bin/cna > /dev/null 2>&1

: src/util/Makefile

EXE =   ..... cna

: src/util/cna.c 新增這程式

/*-------------------------------------------------------*/
/* cna.c    ( NTHU CS MapleBBS Ver 3.10 )                */
/*-------------------------------------------------------*/
/* target : 新聞標題放到動態看板                         */
/* create : 02/01/27                                     */
/* update :   /  /                                       */
/* author : chwaian.bbs@processor.tfcis.org              */
/*-------------------------------------------------------*/


#include "bbs.h"


#define MAX_ENEWS   16

static char title[MAX_ENEWS][TTLEN + 1];    /* 本分類新聞的所有標題 */


static void
enews_fpath(fpath, kind, fname)
  char *fpath;
  char kind;
  char *fname;
{
  sprintf(fpath, "run/kimo/%c/%s", kind, fname);
}


int
main()
{
  char kind;
  char fpath[64];
  char class[12][5] =
  {
    "政治", "社會", "國際", "兩岸", "財經", "影視",
    "體育", "生活", "休閒", "健康", "科技", "新奇"
  };
  // 先在 note 精華區的動態看板新增十二篇文章,並按 S 得知檔案名稱,抄來這裡 
  char filename[12][11] =
  {
    "5/A108NLL5", "L/A108NLLL", "A/A108NLMA", "M/A108NLMM",
    "3/A108NLN3", "G/A108NLNG", "S/A108NLNS", "6/A108NLO6",
    "H/A108NLOH", "S/A108NLOS", "7/A108NLP7", "J/A108NLPJ"
  };

  FILE *fp, *fp2;
  ENEWS enews;
  struct tm *ptime;
  time_t now;
  int color, i, j;

  chdir(BBSHOME);

  for (kind = 'A'; kind <= 'L'; kind++)
  {
    color = 1;
    j = 0;

    enews_fpath(fpath, kind, ".ENEWS");

    if (!(fp = fopen(fpath, "r")))
      return;

    while (fread(&enews, sizeof(ENEWS), 1, fp) == 1 && j < MAX_ENEWS)
    {
      strcpy(title[j], enews.title);
      j++;
    }

    sprintf(fpath, "gem/brd/%s/%s", BN_CAMERA, filename[kind - 'A']);

    if ((fp2 = fopen(fpath, "w+")) != NULL)
    {
      time(&now);

      i = now % 8 ;

      ptime = localtime(&now);
      fprintf(fp2, "\033[1;37m◇\033[36m──\033[33;41m奇摩新聞快報"
        "\033[36;40m──今日\033[37m%s\033[36m類新聞─────\033[31m"
        "最後更新時間:\033[37m%02d/%02d %02d:%02d\033[36m─\033[37m◇\033[m\n",
        class[kind - 'A'], ptime->tm_mon + 1,ptime->tm_mday,
        ptime->tm_hour, ptime->tm_min);

      for(j = 0 ; j < 9 ; j++)
      {
        fprintf(fp2, "\033[1;3%dm  %d  %s\033[m\n", color, j + 1, title[i]);
        color = ((color+1)%7) + 1 ;
        i++ ;
      }

      fprintf(fp2,"\033[1;37m◇\033[36m─────────────────"
        "\033[33;42m欲知詳細新聞內容,請見 \033[36m%s \033[33m板\033[36;40m─"
        "\033[37m◇\033[m\n",
        "Kimo_News");
      fclose(fp2);
    }

    fclose(fp);
  }

  return 0;
}



就會在動態看板上show出新聞標題


──奇摩新聞快報──今日體育類新聞─────最後更新時間:04/26 16:45
  1  BALCO承認提供禁藥給邦斯
  2  英超-阿森納射手亨利連續第二年當選PFA年度最佳球員
  3  意甲-一球迷在國米賽後從聖西羅球場三層看台跌落身亡
  4  NBA-帕克發威率馬刺4-0淘汰灰熊,率先躋身西部聯盟四強
  5  NBA》馬龍快遞30分 湖人聽牌
  6  NBA》籃網、溜馬、馬剌 直落四晉二輪
  7  NBA》年度第一隊 鄧肯連七上榜
  8  旅美球星》七局10K無失分 王建民首勝
  9  NBA-馬丁、基德勢不可當,籃網4-0橫掃尼克晉級東部準決賽
─────────────────欲知詳細新聞內容,請見 Kimo_News 

--
  Origin:  Maple-itoc˙動力核心  processor.tfcis.org 
  Author: chwaian 61-216-218-91.dynamic.hinet.net 發表
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻