diff options
-rw-r--r-- | pttbbs/common/bbs/cache.c | 16 | ||||
-rw-r--r-- | pttbbs/util/account.c | 2 |
2 files changed, 13 insertions, 5 deletions
diff --git a/pttbbs/common/bbs/cache.c b/pttbbs/common/bbs/cache.c index cd2b4a4a..7160cdbe 100644 --- a/pttbbs/common/bbs/cache.c +++ b/pttbbs/common/bbs/cache.c @@ -723,20 +723,25 @@ reload_pttcache(void) id = aggid = rawid = 0; // effective count, aggressive count, total (raw) count if ((fp = fopen(buf, "r"))) { + // .DIR loop while (fread(&item, sizeof(item), 1, fp)) { int chkagg = 0; // should we check aggressive? + int is_ordersong_dir = 0; if (item.title[3] != '<' || item.title[8] != '>') continue; +#define ORDERSONG_FOLDERNAME "<點歌>" + if (strncmp(item.title+3, ORDERSONG_FOLDERNAME, strlen(ORDERSONG_FOLDERNAME)) == 0) + is_ordersong_dir = 1; + #ifdef BN_NOTE_AGGCHKDIR // TODO aggressive: only count '<點歌>' section - if (strcmp(item.title+3, BN_NOTE_AGGCHKDIR) == 0) + if (strncmp(item.title+3, BN_NOTE_AGGCHKDIR, strlen(BN_NOTE_AGGCHKDIR)) == 0) chkagg = 1; #endif - snprintf(buf, sizeof(buf), "%s/%s/" FN_DIR, pbuf, item.filename); @@ -786,14 +791,15 @@ reload_pttcache(void) } // end of file loop fclose(fp1); + if (is_ordersong_dir) + SHM->last_usong = id - 1; + if (id >= MAX_ADBANNER) break; + } // end of .DIR loop fclose(fp); - if (strcmp(item.title+3, "點歌") == 0) - SHM->last_usong = id - 1; - // decide next aggressive state if (rawid && aggid*3 >= rawid) // if aggressive exceed 1/3 set_aggressive_state(1); diff --git a/pttbbs/util/account.c b/pttbbs/util/account.c index 19913589..587ae284 100644 --- a/pttbbs/util/account.c +++ b/pttbbs/util/account.c @@ -398,6 +398,8 @@ main(int argc, char **argv) SHM->Puptime = 0; resolve_fcache(); reset_garbage(); + printf("動態看板資訊: last_usong=%d, last_film=%d\n", + SHM->last_usong, SHM->last_film); printf("計算進站畫面數: "); for (i = 0; i < 5; ++i) { |