精華區beta SetupBBS 關於我們 聯絡資訊
/*===============================*/ /*== 情書產生器 Ptt ==*/ /*===============================*/ #include "bbs.h" #include <stdlib.h> #include <time.h> #include <string.h> #define DATA "etc/lovepaper.dat" extern void hold_mail(char *,char *); int x_love() { char buf1[200],save_title[TTLEN+1],receiver[61],path[STRLEN]="home/"; int x,y,z,tline,poem=0,l=0; FILE *fp,*fpo; int internet_mail; time_t timenow; struct tm *gtime; fileheader mhdr; setutmpmode(LOVE); time(&timenow); gtime = localtime(&timenow); sprintf(buf1,"/love%d%d",gtime->tm_sec,gtime->tm_min); strcat(path,cuser.userid); strcat(path,buf1); move(1,0); clrtobot(); outs("\n歡迎使用情書產生器 v0.00 版 \n"); outs("有何難以啟齒的話,交由系統幫你說吧.\n爸爸說 : 濫情不犯法.\n"); getdata(7, 0, "收信人:", receiver, 60, DOECHO); if ( receiver[0] && !(searchuser(receiver) && getdata(8, 0, "主 題:", save_title, TTLEN, DOECHO))) { move(10, 0); outs("收信人或主題不正確, 情書無法傳遞. "); pressanykey(); return 0; } fpo=fopen(path,"w"); fprintf(fpo,"\n"); if((fp=fopen (DATA,"r"))) { while( fgets(buf1,100,fp)) { switch(buf1[0]) { case '#': break; case '@': if (!strncmp(buf1,"@begin",6) || !strncmp(buf1,"@end",4)) { tline=3; } else if(!strncmp(buf1,"@poem",5) ) { poem=1;tline=1; fprintf(fpo,"\n\n"); } else { tline=2; } break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': sscanf(buf1,"%d",&x); y=(random()%(x-1))*tline; break; default: if (!poem) { if(y>0) {y=y-1; } else { if(tline>0) { fprintf(fpo,"%s",buf1); tline--; } } } else { if(buf1[0]=='$') {y--;} else { if(y==0) fprintf(fpo,"%s",buf1); } } } } fclose(fp); fclose(fpo); if (vedit(path, YEA) == -1) { unlink(path); clear(); outs("\n\n 放棄寄情書\n"); pressanykey(); return -2; } sethomepath(buf1, receiver); stampfile(buf1, &mhdr); Rename(path, buf1); strncpy(mhdr.title, save_title, TTLEN); strcpy(mhdr.owner, cuser.userid); mhdr.savemode = '\0'; sethomedir(path, receiver ); if (append_record(path, &mhdr, sizeof(mhdr)) == -1) return -1; hold_mail(buf1, receiver); return 1; } return 0; }