作者qazq.bbs@bbs.cs.nchu.edu.tw (Maple-itoc) 看板: plan
標題[功能] 全站喜好設定統計。
時間中興資科 (2004/01/08 Thu 23:16:29) Updated: 2004/01/08
由於本站有很多新增的程式都放在喜好設定給使用者設定。
所以想要觀察一下哪個功能使用率如何,所以寫了這個小程式。
計算結果會輸出到 ~/gem/@-habit 可以從BBS上面直接觀看。
下面附上程式碼,以及輸出的畫面。
當然,畫面可以自己修改&上色。
==============================================================================
: src/util/Makefile
EXE = ... showHabit
: src/util/showHabit.c 新增下面整支程式
/*-------------------------------------------------------*/
/* util/showHabit.c ( NTHU CS MapleBBS Ver 3.00 ) */
/*-------------------------------------------------------*/
/* target : 觀察全站喜好設定使用情況 */
/* create : 04/01/08 */
/* update : / / */
/* author : qazq.bbs@bbs.cs.nchu.edu.tw */
/*-------------------------------------------------------*/
#define _ADMIN_C_
#include "bbs.h"
#define OUTFILE_HABIT BBSHOME"/gem/@/@-habit"
static int habit[32] = {0};
static void
count_habit(flag)
unsigned flag;
{
int i;
unsigned mask = 1 << 31;
for (i = 31; i >= 0; i--)
{
if (flag & mask)
habit[i]++;
flag <<= 1;
}
}
int
main()
{
int i, totaluser = 0;
char c, buf[30];
FILE *fp;
for (c = 'a'; c <= 'z'; c++)
{
char buf[64];
struct dirent *de;
DIR *dirp;
sprintf(buf, BBSHOME "/usr/%c", c);
chdir(buf);
if (!(dirp = opendir(".")))
continue;
while (de = readdir(dirp))
{
ACCT acct;
int fd;
char *fname;
fname = de->d_name;
if (*fname <= ' ' || *fname == '.')
continue;
sprintf(buf, "%s/.ACCT", fname);
if ((fd = open(buf, O_RDONLY)) < 0)
continue;
read(fd, &acct, sizeof(ACCT));
close(fd);
count_habit(acct.ufo);
totaluser++;
}
closedir(dirp);
}
if (!(fp = fopen(OUTFILE_HABIT, "w")))
return;
fprintf(fp, "全站人數:%d\n\n", totaluser);
for (i = 0; i <= 31; i++)
{
sprintf(buf, "%s", ufo_tbl[i]);
if (!strcmp(buf, "保留") || !ufo_tbl[i])
continue;
fprintf(fp, "Habit[%2d] %s 開啟人數:%-3d 關閉人數:%d\n",
i, ufo_tbl[i], habit[i], totaluser - habit[i]);
}
return 0;
}
==============================================================================
全站人數:425
Habit[ 1] 動態看板 (開啟/關閉) 開啟人數:412 關閉人數:13
Habit[ 2] 看板列表顯示 (文章/編號) 開啟人數:51 關閉人數:374
Habit[ 3] 看板列表排序 (字母/分類) 開啟人數:149 關閉人數:276
Habit[ 4] 進板畫面 (顯示/跳過) 開啟人數:411 關閉人數:14
Habit[ 5] 文章編輯器 (簡化/完整) 開啟人數:9 關閉人數:416
Habit[ 6] 進/離站畫面 (簡化/完整) 開啟人數:100 關閉人數:325
Habit[ 7] 呼叫器 (好友/所有) 開啟人數:16 關閉人數:409
Habit[ 8] 廣播天線 (拒收/接收) 開啟人數:9 關閉人數:416
Habit[ 9] 遠離塵囂 (安靜/接收) 開啟人數:8 關閉人數:417
Habit[10] 使用者名單顯示 (好友/全部) 開啟人數:17 關閉人數:408
Habit[11] 接受上站通知 (通知/取消) 開啟人數:35 關閉人數:390
Habit[12] 上站送通知/協尋 (不送/通知) 開啟人數:24 關閉人數:401
Habit[13] 水球回顧介面 (完整/上次) 開啟人數:292 關閉人數:133
Habit[14] 不儲存水球紀錄 (刪除/選擇) 開啟人數:123 關閉人數:302
Habit[15] 不儲存聊天紀錄 (刪除/選擇) 開啟人數:17 關閉人數:408
Habit[16] 不使用簽名檔 (不用/選擇) 開啟人數:359 關閉人數:66
Habit[17] 顯示簽名檔 (顯示/不看) 開啟人數:45 關閉人數:380
Habit[18] 上站瀏覽新聞 (瀏覽/不要) 開啟人數:1 關閉人數:424
Habit[19] 整行光棒 (光棒/普通) 開啟人數:404 關閉人數:21
Habit[20] 看板說明 (顯示/隱藏) 開啟人數:417 關閉人數:8
Habit[21] 隱身上站 (隱身/現身) 開啟人數:1 關閉人數:424
Habit[22] 自動跳到未讀看板(自動/不跳) 開啟人數:382 關閉人數:43
Habit[24] 壞人隱藏 (隱藏/顯示) 開啟人數:16 關閉人數:409
Habit[27] 動態隱藏 (隱藏/顯示) 開啟人數:6 關閉人數:419
Habit[28] 隱身術 (隱身/現身) 開啟人數:9 關閉人數:416
Habit[30] 站長上站來源 (限制/任意) 開啟人數:0 關閉人數:425
==============================================================================
--
┌┼ Author: 中興資科˙中興資科 e資獨秀 csNCHU.twbbs.org
└┘ Origin: qazq 從 61-216-137-35.HINET-IP.hinet.net 發表