03-Apr-97 Doc for BusyTime V1.12 ~~~~~~~~~~~~~~~~~~~~~~~~ COPYRIGHT: ~~~~~~~~~~ This program is XenoWare. If you own Xenolink Pro BBS you may use it freely and spread it to other users of Xenolink, as long as the archive remains in it's original state! Another requirement for using it more than two weeks is that you send me a netmail telling me you're using it! CHANGES V1.11 -> V1.12 (Released 03-Apr-97): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Made the scanning before finding lastline much faster! Ie. if information about a lastline is found, the programme will skip everything until this lastline is found in the datafile. CHANGES V1.10 -> V1.11 (Released 06-Jan-97): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Something strange happened after newyear! The busyweek information would be out of sync! Data that should have been registrated under wednesday for example, would instead be entered under tuesday. I finally found that it was because last year, 1996, was what we in Sweden call "skottår", ie there's 29 days in February. When going from 96 to 97 a flag that was set wasn't reset to zero and that's why it didn't calculate the day of the week correctly. * Since no one ever sends me any netmails or emails telling me they use my programme, it's either that no one uses it (which makes it more or less unnescessary to release new updates), or it's because no one bothers with it! Therefor I've implemented a keyfile for using my programme after a specific date. The registration is TOTALLY FREE except for an email with your name and request for registration. Send it to the address stated below. * Found some code that didn't do anything and removed it. CHANGES V1.9 -> V1.10 (Released 961011): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * The programme now saves data that 'rolls out' from the BusyTime.log to a file called BusyTime.Old.log. So, if the normal file is full and a new day is added at the end, the first day in the log is added to the .Old file instead of being lost in the binary space! This new log keeps upto 925 days, so in all you can have a log of 1000 days! * Wrote a small extra tool for Busytime called "BusyTimeAll". This programme is only for giving Sysop information over a longer time than the normal 75 days. It reads the .Old log, and then the normal log and uses the data to create a textfile in RAM: called "BusyTimeAll.txt". This is exactly the same as the Busy.txt, ie a view over the busytime of the day, but this one shows ALL DAYS in both .Old and normal file... In the end you will have a nice view over the busytime over 1000 days!!! Usage: BusyTimeAll [node] By default, the data for node 1 is used. * Fixed a stupid bug where the OutputPath was being used as the defaultcolour! Man, did the output look stupid! ;-) Sorry about that!!! CHANGES V1.8 -> V1.9 (Released 960926): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Had some complaints about the programme being hardcoded to produce the textfiles in the BBS:Text/ drawer. The programme is now fully configurable on this point. Add a line in the file XConfig:BusyTime/BusyTime.cfg before the first one, ie the new line must be the first in the config. On this line you state where you want the output to be located. This path is refered to as the "OutputPath" in the rest of this document! * No bugfix, nothing really, just a tip! If you want to create two sets of files, one with and one without colour for example, you could do like this: Create two sets of XConfig:BusyTime/BusyTime.cfg and call them BusyTime.cfg1 and BusyTime.cfg2. In the first you have the coloursettings, and in the second you instead enter the colourcode  or perhaps nothing at all. Then create a script that does something like this: Copy XConfig:BusyTime/BusyTime.cfg1 XConfig:BusyTime/BusyTime.cfg BusyTime ALL Move OutputPath:Busy1.txt ColourPath:Busy1.txt Move OutputPath:Upload1.txt ColourPath:Upload1.txt Move OutputPath:Download1.txt ColourPath:Download1.txt Move OutputPath:BusyHour1.txt ColourPath:BusyHour1.txt Move OutputPath:Busyweek1.txt ColourPath:Busyweek1.txt Copy XConfig:BusyTime/BusyTime.cfg2 XConfig:BusyTime/BusyTime.cfg BusyTime ALL NOSCAN Now you will have two sets of textfiles, one with and one without colour! Of course, you don't have to move the file, a simple renaming of the files would probably also do the trick! CHANGES V1.7 -> V1.8 (Released 960911): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Sometimes for some reason, some of the data would be set to a negative number. The bug is still there, but now it's not saved atleast. CHANGES V1.6 -> V1.7 (Released 960225): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Fixed a bug with "unsuccessful recieve". * Fixed a bug with "Incomplete file". * Speeded up reading of the logfile! No copying to RAM: nomore! The programme now uses about 1MB of memory to accept a logfile of that size. If the log is larger than this the programme may not work! * Speeded up the creation of all files! * Added support for re-logins. * Added stats on a weekly basis. Works exactly like the other bulletins. Keyword = BSYWEEK. CHANGES V1.5 -> V1.6 (Released 960204): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Due to a counting error, the bottom part of the charts was too short. * Bars showing more than 50% in BUSY and BSYHOUR will be coloured red. * If run during an ongoing call, the lastline information saved will be that of the previous call. * Added SCREEN keyword for presentation in a shellwindow. * Added Busytime.env possibility. * Moved logfiles and datafiles to XConfig:Busytime/Data/. If using older version of Busytime, please create this path and move the files used by Busytime in XLog: there. * Fixed a severe bug when running the programme for the first time. No lastline information was saved, resulting in a re-read of old data when run a second time. CHANGES V1.4 -> V1.5 (Released 960114): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * I installed AFS on my Xenolink partition. I found that though AFS speeded up most thing conserning diskhandling, it severly slowed down the creation of files with Busytime! So I rewrote it to create the files in RAM: first and then copy the result to disk rather than creating them directly on disk. CHANGES V1.3 -> V1.4 (Released 960112): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Bug: Programme would save it's datafiles even if no new call was found. * Bug: Due to a division by zero, the programme would sometimes fail to create the totalstats file. * Added ALL argument which causes all charts to be created with one command. * Added NOSCAN argument, causing programme to not scan for new entries. * Added statistics for every hour. Keyword is BSYHOUR. * Cleaned up output to screen. * Moved header text to center of screen. CHANGES V1.2 -> V1.3 (Released 960103): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Big rewrite, changing configfile and way of running programme. * Added: Stats for uploads and downloads. * You now choose which stats to create, running with no args will only update datafile. CHANGES V1.1 -> V1.2 (Released 951213): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * BusyTime now copies the logfile to ram: before scanning it. * Buggfix: If no new calls were found, it would still show it found 1 call. * Buggfix: programme would redraw uploaded files even if there were no bytes uploaded, ie. transfer aborted before it had even begun. CHANGES V1.0 -> V1.1 (Released 951122): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Rewrote it so it no longer has to shut down the logserver. Instead it saves the last line to a file in XLOG:. To make the programme NOT scan from the beginning (new lastline recognition, remember) find the last answering line before the last busytime logline in the call-x.log file and copy this line to the lastline-file for that node. Did you REALLY get that? :) Or why not erase the datafile for that node alltogether, and restart the damned thing! :) Well, an answerline could look something like this: * 21-Nov-95 23:31:18 Answering modem Look for the last of those, that comes before the last one of these: | 11-14-1995 15:50:02 BusyTime * Found a bug that counted unsuccessful uploads. I'm using UPFid, so this may not work if you're not (using UPFid that is!). If a line that looks like this: Zmodem receive unsuccessful is found, the last read uploaded bytes will not count. (hmmm, I think I'll stop writing these docs! Drives me insane!) * Added visual information about the progress of the logscan. V1.0 Released 951114 ~~~~~~~~~~~~~~~~~~~~ WHAT IS IT: ~~~~~~~~~~~ A programme to create... * a file with statistics about what's in the Call-x.log for sysop's pleasure. * a textfile to show the users the upload statistics during last 75 days. * a textfile to show the users the download statistics during last 75 days. * a textfile to show the users how busy the BBS has been the last 75 days. * a textfile to show the users how busy the BBS is every hour. * a textfile to show the users how busy the BBS is every day of the week. INSTALLATION: ~~~~~~~~~~~~~ I HATE writing these docs! * Copy the BusyTime drawer with its content to Xconfig: * The programme will create five textfiles to show for the users called: OutputPath:Busy.txt OutputPath:Upload.txt OutputPath:Download.txt OutputPath:BusyHour.txt OutputPath:Busyweek.txt where is the nodenumber. Therefor, edit your bulletinmenu.src and add the files on this format: CMD = "Your_Command" { TypeFile "Busy1.txt" } * Edit the configfiles: TotalTemplate: =nodenumber This file is the template for the totalstats file that will be created in RAM: and you can edit it as you like. There are some autoinserts you can use: %DATE - The date the following data was collected [9] %C - Calls to BBS [3] %FC - Fidonet calls to BBS [3] %U - Uploaded files [3] %UB - Uploaded bytes [11] %D - Downloaded files [3] %DB - Downloaded bytes [11] %FS - Files send in fidonet session [3] %FSB - Bytes send in fidonet session [11] %FR - Files recieved in fidonet session [3] %FRB - Bytes recieved in fidonet session [11] %UCPS - Average CPS while uploading (and recieving in fidonet) [4] %DCPS - Average CPS while downloading (and sending in fidonet) [4] %BT - Busytime of BBS in HH:MM:SS [8] %P - Busytime of BBS in percent [2] The inserts will allways use the same space, wich is shown in brackets above. For more information, please have a look at the sample template. Remember to allways use capital letters! BusyTime.cfg This file contains information about the textfile to create for the users. There's one piece of data on each line and are as follows: Line Type of data Example Note ---- ------------ ------------ ----------------------------- 1 OutputPath Xenolink:Text/ Where the files should be located 2 DefaultColour  Colour for all other than bar 3 BarColour  Colour of the bar 4 Barchar # Char to use for bar 5 FirstStart 50 BUSY Explained later 6 FirstStop 30 BUSY Explained later 7 FirstDwn -5 BUSY Explained later 8 SecondStart 28 BUSY Explained later 9 SecondStop 0 BUSY Explained later 10 SecondDwn -2 BUSY Explained later Using the last six lines would create a chart listed from 50% to 30% with 5 less in each entry followed by 28% to 0% with 2 less in each entry. Thus would it look like this: 50 45 40 35 30 28 26 24 22 20 and so on... Get the picture? It decreases with 5 until it gets to 30 where it starts decreasing with 2 for better accuracy. The keyword BUSY must be entered after each value that relates to the busychart. Just like you have to enter UPLOAD after the numbers relating to the uploadchart, DOWNLOAD after numbers relating to the downloadchart, BSYHOUR after numbers relating to the busyhourchart and BSYWEEK after numbers relating to the busyweekchart. You MUST have the values for a chart in the config if you're planning to create such a chart. Otherwise you're bound to get an errormessage! For more info about the configfile, please look at the sample config that came with the programme! USAGE: ~~~~~~ BusyTime [TOTAL] [BUSY] [UPLOAD] [DOWNLOAD] [BSYHOUR] [BSYWEEK] [ALL] [NOSCAN] [SCREEN] [NOENV] [node#] By default, BusyTime creates no stats at all anymore! It only updates the datafile for the node entered, or for node 1 if no node is entered. Therefor you'll have to enter what statscharts to create. "BusyTime BUSY UPLOAD" would create busystats and uploadstats. "BusyTime TOTAL DOWNLOAD" would create totalstats and downloadstats. "BusyTime BUSY 2" would create busystats for node 2. "BusyTime ALL" would create all charts for node 1. "BusyTime ALL NOSCAN" would create all charts without scanning. ...and so on! Remember to allways put the nodenumber (if any) LAST! After the logfile for that node has been scanned, the last answeringline will be saved in a file called "BusyTimeX.Lastline", where X is the nodenumber, letting BusyTime know where to start looking for new entries the next time the programme is run. A logfile will be created in Xconfig:Busytime/Data/ with info and stats for the last 75 days (or less). This data will be used in the future for creating the charts... The keyword BSYHOUR creates a textfile with statistics about the hourly busyness of your BBS. The programme logges even how many days the statistics is for, and uses this to compute the average. It even checks what time of day it is when the chart is created, and for entries after current time of day, it will continue to use yesterdays data. On the current hour, it will check how much time of the hour that's gone by, and recalculate to get an exact value! The keyword SCREEN lets you view the charts directly in a shell window while creating the charts. You can create a file in ENV: called Busytime.env containing all the keywords you like except the node#. If you have created this file you don't have to enter these keywords at the commandline.If you don't want to use the keywords in ENV: you can enter NOENV as a keyword. REQUIREMENTS: ~~~~~~~~~~~~~ 2MB free memory LIBS:hbasic2.library XConfig:BusyTime/BusyTime.cfg XConfig:BusyTime/TotalTemplate XConfig:BusyTime/Data/ FOUND A BUG?: ~~~~~~~~~~~~~ If you by any chance should find a bug or any other nasty creatures, you can reach me at my BBS: Absolut BBS - +46 44 247248. Open 24h, every day of the week, every week of the year! You can also reach me at the following address: Ulf Nilsson Fadriften 53 S-296 33 Ahus SWEDEN (Not that I think anybody will actually write, but anyway...) Or you can use my FidoNet address: 2:200/621.0 Or why not my E-mail address : uni@absolut.ct.se THANKS: ~~~~~~~ ...for the next version of Xenolink with hopefully a LOT of bugfixes! :) EPILOGUE: ~~~~~~~~~ You can always find updates (if there are any) on my BBS as soon as they are finished. The number is listed above. Until the next door/util, see ya all in Microcosmos! Greetings.. __ __ _ __ // // /\ // _// // //\\// \\_//lf _// \/ilsson ..SysOp Absolut BBS!