summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-10-30 11:08:26 +0800
committerptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-10-30 11:08:26 +0800
commit93e84c9d6c3c5d95e21d0a30bd32e8c58f66e40e (patch)
treed640d3909573dd2d753b197c43c281f6fa6f8799
parent35a342e7bb718eebeed70e13b3fafba0e69e0384 (diff)
downloadpttbbs-93e84c9d6c3c5d95e21d0a30bd32e8c58f66e40e.tar
pttbbs-93e84c9d6c3c5d95e21d0a30bd32e8c58f66e40e.tar.gz
pttbbs-93e84c9d6c3c5d95e21d0a30bd32e8c58f66e40e.tar.bz2
pttbbs-93e84c9d6c3c5d95e21d0a30bd32e8c58f66e40e.tar.lz
pttbbs-93e84c9d6c3c5d95e21d0a30bd32e8c58f66e40e.tar.xz
pttbbs-93e84c9d6c3c5d95e21d0a30bd32e8c58f66e40e.tar.zst
pttbbs-93e84c9d6c3c5d95e21d0a30bd32e8c58f66e40e.zip
feature for SOB users to import account
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2285 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--include/fpg.h179
-rw-r--r--include/proto.h2
-rw-r--r--mbbsd/menu.c2
-rw-r--r--mbbsd/merge.c72
4 files changed, 86 insertions, 169 deletions
diff --git a/include/fpg.h b/include/fpg.h
index 57ae46c3..0ceabd73 100644
--- a/include/fpg.h
+++ b/include/fpg.h
@@ -1,137 +1,72 @@
-
-
#define STRLEN 80 /* Length of most string data */
+#define BRC_STRLEN 15 /* Length of boardname */
#define BTLEN 48 /* Length of board title */
-#define FTTLEN 72 /* Length of title */
#define NAMELEN 40 /* Length of username/realname */
#define FNLEN 33 /* Length of filename */
+ /* Ptt ���o�̦�bug*/
#define IDLEN 12 /* Length of bid/uid */
#define PASSLEN 14 /* Length of encrypted passwd field */
#define REGLEN 38 /* Length of registration data */
-typedef unsigned char uschar; /* length = 1 */
-typedef unsigned int usint; /* length = 4 */
-
-typedef struct
-{
- uschar id;
- char broken;
-} WEAPONARMOR;
-typedef struct
-{
- char id;
- char name[IDLEN + 1];
- char lv;
- short lp;
- ushort mlp;
- short hp;
- ushort mhp;
- uschar po;
- uschar st;
- uschar ag;
- uschar lu;
- int ex;
- char emotion;
- char moral;
- char wisdom;
- char will;
- char charm;
- WEAPONARMOR weapon;
- WEAPONARMOR armor[4];
- uschar flag;
- char hungry;
- char sick;
- char angry;
-} PET;
-
-typedef struct
-{
- char userid[IDLEN + 1];
- char realname[20];
- char username[24];
- char passwd[PASSLEN];
- ushort uflag;
- usint userlevel;
- ushort numlogins;
- ushort numposts;
- time_t firstlogin;
- time_t lastlogin;
- char lasthost[16];
- char email[50];
- char address[50];
- char justify[REGLEN + 1];
- uschar month;
- uschar day;
- uschar year;
- uschar sex;
- uschar state;
- ushort mailk;
- ushort keepmail;
- int money;
- ushort totalday;
- uschar totalhour;
- uschar totalmin;
- int market[10];
- short locate;
- char action;
- char direct;
- char speed;
- char count;
- uschar landnum;
- uschar tool[10];
- char NAME[IDLEN + 1];
- char LV;
- short HP;
- short MHP;
- short MP;
- short MMP;
- short WC;
- short AC;
- short PO;
- short ST;
- short AG;
- short LU;
- int EX;
- char EVENT;
- uschar WA[6];
- uschar USE[10];
- uschar MAGIC[5];
- uschar NOWOCCUPATION;
- short OCCUPATION[4];
- uschar cardfightnum;
- uschar cardfight[20];
- uschar dragon[5];
- PET pet;
- usint bank;
- char left[36];
-} ACCT;
+typedef unsigned char uschar; /* length = 1 */
+typedef unsigned int usint; /* length = 4 */
+typedef unsigned short int ushort; /* length = 4 */
-struct fileheader
+/* ----------------------------------------------------- */
+/* .PASSWDS struct : 512 bytes */
+/* ----------------------------------------------------- */
+struct sobuserec
{
- char filename[FNLEN]; /* M.9876543210.A */
- char savemode; /* file save mode */
- char owner[IDLEN + 2]; /* uid[.] */
- char date[6]; /* [02/02] or space(5) */
- char title[FTTLEN + 1];
- uschar filemode; /* must be last field @ boards.c */
+ char userid[IDLEN + 1]; /* �ϥΪ̦W�� 13 bytes */
+ char realname[20]; /* �u��m�W 20 bytes */
+ char username[24]; /* �ʺ� 24 bytes */
+ char passwd[PASSLEN]; /* �K�X 14 bytes */
+ uschar uflag; /* �ϥΪ̿ﶵ 1 byte */
+ usint userlevel; /* �ϥΪ��v�� 4 bytes */
+ ushort numlogins; /* �W������ 2 bytes */
+ ushort numposts; /* POST���� 2 bytes */
+ time_t firstlogin; /* ���U�ɶ� 4 bytes */
+ time_t lastlogin; /* �e���W�� 4 bytes */
+ char lasthost[24]; /* �W���a�I 24 bytes */
+ char vhost[24]; /* �������} 24 bytes */
+ char email[50]; /* E-MAIL 50 bytes */
+ char address[50]; /* �a�} 50 bytes */
+ char justify[REGLEN + 1]; /* ���U��� 39 bytes */
+ uschar month; /* �X�ͤ�� 1 byte */
+ uschar day; /* �X�ͤ�� 1 byte */
+ uschar year; /* �X�ͦ~�� 1 byte */
+ uschar sex; /* �ʧO 1 byte */
+ uschar state; /* ���A?? 1 byte */
+ usint habit; /* �ߦn�]�w 4 bytes */
+ uschar pager; /* �߱��C�� 1 bytes */
+ uschar invisible; /* �����Ҧ� 1 bytes */
+ usint exmailbox; /* �H�c�ʼ� 4 bytes */
+ usint exmailboxk; /* �H�cK�� 4 bytes */
+ usint toquery; /* �n�_�� 4 bytes */
+ usint bequery; /* �H��� 4 bytes */
+ char toqid[IDLEN + 1]; /* �e���d�� 13 bytes */
+ char beqid[IDLEN + 1]; /* �e���Q�֬d 13 bytes */
+ unsigned long int totaltime; /* �W�u�`�ɼ� 8 bytes */
+ usint sendmsg; /* �o�T������ 4 bytes */
+ usint receivemsg; /* ���T������ 4 bytes */
+ unsigned long int goldmoney; /* ������ 8 bytes */
+ unsigned long int silvermoney; /* �ȹ� 8 bytes */
+ unsigned long int exp; /* �g��� 8 bytes */
+ time_t dtime; /* �s�ڮɶ� 4 bytes */
+ int scoretimes; /* �������� 4 bytes */
+ uschar rtimes; /* ����U�榸�� 1 bytes */
+ int award; /* ���g�P�_ 4 bytes */
+ int pagermode; /* �I�s������ 4 bytes */
+ char pagernum[7]; /* �I�s�����X 7 bytes */
+ char feeling[5]; /* �߱����� 5 bytes */
+ char title[20]; /* �ٿ�(�ʸ�) 20 bytes */
+ usint five_win;
+ usint five_lost;
+ usint five_draw;
+ char pad[91]; /* �ŵ۶񺡦�512�� */
};
-typedef struct fileheader fileheader;
-struct boardheader
-{
- char brdname[IDLEN + 1]; /* bid */
- char title[BTLEN + 1];
- char BM[IDLEN * 3 + 3]; /* BMs' uid, token '/' */
- char group[9]; /* �ݪO���� */
- char type; /* �ݪO�ʽ�: ��H�H�ؿ��H */
- char pad[1];
- time_t bupdate; /* note update time */
- char pad2[3];
- uschar bvote; /* Vote flags */
- time_t vtime; /* Vote close time */
- usint level;
-};
-typedef struct boardheader boardheader;
+typedef struct sobuserec sobuserec;
diff --git a/include/proto.h b/include/proto.h
index edfad702..ee39868e 100644
--- a/include/proto.h
+++ b/include/proto.h
@@ -358,7 +358,7 @@ int Name_Menu(void);
#ifdef MERGEBBS
/* merge */
-int m_fpg(void);
+int m_sob(void);
void m_sob_brd(char *bname,char *fromdir);
#endif
diff --git a/mbbsd/menu.c b/mbbsd/menu.c
index 2dd14d4e..31589eff 100644
--- a/mbbsd/menu.c
+++ b/mbbsd/menu.c
@@ -395,7 +395,7 @@ const static commands_t userlist[] = {
{u_register, PERM_BASIC, "RRegister ��g�m���U�ӽг�n"},
{u_list, PERM_SYSOP, "UUsers �C�X���U�W��"},
#ifdef MERGEBBS
- {m_fpg, PERM_SYSOP, "FFPG Import ����ܨ��N"},
+ {m_sob, PERM_LOGINOK, "SSOB Import �F�y�ܨ��N"},
#endif
{NULL, 0, NULL}
};
diff --git a/mbbsd/merge.c b/mbbsd/merge.c
index 3423e91e..5958e268 100644
--- a/mbbsd/merge.c
+++ b/mbbsd/merge.c
@@ -6,21 +6,21 @@
#include "fpg.h"
int
-m_fpg()
+m_sob()
{
char genbuf[256], buf[256], userid[25], passbuf[24], msg[2048]="";
int count=0, i, isimported=0;
FILE *fp;
- ACCT man;
+ sobuserec man;
time_t d;
clear();
move(1,0);
outs(
- " �p����������,\n"
- " ����骺�ϥΪ��ಾ�ӤH�겣�H�έ��n�H�θ��, �ɦ������w��������.\n"
- " �p�G�z���ݭn, �Ъ�����[Enter]���}.\n"
+ " �Ъ`�N �o�O�u�������F�y�ϥΪ�!\n"
+ " ���F�y���ϥΪ��ಾ�ӤH�겣�H�έ��n�H�θ��, �ɦ������w��������.\n"
+ " �p�G�z���ݭn, �Ъ����}.\n"
" -----------------------------------------------------------------\n"
" �S�O�m�{:\n"
" ���F�b���w��,�z�u���s��T���K�X���~�����|,�Фp�߿�J.\n"
@@ -28,12 +28,12 @@ m_fpg()
" �Ф��n�b�ܨ��L�{�������`�_�u, ��N�_�u�ܥb�~�H�������ϭ�.\n"
);
-
+ if(getkey("�O�_�n�~��?(y/N)")!='y') return 0;
if(search_ulistn(usernum,2))
{vmsg("�еn�X��L����, �H�K�ܨ�����"); return 0;}
do
{
- if(!getdata(10,0, " �p����ID [�^��j�p�g�n�������T]:", userid, 20,
+ if(!getdata(10,0, " �F�y��ID [�j�p�g�n�������T]:", userid, 20,
DOECHO)) return 0;
if(bad_user_id(userid)) continue;
sprintf(genbuf, "/home/bbs/fpg/home/%c/%s.ACT",userid[0], userid);
@@ -53,16 +53,16 @@ m_fpg()
}while(!count);
count = 0;
do{
- getdata(11,0, " �p�����K�X:", passbuf, sizeof(passbuf),
+ getdata(11,0, " �F�y���K�X:", passbuf, sizeof(passbuf),
NOECHO);
if(++count>=3)
{
cuser.userlevel |= PERM_VIOLATELAW;
cuser.vl_count++;
passwd_update(usernum, &cuser);
- post_violatelaw(cuser.userid, "[PTTĵ��]", "���դp���b�����~�T��",
+ post_violatelaw(cuser.userid, "[PTTĵ��]", "���ձb�����~�T��",
"�H�k�[��");
- mail_violatelaw(cuser.userid, "[PTTĵ��]", "���դp���b�����~�T��",
+ mail_violatelaw(cuser.userid, "[PTTĵ��]", "���ձb�����~�T��",
"�H�k�[��");
return 0;
@@ -81,30 +81,25 @@ m_fpg()
sprintf(buf,"%s.done",genbuf);
rename(genbuf,buf);
#ifdef MERGEMONEY
- int price[10] = {74, 21, 29, 48, 67, 11, 9, 43, 57, 72};
- unsigned lmarket=0;
reload_money();
- for(i=0; i<10; i++)
- lmarket += man.market[i]/(674 / price[i]);
sprintf(buf,
- "�z�������� %10d ���⦨ Ptt ���� %9d (�u�f�ײv 155:1), \n"
- " �Ȧ榳 %10d ���⬰ Ptt ���� %9d (�ײv�� 674:1), \n"
- " �ᥫ���� %10d ���⬰ Ptt ���� %9d (�ײv�� 674:1), \n"
+ "�z���F�y�ȹ��� %10d ���⦨ Ptt ���� %9d (�ײv 22:1), \n"
+ " �F�y������ %10d ���⬰ Ptt ���� %9d (�ײv 222105:1), \n"
" �즳P�� %10d �פJ��@�� %d\n",
- man.money, man.money/155,
- man.bank, man.bank/674,
- lmarket*674, lmarket,
- cuser.money, cuser.money + man.money/155 + man.bank/674 + lmarket);
- demoney(man.money/155 + man.bank/674 + lmarket);
+ man.goldmoney, man.goldmoney/22,
+ man.silvermoney, man.silvermoney/222105,
+ cuser.money, cuser.money + man.goldmoney/22 +
+ man.silvermoney/222105);
+ demoney(man.goldmoney/22 + man.silvermoney/222105 + lmarket);
strcat(msg, buf);
#endif
- i = cuser.exmailbox + man.mailk + man.keepmail;
+ i = cuser.exmailbox + man.exmailbox + man.exmailboxk/2000;
if (i > MAX_EXKEEPMAIL) i = MAX_EXKEEPMAIL;
- sprintf(buf, "�z�����H�c�� %d (%dk), �즳 %d �פJ��@�� %d\n",
- man.keepmail, man.mailk, cuser.exmailbox, i);
+ sprintf(buf, "�z���F�y�H�c�� %d (%dk), �즳 %d �פJ��@�� %d\n",
+ man.exmailbox, man.exmailboxk, cuser.exmailbox, i);
strcat(msg, buf);
cuser.exmailbox = i;
@@ -117,25 +112,19 @@ m_fpg()
if(cuser.firstlogin > man.firstlogin) d = man.firstlogin;
else d = cuser.firstlogin;
- sprintf(buf, "�����U��� %s ", Cdatedate(&(man.firstlogin)));
- strcat(msg,buf);
- sprintf(buf, "���b�����U��� %s �N�� ",Cdatedate(&(cuser.firstlogin)));
- strcat(msg,buf);
- sprintf(buf, "�N�� %s\n", Cdatedate(&d) );
- strcat(msg,buf);
cuser.firstlogin = d;
if(cuser.numlogins < man.numlogins) i = man.numlogins;
else i = cuser.numlogins;
- sprintf(buf, "���i������ %d ���b�� %d �N�� %d \n", man.numlogins,
+ sprintf(buf, "�F�y�i������ %d ���b�� %d �N�� %d \n", man.numlogins,
cuser.numlogins, i);
strcat(msg,buf);
cuser.numlogins = i;
if(cuser.numposts < man.numposts ) i = man.numposts;
else i = cuser.numposts;
- sprintf(buf, "���峹���� %d ���b�� %d �N�� %d\n",
+ sprintf(buf, "�F�y�峹���� %d ���b�� %d �N�� %d\n",
man.numposts,cuser.numposts,i);
strcat(msg,buf);
cuser.numposts = i;
@@ -146,16 +135,16 @@ m_fpg()
}
sethomeman(genbuf, cuser.userid);
mkdir(genbuf, 0600);
- sprintf(buf, "tar zxvf home/%c/%s.tgz>/dev/null",
+ sprintf(buf, "tar zxvf %c/%s.tar.gz>/dev/null",
userid[0], userid);
- chdir("fpg");
+ chdir("sob/home");
system(buf);
chdir(BBSHOME);
if (getans("�O�_�פJ�ӤH�H�c? (Y/n)")!='n')
{
sethomedir(buf, cuser.userid);
- sprintf(genbuf, "fpg/home/bbs/home/%c/%s/.DIR",
+ sprintf(genbuf, "sob/home/%c/%s/.DIR",
userid[0], userid);
merge_dir(buf, genbuf, 1);
strcat(msg, "�פJ�ӤH�H�c\n");
@@ -163,7 +152,7 @@ m_fpg()
if(getans("�O�_�פJ�ӤH�H�c��ذ�? (�|�л\\�{���]�w) (y/N)")=='y')
{
sprintf(buf,
- "rm -rd home/%c/%s/man>/dev/null ; mv fpg/home/bbs/home/%c/%s/man home/%c/%s",
+ "rm -rd home/%c/%s/man>/dev/null ; mv sob/home/%c/%s/man home/%c/%s",
cuser.userid[0], cuser.userid,
userid[0], userid,
cuser.userid[0], cuser.userid);
@@ -173,7 +162,7 @@ m_fpg()
if(getans("�O�_�פJ�n�ͦW��? (�|�л\\�{���]�w, ID�i��O���P�H)? (y/N)")=='y')
{
sethomefile(genbuf, cuser.userid, "overrides");
- sprintf(buf, "fpg/home/bbs/home/%c/%s/overrides",userid[0],userid);
+ sprintf(buf, "sob/home/%c/%s/overrides",userid[0],userid);
Copy(buf, genbuf);
strcat(buf, genbuf);
friend_load(FRIEND_OVERRIDE);
@@ -181,13 +170,6 @@ m_fpg()
}
sprintf(buf, "�b���פJ���i %s -> %s ", userid, cuser.userid);
post_msg("Security", buf, msg, "[�t�Φw����]");
- sprintf(buf, "fpg/home/bbs/home/%c/%s/PttID", userid[0],userid);
- if((fp = fopen(buf, "w")))
- {
- fprintf(fp, "%s\n", cuser.userid);
- fprintf(fp, "%s", msg);
- fclose(fp);
- }
vmsg("���߱z�����b���ܨ�..");
return 0;