diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/common.h | 3 | ||||
-rw-r--r-- | include/proto.h | 63 | ||||
-rw-r--r-- | include/pttstruct.h | 29 |
3 files changed, 72 insertions, 23 deletions
diff --git a/include/common.h b/include/common.h index f9377875..d5400070 100644 --- a/include/common.h +++ b/include/common.h @@ -115,6 +115,9 @@ #define STR_POST1 "看板:" #define STR_POST2 "站內:" +#define STR_LOGINDAYS "登入次數" +#define STR_LOGINDAYS_QTY "次" + /* AIDS */ #define AID_DISPLAYNAME "文章代碼(AID)" /* end of AIDS */ diff --git a/include/proto.h b/include/proto.h index d49c8ae4..ea232c78 100644 --- a/include/proto.h +++ b/include/proto.h @@ -53,11 +53,7 @@ void BlogMain(int); #endif /* assess */ -int inc_goodpost(const char *, int num); int inc_badpost(const char *, int num); -int inc_goodsale(const char *, int num); -int inc_badsale(const char *, int num); -//void set_assess(int uid, unsigned char num, int type); /* bbs */ void delete_allpost(const char *userid); @@ -130,7 +126,7 @@ const char * postperm_msg(const char *bname); int give_tax(int money); const char* money_level(int money); int vice(int money, const char* item); -#define reload_money() cuser.money=moneyof(usernum) +#define reload_money() // cuser.money=moneyof(usernum) int lockutmpmode(int unmode, int state); int unlockutmpmode(void); int x_file(void); @@ -458,7 +454,6 @@ int setupnewuser(const userec_t *user); int regform_estimate_queuesize(); void new_register(void); void check_register(void); -void check_birthday(void); int check_regmail(char *email); // check and prompt for invalid reason; will str_lower() mail domain. void delregcodefile(void); @@ -612,7 +607,7 @@ int kill_user(int num, const char *userid); int u_editcalendar(void); void user_display(const userec_t *u, int real); int isvalidemail(char *email); -void uinfo_query(userec_t *u, int real, int unum); +void uinfo_query(const char *uid, int real, int unum); int showsignature(char *fname, int *j, SigInfo *psi); int u_cancelbadpost(); void kick_all(const char *user); @@ -692,15 +687,61 @@ void passwd_force_update(int flag); int passwd_sync_update (int num, userec_t * buf); int passwd_sync_query (int num, userec_t * buf); -// int passwd_add_my_numpost(int diff); // temporary hack before new account system ready. - // current user help utilities +int pwcuBitEnableLevel (unsigned int mask); +int pwcuBitDisableLevel (unsigned int mask); +int pwcuIncNumPost (); +int pwcuDecNumPost (); +int pwcuSetGoodPost (unsigned int newgp); +int pwcuViolateLaw (); +int pwcuSaveViolateLaw (); +int pwcuCancelBadpost (); +int pwcuAddExMailBox (int m); +int pwcuToggleOutMail (); +int pwcuSetLoginView (unsigned int bits); +int pwcuSetLastSongTime (time4_t clk); +int pwcuSetMyAngel (const char *angel_uid); +int pwcuSetNickname (const char *nickname); +int pwcuChessResult (int sigType, ChessGameResult); +int pwcuSetChessEloRating(uint16_t elo_rating); +int pwcuSaveUserFlags (); +int pwcuRegCompleteJustify (const char *justify); +int pwcuRegSetTemporaryJustify(const char *justify, const char *email); +int pwcuRegisterSetInfo (const char *rname, + const char *addr, + const char *career, + const char *phone, + const char *email, + int mobile, + uint8_t sex, + uint8_t year, + uint8_t month, + uint8_t day, + uint8_t is_foreign); + +// non-important based variables (only save on exit) int pwcuSetSignature (unsigned char newsig); -int pwcuBitSetLevel (unsigned int mask); -int pwcuBitUnsetLevel (unsigned int mask); +int pwcuSetWaterballMode(unsigned int bm); +int pwcuToggleSortBoard (); +int pwcuToggleFriendList(); +int pwcuToggleUserFlag (unsigned int mask); // not saved until pwcuSaveUserFlags +int pwcuToggleUserFlag2 (unsigned int mask); // not saved until pwcuSaveUserFlags + +// session management +int pwcuLoginSave (); +int pwcuExitSave (); +int pwcuReload (); + +// initialization +void pwcuInitZero (); +void pwcuInitGuestPerm (); +void pwcuInitGuestInfo (); +int pwcuInitAdminPerm (); /* calendar */ int calendar(void); int ParseDate(const char *date, int *year, int *month, int *day); +int ParseDateTime(const char *date, int *year, int *month, int *day, + int *hour, int *min, int *sec); #endif diff --git a/include/pttstruct.h b/include/pttstruct.h index 2c3591c4..4a8b76a9 100644 --- a/include/pttstruct.h +++ b/include/pttstruct.h @@ -63,10 +63,10 @@ typedef struct userec_t { uint32_t uflag; /* 習慣1 , see uflags.h */ uint32_t uflag2; /* 習慣2 , see uflags.h */ uint32_t userlevel; /* 權限 */ - uint32_t numlogins; /* 上站次數 */ + uint32_t numlogindays; /* 上線資歷 (每日最多+1的登入次數) */ uint32_t numposts; /* 文章篇數 */ time4_t firstlogin; /* 註冊時間 */ - time4_t lastlogin; /* 最近上站時間 */ + time4_t lastlogin; /* 最近上站時間(包含隱身) */ char lasthost[IPV4LEN+1];/* 上次上站來源 */ int32_t money; /* Ptt幣 */ @@ -95,8 +95,10 @@ typedef struct userec_t { char career[40]; /* 學歷職業 */ char phone[20]; /* 電話 */ - char chkpad1[52]; - time4_t chkpad2[3]; /* in case 有人忘了把 time4_t 調好... */ + uint32_t old_numlogins; /* 轉換前的 numlogins, 備份檢視用 */ + char chkpad1[48]; + time4_t lastseen; /* 最近上站時間(隱身不計) */ + time4_t chkpad2[2]; /* in case 有人忘了把 time4_t 調好... */ // 以上應為 sizeof(chicken_t) 同等大小 time4_t lastsong; /* 上次點歌時間 */ @@ -137,6 +139,15 @@ typedef struct userec_t { char pad_tail[28]; } PACKSTRUCT userec_t; +#ifndef NO_CONST_CUSER +// const userec_t cuser; +# define cuser_ref ((const userec_t*)&pwcuser) +# define cuser (*cuser_ref) +#else +# define cuser_ref (&cuser) +# define cuser pwcuser +#endif + /* flags in userec_t.withme */ #define WITHME_ALLFLAG 0x55555555 #define WITHME_TALK 0x00000001 @@ -304,14 +315,8 @@ typedef struct msgque_t { #define ALERT_NEW_MAIL (0x01) #define ISNEWMAIL(utmp) (utmp->alerts & ALERT_NEW_MAIL) -#define ALERT_PWD_PERM (0x02) -#define ALERT_PWD_BADPOST (0x04) -#define ALERT_PWD_GOODPOST (0x08) -#define ALERT_PWD_JUSTIFY (0x10) -// #define ALERT_PWD_LOGINS (0x20) -#define ALERT_PWD_POSTS (0x40) -#define ALERT_PWD_RELOAD (0x80) // reload entire pwd -#define ALERT_PWD (ALERT_PWD_PERM|ALERT_PWD_BADPOST|ALERT_PWD_GOODPOST|ALERT_PWD_JUSTIFY|ALERT_PWD_POSTS|ALERT_PWD_RELOAD) +#define ALERT_PWD_PERM (0x02) +#define ISNEWPERM(utmp) (utmp->alerts & ALERT_PWD_PERM) // userinfo_t.angelpause values #define ANGELPAUSE_NONE (0) // reject none (accept all) |