LazyBBS - The Ultimate BBS for Lazy People Preliminary Documentation July 92 (last update: 06/93) *** PUBLIC DOMAIN AND UNSUPPORTED *** >>> INTRODUCTION ---------------- LazyBBS is a very simple BBS program for a Pandora Fidonet message base (used by Led, Qbbs, Bermuda, IOS, etc on the Atari ST). And FILES.BBS-like download areas. The basic idea behind LazyBBS is that a (lazy) sysop don't want to spend hours/days configuring and maintaining the BBS, the BBS being an introduction to Fidonetting, the users who want sophisticated features will install a point system, which is anyway much more convienent than a BBS can ever be. The limits are the same for everyone, 300KB files per user per day, 50 KB the first. The download limit can be customized with the maxdown keyword in the BBS config file. The limit on the first day is 1/6th of the general limit (300/6=50) rounded to 10 (200/6=33 makes 30). The maximum connection time can be set with the maxtime keyword in BBS config, default is 45 minutes. Inactivity timeout is 5 minutes. It is possible to prevent a user from downloading. A "Guest" user is supported (enter "guest" at 1st name prompt), s/he can't download nor write messages. To run it you need: - a pandora message base setup (described by areas.bbs) - top.mnu (the top menus) in the current dir (see samples) - welcome.txt and bye.txt screens - (optionally) the others *.mnu called by top.mnu - (optionally) question.txt - new users questions - (optionally) intro.txt - intro page - (optionally) files.bbs type download areas At every prompt, you can log out with -d. Note: It is not planned to provide a post-preliminary documentation. >>> INPUT/OUTPUT ---------------- The basic idea was that the I/O should be done on the standard input and standard output (stdin/stdout), and then redirected for remote use. A second mode allow to have I/O on two devices, the stdio (usually sysop console) and the user terminal. The command line switch is -d In the Atari (TOS) version, in the -d mode the I/O is directed to both the console and the RS232, so you have a copy of users screen on the console, and you can type if you want to guide the users or to kick him/her (type ctrl-d at any user prompt). The can be optionnaly used for an xbios device number to use MegaSTE/TT modem2/serial1/serial2 ports. (e.g. -d5) the default is still good old modem1 port. :) You can't use -c with -d though. So, to launch it type "bbs" at a shell prompt, for example (Atari ST): - local example: cd \bbs # where *.mnu users.bbs etc are bbs - remote example: cd \bbs bbs -c -d >>> COMMAND LINE ---------------- -c watch carrier (default: no) -d duplicate input/output to (default: no) -g god (sysop :-)) mode, allows to read others' netmail, to see kludges in echomail, etc. >>> FILE FORMATS ---------------- LazyBBS uses the following files: bbs.cfg Configuration file (see below) areas.bbs Format described in your fidonet software documentation. An add-on to this format is groups: all areas placed after a "-group grpname" line, will belong to the group named (8 ascii letters max) "grpname". There is no need to put one -group line before each area. Group names starting with '_' are reserved for internal program use. areafix.bbs (optional) for area descriptions, documented in Areafix documentation. top.mnu The main menu file (format described below) welcome.txt (optional) First page, a text file bye.txt (optional) Last page, a text file question.txt(optional) new users questions intro.txt (optional) intro text before login hotnews.txt (optional) is displayed after login if user has not seen it * CONFIG FILE A text file with lines like The valid parameters are: address fidonet node number for the from field in netmail messages logfile name of logfile (default: bbs.log) areascfg path to areas.bbs file (default: current dir) netmail netmail area root name prompt customize LazyPrompt(tm) (default: LazyBBS>) uucpgate fidonet node nr of the neareast uucp gateway global config file for global download, is the filename of a file containing paths to download areas see GLOBAL DOWNLOAD below. maxdown maximum download per day, the same for every user. maxtime maximum minutes per day, for everyone * LOGFILE It's a standard Fidonet logfile … la TheBox and Bermuda. * MENU FILES Each menu is described in a simple text file. TOP.MNU is the top menu called at startup (after the login). These files are text files, each line not beginning by $/ will be sent to the screen as is. Lines beginning by $/ and $# are used to set the hotkeys, and the functions associated with a hotkey. The standard syntax of the $/ line is: $/=[space][parameters] The syntax of the $# line is: $#/=[space][parameters] is a letter, the users needs to have this flag set in order to acces this menu. (see users file desc for flags). is the hotkey, e.g. "A" not case sensitive. is a 8 chars max alphabetic string which describes an internal functions: top return to top menu hangup drop the line and quit info display BBS software version etc password Change password userinfo User information chat Chat with sysop gdown Global download menu gosub to menu download display files.bbs and allow user to download a file in a given directory. upload user uploads a file to given path more displays a file with a more prompt. read user reads echomail messages from an area in the selected group (see areas.bbs description above) read _private read private mail in netmail area readw like read, but allow replies write _sysop write a private message to sysop write _local write a private message to another user of the board write _fido write a private fidonetmail write _uucp write to the nearest uucp gateway write user writes a message to an area of the group he selected. Of course there is no menu editor as you can use any text editor. The program adds the connection minutes left at the start of each menu. An example menu: ([*] Hangup) >>>>>>>>>>> Main Menu <<<<<<<<<<< > < > [M]ail (private) < > [E]chos (public) < > [B]ulletins < > [D]ownload a file < > [U]pload a file < > [C]hat (restricted) < > < >>>>>>>>>>>>>>>>=<<<<<<<<<<<<<<<< $/*=hangup $/B=menu bull.mni $/M=read private $/E=read usergrp $/d=download j:\st_files\ $/U=upload j:\uploads\ $#s/C=chat * LAZYBBS USERS FILE Each user is described in a line of the file named "users.bbs" place in the current directory. Each entry is like that: !!!
!! [...] !! Flags are characters "abz" means users as flag a, flag b, flag z. The last login date is in _days_ since 1/1/1970. If the number of kb downloaded today equals minus one the user can't download. Example: Joe!Smith!Nicetown, Nicestate NI11111!!1832!0!12 Jacques!Dupont!Belleville, Cebeuq!z!1815!-1!14 * USER QUESTION FILES The "question.txt" includes a question per line that will be asked to the user when he creates his login. To make multilines questions put C-like "\n" as line separators in your question line. Answers are logged in "answers.txt". Example: How old are you? Where did you know about this board\nPress? Others boards? Etc. * GLOBAL DOWNLOAD FILE This file is used for the global download, it is compatible with POF! config files. (POF! is a master file listing generator). Every line not starting by '#' '@' ';' is a path to areas: Example: ; comment @insert.txt # COMMENT /usr/bbs/download/unix /usr/bbs/download/gif >>> PROTOCOLS ------------- The external protocols used are the program rz and sz, who takes the receiving path for the first one, the file to send for the second one on the command line. I myself use the sz.ttp/rz.ttp provided with Rufus on the Atari ST version. >>> MANIFEST ------------ You should have received the following files in the standard distribution: [source] bbs.h BBS config bbs.c Main module linedit.c;linedit.h Line Editor msg.c;msg.h;qbbs.h Pandora message base support login.c;login.h Login miscio.c;miscio.h Level 1 - IO & utilities sysdep.c;sysdep.h Level 0 - System dependant match.c;match.h J. Kercheval's regular expression library [sample config files] top.mnu Sample BBS - top menu bull.mnu Sample BBS - bulletin menu mail.mnu Sample BBS - mail menu welcome.txt Sample BBS - welcome screen bye.txt Sample BBS - bye screen question.txt Sample BBS - new users questions [documentation] lazyuser.txt User's guide (bulletin) lazybbs.txt (this file) - Sysop's guide readme.txt Readme file match.doc J. Kercheval's regular expression library - doc [atari st dependant] bbs.prj Lattice C 5.5 Project file bbs.ttp Atari ST Binary [unix dependant] Makefile type make :-) and debug :-) >>> LICENSE ----------- This software is public domain. It can be copied and sold freely. (yeah, it can be sold, i'm bored by all those restrictive licenses) >>> SUPPORT ----------- This software is not likely to do what you want it to do. It is not supported. Have fun :-). >>> CREDITS ----------- Software originally written by Franck Arnaud. Line message editor written by Vincent Archer. Powerful LazyPrompt(tm) algorithm by Vincent Pomey. The authors disclaim everything. Whatever happens, it IS your own stupid fault.