ATDT Demo board online

Documentation · chapter 23

File Areas

The other half of a bulletin board. Callers upload and download right from the terminal, and you stock the shelves from the console or over FTP.

New in ATDT 1.8.0 · back to the manual

#How it works

Callers upload and download from the terminal. You stock the areas from the console, or by FTP and a scan. If you run message areas, most of this is already familiar. Categories are the shelves and areas sit on them. Each area has its own access strings. Every caller has a current file area, and a menu item can aim at one area or ask the caller to choose.

Nothing to switch on. File areas arrive with the upgrade, stocked with a Files shelf and one General area. Every economy ships off, the daily download limit included.
23.1

#What callers see

Reaching the file areas

A stock board has File Areas on MAIN under F, and it leads to the FILES menu. On an upgraded board the key is F if F was free, or else the first free digit; the Dashboard tells you once which one it took. When no key was free at all, the item sits on MAIN hidden and keyless until you give it one on the Menus page.

A MAIN drawn from a picture or a template will not show the new key by itself. Draw it in, or move the item.

The FILES menu as shipped:

KeyItemWhat it does
LList filesThe file list of the caller's current area.
NNew filesEvery area with something new since the caller's previous call, one area at a time.
SSearch filesNames and descriptions across every area the caller may read.
UUpload a fileAn upload into the current area.
AChange file areaThe area picker.
QBackBack to MAIN.

No switch turns the feature off. A board that wants no file areas removes the key from MAIN.

The file list

The header carries the area's name, its file count, how many of those are new to this caller, and their total size. When a ratio or file points are on, the caller's standing follows.

Each file takes two rows. The first holds the number, a flag, the name, the size, the date it was listed, the download count and the uploader. Under it sits the first line of the description.

The flag column shows * for a file new since the caller's previous call, and h for the caller's own upload while it waits for your approval. A held upload shows only to its uploader and to you.

KeyAction
Arrows, Home, End, PgUp, PgDnMove the bar, and page.
EnterView the file.
DDownload the file under the bar.
UUpload into this area.
NShow only what is new. N again shows everything.
SSearch.
OFlip the order between newest first and by name. The board remembers the choice for each caller.
AChange area.
Q or EscBack to the menu.

Viewing a file

Enter opens the file's page: the full name, the exact size, who listed it and when, the download count, and the first twelve characters of its SHA-256 hash. A status line says whether the file is new since the caller's last call or already seen, and a held upload says so. The whole description follows.

One longer than thirteen lines pages. Space or PgDn shows the next page, PgUp the one before. D downloads. N and P walk to the next and previous file in the list the caller came from, and Q goes back.

Downloading

D hands the browser a short-lived link, and the browser saves the file under its listed name. The screen says the file is on its way, and that a browser which asks first will have put up its own prompt. Enter fetches the file again; any other key returns to the list.

The link lives ten minutes (a setting) and allows a few fetches, so a browser that retries or resumes a broken download can. A download counts when the bytes start to move.

A download is refused, with the reason on the message row, when the area is closed to the caller, when the daily download limit is reached, when the caller's ratio is spent, or when the file costs more points than the caller holds. The SysOp is never refused.

Uploading

U opens the upload screen for the current area. It says what the area does with uploads, held for your approval or listed at once, and the largest file the board takes. Enter opens the browser's file chooser, and so does a tap on a phone. A file dropped anywhere on the page is taken too. Esc cancels.

The name and the size are checked before a byte crosses. The board refuses at once, and offers the chooser again, for a file bigger than the limit, a name it cannot use, a name already in the area, or the same bytes already on the board under any name.

Then the bytes cross in pieces small enough for a shared host, with a progress bar in the box. When the file is whole, the description editor opens: up to twenty lines of seventy-six columns, filled in from the FILE_ID.DIZ (or DESC.SDI) inside a zip when the board is set to read it. A description shorter than the minimum is sent back for more. Ctrl+S saves. Esc in the editor throws the whole upload away.

An upload into an area that holds uploads waits for you. The caller is told so, and sees the file in the list marked h until you approve or refuse it. In an area that lists at once, the file is listed straight away and earns file points if points are on. Uploads are refused outright in an area closed to them, and in any area whose Write ACS the caller does not pass.

New files

N on the FILES menu walks every area that has something new for the caller, one area at a time, showing only the new files. Space moves on to the next area and Q stops the walk; the usual list keys work inside each area. New means listed since the caller's previous call, so a first call sees nothing as new.

Inside a list, N narrows that one list to its new files.

Search

S asks for words or a name. The search runs over file names and descriptions in every area the caller may read, and ignores case. * and ? are wildcards (*.zip, lord?.*); a search with no wildcard matches anywhere in the text. Each hit shows its area, and the hit list takes the same keys as a file list. Two hundred hits at most.

Changing area

A opens the area picker: the areas on their shelves, numbered, each with its file count and the caller's new count. Categories head their groups, and areas with no category sit under "Other Areas". The caller picks by number, or with the arrows and Enter. The choice becomes the caller's current file area and lasts across calls.

Only areas whose Read ACS the caller passes are listed. An unlisted area stays out of the picker, though a menu item that names it still gets there.

23.2

#Setting up areas

File Areas in the console rail opens the page. The rail entry shows how many uploads are waiting for you.

Categories

Categories are the shelves of the picker. Add one, rename it, move it up or down, or delete it. Deleting a category leaves its areas in place, uncategorized.

Areas, field by field

Add an area, or edit one from the list.

TagShort and unique: A to Z, 0 to 9 and underscore, two to twelve characters. The stock folder is named after it. INCOMING is refused, because the board keeps uploads in flight under that name.
NameUp to forty characters, shown to callers.
DescriptionUp to a hundred characters, shown beneath the name in the picker.
CategoryThe shelf it lists under.
Read ACSWho may open the area and download from it. Blank is everyone. The ACS cheat sheet is on the message Areas page, and chapter 8 has the grammar.
Write ACSWho may upload here. Blank is everyone. This one is enforced, the first Write ACS the board honors, because uploads take disk.
ListedUnchecked keeps the area out of the general picker. A menu item that names it still reaches it. Listed decides what the picker shows; privacy is the Read ACS's job.
UploadsHeld for your approval by default. Switch it to listed at once, or to closed for no uploads at all.
Free areaDownloads here count against nothing, and uploads here earn nothing.
FolderBlank keeps the files under data/files/TAG. Otherwise, an absolute path on the server, outside the web root and outside the board, where you put files by FTP or SSH. The board makes the folder if it can.
ArtKept for a later release. Nothing shows it yet.

Arrows move areas up and down within their category. Renaming a tag moves the stock folder with it. Delete refuses an area that a menu names, as a targeted item or a default file area, and an area that still holds files: clear the references and move or delete the files first.

The Files tab

Pick an area and the tab lists its files, with the folder's path above them. Each row carries the name with the first description line, the size, the date it was listed, the uploader, the download count and the status. Files the scan found give "the folder" as their uploader. A file gone from the disk shows "missing on disk". The Held button shows every held upload across all areas.

For a held upload:

  • Approve lists it. If file points are on, the uploader earns them now.
  • Refuse removes it and sends the uploader a letter. The reason field starts out with the canned text ("Sorry, but the SysOp did not approve your file."). Edit it for this one file, or blank it to send no letter at all. The canned text is the theme string files.refusal_letter, and its subject is files.refusal_subject.

For any file, edit changes the name and the description, and the file on disk is renamed with it. Move puts it in another area, disk and all. Download fetches it to your browser. Delete marks it deleted.

A deleted file keeps its bytes until Purge deleted files on the Database page removes them. If another file takes its name before then, the deleted one is retired on the spot.

Uploading from the console

Upload into the area takes a file from your browser and lists it at once under your name. This form is bound by the host's upload limit, which the page shows. Callers upload in pieces and are not. A bigger file goes into the folder by FTP or SSH, and the scan lists it.

Scan the folder

Scan the folder lists every file in the area's folder the board does not know yet, under your name, up to two hundred a pass. Press it again for the rest.

Descriptions come from a FILES.BBS in the folder when there is one, or else from the FILE_ID.DIZ inside a zip. Failing both, the file reads "No description" until you edit it.

The scan skips subfolders, dotfiles, symbolic links, the index itself, names a web server might run, files whose bytes are already listed elsewhere on the board, and names that belong to deleted files not yet purged. A file that was there before and has since vanished shows "missing on disk" in the list.

FILES.BBS

The index format of the era. One entry per line: the file name, spaces, then the description. A line that starts with a space, a dash, a plus or a bar continues the entry above it. The file may be UTF-8 or CP437, and the board reads the first megabyte.

an example index LORD407.ZIP Legend of the Red Dragon 4.07 Apply the 4.08 patch before running LORDCFG TW2002.ZIP TradeWars 2002 | Run the installer from the door's Maintenance page
23.3

#Settings and the economies

Settings, File areas:

SettingDefaultMeaning
Max upload10 MBThe largest file a caller may send, 1 to 4096 MB.
Minimum description length10Characters an upload's description must have, 0 to 500.
Read FILE_ID.DIZ out of uploaded zipsonThe description an archive carries fills the editor in.
Show who uploaded a fileonOff hides the uploader in lists and on the file's page.
Daily download limit0Downloads a caller may make in a board day. 0 is no limit, and the SysOp never counts.
Download ticket minutes10How long a download link stays good after D, 1 to 1440.
Ratio0Downloads allowed per upload. 0 is off.
Grace10Downloads every caller gets before the ratio applies.
File pointsoffUploads earn them, downloads spend them.
Starting points100What every caller begins with.
Points per 10 KB uploaded4Earned when the upload is listed.
Points per 10 KB downloaded1Spent when the download starts.

Both economies ship off. A board that wants the 1993 feel turns them on here.

The ratio. A caller may download up to their uploads times the ratio, plus the grace. The next download past that is refused.

File points. A caller's balance is the starting points, plus what their uploads earned, minus what their downloads cost. Uploads earn when they are listed: on your approval, or at once in an area that lists directly. Downloads cost when they start, and a file that costs more than the balance is refused. Raise the starting points later and every caller moves alike.

A free area counts for nothing under either one. While either is on, the file list's header shows the caller's standing, and the Users page shows a caller's balance and lets you change it.

23.5

#Codes

Seven live-text codes join the ones the board already fills in wherever text is shown (Appendix B has the full list). The caller's help lists them on its F page.

CodeBecomes
%FAThe caller's current file area
%FDThat area's description
%FCFiles in that area
%FNFiles in it new to the caller
%FTFiles on the whole board
%FUFiles the caller has uploaded
%FPThe caller's file points; blank while points are off

Inside a box, put an exclamation mark in front (!%FA) so the value stamps in place and the border stays put.

23.6

#On the Users page

A caller's card shows their uploads and downloads beside their calls and posts. While file points are on, the card shows the balance as well, and you can set it.

23.7

#Backups

The Backup tab on the Database page has an Include file areas checkbox. The page shows what a backup would weigh with the files and without them, and warns past half a gigabyte. A restore from a backup made with the files puts them back.

Only the stock folders under data/files go in. An area with a Folder of your own outside the board is yours to back up. The rest of backing up and restoring is in chapter 19.

23.8

#On disk

Each area's files live under data/files/TAG, or in the folder you named, under their listed names. Anyone with FTP access can read the folder as it stands. Uploads in flight sit in data/files/incoming and are swept an hour after they stall. The web server cannot serve either folder. Every download goes through the board's own link.

data/files/ <TAG>/ one folder per area, named for its tag incoming/ uploads in flight, swept an hour after they stall

Names

A listed name is printable ASCII, up to a hundred and twenty characters. Accented letters are transliterated where they can be, and characters a path or a header cannot carry are removed. Two kinds of name are refused: the Windows device names (CON, PRN, AUX, NUL, COM1 to COM9, LPT1 to LPT9), and anything a web server might run (.php and its relatives, .cgi, .pl, .shtml, .htaccess, .htpasswd, web.config). Names are unique within an area, whatever the case.

23.9

#Theme copies

A board with its own strings.ini gets two new sections, [fareas] and [files], and a reworked [help]. The help is a menu with pages now, and help.more is gone. The Dashboard says so once after the upgrade.

Until your copy carries the new keys, the board uses its own defaults for them. The refusal letter's wording lives in [files] too, so a themed board can turn down an upload in its own voice. Chapter 11 covers theme copies in general.

↑ Back to the top