/[LeafOK_CVS]/lbbs/src/bbs_main.c
ViewVC logotype

Diff of /lbbs/src/bbs_main.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.25 by sysadm, Tue Mar 22 08:19:11 2005 UTC Revision 1.32 by sysadm, Wed Apr 30 09:18:19 2025 UTC
# Line 1  Line 1 
1  /***************************************************************************  /***************************************************************************
2                            bbs_main.c  -  description                                                    bbs_main.c  -  description
3                               -------------------                                                           -------------------
4      begin                : Mon Oct 18 2004          begin                : Mon Oct 18 2004
5      copyright            : (C) 2004 by Leaflet          copyright            : (C) 2004 by Leaflet
6      email                : leaflet@leafok.com          email                : leaflet@leafok.com
7   ***************************************************************************/   ***************************************************************************/
8    
9  /***************************************************************************  /***************************************************************************
# Line 15  Line 15 
15   *                                                                         *   *                                                                         *
16   ***************************************************************************/   ***************************************************************************/
17    
18    #include "bbs_main.h"
19  #include "bbs.h"  #include "bbs.h"
20    #include "welcome.h"
21    #include "login.h"
22    #include "user_priv.h"
23  #include "common.h"  #include "common.h"
24    #include "log.h"
25  #include "io.h"  #include "io.h"
26    #include "screen.h"
27  #include "menu.h"  #include "menu.h"
28  #include "bbs_cmd.h"  #include "bbs_cmd.h"
29    #include <unistd.h>
30  #include <time.h>  #include <time.h>
31  #include <string.h>  #include <string.h>
32    
33  int  int bbs_info()
 bbs_main ()  
34  {  {
35    char temp[256];          prints("»¶Ó­¹âÁÙ \033[1;33m%s \033[32m[%s]  \033[37m( %s )\r\n",
36    int ret;                     BBS_name, BBS_server, app_version);
37    
38    set_input_echo (0);          iflush();
39    
40    bbs_info ();          return 0;
41    }
   //Welcome  
   bbs_welcome ();  
   
   //Login  
   ret = bbs_login ();  
   if (ret < 0)  
     return -1;  
   clearscr ();  
42    
43    //BBS Top 10  int bbs_exit()
44    strcpy (temp, app_home_dir);  {
45    strcat (temp, "data/bbs_top.txt");          char temp[256];
   display_file_ex (temp, 1, 1);  
46    
47    //Main          strcpy(temp, app_home_dir);
48    bbs_center ();          strcat(temp, "data/goodbye.txt");
49            display_file_ex(temp, 1, 0);
50    
51    //Logout          sleep(1);
   bbs_exit ();  
52    
53    return 0;          return 0;
54  }  }
55    
56  int  int bbs_center()
 bbs_info ()  
57  {  {
58    prints ("»¶Ó­¹âÁÙ \033[1;33m%s \033[32m[%s]  \033[37m( %s )\r\n",          int ch, result, redraw;
59            BBS_name, BBS_server, app_version);          char temp[256];
60            time_t t_last_action;
61    
62    iflush ();          BBS_last_access_tm = t_last_action = time(0);
63    
64    return 0;          clearscr();
 }  
65    
66  int          show_top("");
67  bbs_exit ()          show_active_board();
68  {          show_bottom("");
69    char temp[256];          display_menu(get_menu(&bbs_menu, "TOPMENU"));
70    
71    strcpy (temp, app_home_dir);          while (!SYS_exit)
72    strcat (temp, "data/goodbye.txt");          {
73    display_file_ex (temp, 1, 0);                  ch = igetch();
74    
75    sleep (1);                  if (time(0) - t_last_action >= 10)
76                    {
77                            t_last_action = time(0);
78                            show_active_board();
79                            show_bottom("");
80                    }
81    
82                    switch (ch)
83                    {
84                    case KEY_NULL:
85                            return 0;
86                    case KEY_TIMEOUT:
87                            if (time(0) - BBS_last_access_tm >= MAX_DELAY_TIME)
88                            {
89                                    return -1;
90                            }
91                            continue;
92                    default:
93                            redraw = 1;
94                            switch (menu_control(&bbs_menu, ch))
95                            {
96                            case EXITBBS:
97                                    return 0;
98                            case REDRAW:
99                                    break;
100                            case NOREDRAW:
101                            case UNKNOWN_CMD:
102                            default:
103                                    redraw = 0;
104                                    break;
105                            }
106                            if (redraw)
107                            {
108                                    clearscr();
109                                    show_top("");
110                                    show_active_board();
111                                    show_bottom("");
112                                    display_current_menu(&bbs_menu);
113                            }
114                    }
115                    BBS_last_access_tm = time(0);
116            }
117    
118    return 0;          return 0;
119  }  }
120    
121  int  int bbs_main()
 bbs_center ()  
122  {  {
123    int ch, result, redraw;          char temp[256];
124    char action[MAX_MENUACTION_LENGTH], temp[256];          int ret;
   time_t t_last_action;  
125    
126    BBS_last_access_tm = t_last_action = time (0);          set_input_echo(0);
127    
128    clearscr ();          bbs_info();
129    
130    show_top ("");          // Welcome
131    show_active_board ();          bbs_welcome();
   show_bottom ("");  
   display_menu (get_menu (&bbs_menu, "TOPMENU"));  
132    
133    while (1)          // Login
134      {          ret = bbs_login();
135        ch = igetch ();          if (ret < 0)
136                    return -1;
137            log_std("User \"%s\"(%ld) login from %s:%d\n",
138                            BBS_username, BBS_priv.uid, hostaddr_client, port_client);
139            clearscr();
140    
141        if (time (0) - t_last_action >= 10)          // BBS Top 10
142          {          strcpy(temp, app_home_dir);
143            t_last_action = time (0);          strcat(temp, "data/bbs_top.txt");
144            show_active_board ();          display_file_ex(temp, 1, 1);
           show_bottom ("");  
         }  
145    
146        switch (ch)          // Main
147          {          bbs_center();
148          case KEY_NULL:  
149            return 0;          // Logout
150          case KEY_TIMEOUT:          bbs_exit();
151            if (time (0) - BBS_last_access_tm >= MAX_DELAY_TIME)          log_std("User logout\n");
             {  
               return -1;  
             }  
           continue;  
         default:  
           strcpy (action, menu_control (&bbs_menu, ch));  
           redraw = 1;  
           switch (get_cmd_value (action))  
             {  
             case EXITBBS:  
               return 0;  
             case BBSNET:  
               bbs_net ();  
               break;  
             case LICENSE:  
               strcpy (temp, app_home_dir);  
               strcat (temp, "data/license.txt");  
               display_file_ex (temp, 0, 1);  
               break;  
             case COPYRIGHT:  
               strcpy (temp, app_home_dir);  
               strcat (temp, "data/copyright.txt");  
               display_file_ex (temp, 0, 1);  
               break;  
             case UNKNOWN_CMD:  
             default:  
               redraw = 0;  
               break;  
             }  
           if (redraw)  
             {  
               clearscr ();  
               show_top ("");  
               show_active_board ();  
               show_bottom ("");  
               display_current_menu (&bbs_menu);  
             }  
         }  
       BBS_last_access_tm = time (0);  
     }  
152    
153    return 0;          return 0;
154  }  }


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1