回精華區
作者itoc.bbs@cpu.tfcis.org (核心動力) 看板: plan
標題Re: [問題] 用支票發給全站獎金
時間動力核心 (2005/04/18 Mon 08:40:31) Updated: 2005/04/22
※ 引述《jcw (夜空下的傑西)》之銘言:
> 爬文有找到以 transacct 直接加錢的方法
> 可是想說既然已經有支票這麼方便的東西
> 就像全站通告一樣的簡便方法
> 能用支票發錢給全站使用者嗎?

: util/Makefile

EXE =   ... give_paycheck

: util/give_paycheck.c 新增此程式

/*-------------------------------------------------------*/
/* util/give_paycheck.c ( NTHU CS MapleBBS Ver 3.10 )    */
/*-------------------------------------------------------*/
/* target : 發給全站使用者支票                           */
/* create : 05/04/18                                     */
/* update :   /  /                                       */
/* author : itoc.bbs@bbs.tnfsh.tn.edu.tw                 */
/*-------------------------------------------------------*/


#if 0

  給 itoc 一張 100 銀 200 金 的支票
  % ~/bin/give_paycheck 100 200 itoc

  給 sysop 一張 100 銀 0 金 的支票
  % ~/bin/give_paycheck 100 0 sysop

  給全站使用者各一張 50 銀 30 金 的支票
  % ~/bin/give_paycheck 50 30

  給全站使用者支票要執行一段時間,請耐心等候

#endif


#include "bbs.h"


int
main(argc, argv)
  int argc;
  char *argv[];
{
  int money, gold;
  char c, *str, buf[64];
  struct dirent *de;
  DIR *dirp;
  PAYCHECK paycheck;

  if (argc == 3 || argc == 4)
  {
    money = atoi(argv[1]);
    gold = atoi(argv[2]);
    if (money < 0 || gold < 0)
      printf("money and gold should not be negative.\n");
  }
  else
  {
    printf("Usage: %s money gold [userid]\n", argv[0]);
    return -1;
  }

  memset(&paycheck, 0, sizeof(PAYCHECK));
  time(&paycheck.tissue);
  paycheck.money = money;
  paycheck.gold = gold;
  strcpy(paycheck.reason, "[發錢] 站長");

  if (argc == 4)
  {
    chdir(BBSHOME);
    usr_fpath(buf, argv[3], FN_PAYCHECK);
    rec_add(buf, &paycheck, sizeof(PAYCHECK));
    return 0;
  }

  for (c = 'a'; c <= 'z'; c++)
  {
    sprintf(buf, BBSHOME "/usr/%c", c);
    chdir(buf);

    if (!(dirp = opendir(".")))
      continue;

    while (de = readdir(dirp))
    {
      str = de->d_name;
      if (*str <= ' ' || *str == '.')
        continue;

      sprintf(buf, "%s/" FN_PAYCHECK, str);
      rec_add(buf, &paycheck, sizeof(PAYCHECK));
    }

    closedir(dirp);
  }

  return 0;
}


--
  Origin:  Maple-itoc˙動力核心  cpu.tfcis.org 
  Modify: 2005/04/18 Mon 08:41:30
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻