+ = done
- = not done
? = not sure about/in progress
-----------------------------------------
TODO:
+ Correctly parse gopher:// URLs (for DDE)
+ Implement the 'Go' popup button for everything.
+ Allow simultaneous directory browsing and file transfer.
+ Stop writing when ".CR-LF" is recieved in ASCII file transfers.
+ Keyboard mapping.
- Editable bookmarks/history.
- Store history/file info in hash tables instead of variables.
- User-definable actions for itemtypes.
- Cache
- Gopher+
- Maybe make the UI prettier.
- Make select+copy "smarter"
- More bookmark options, such as 'Set current page as home'.
? Scripting improvements / Re-organization.
? Browse multiple sites at once (already done for file transfer).
? Make history/titlebar/bookmarks show info text.
? Error checking
-----------------------------------------
Changelog:
09/12/04 - Connects to a gopher server and (correctly?) parses the
pages.
So far it's possible to browse directories, and link
history is remembered.
$gettok wasn't impressed with gopher protocol, so I
borrowed $_gettok. It worked beautifully as soon as I
stuck it in, thanks MonoTeK.
09/13/04 - Implemented FullText search.
Implemented ASCII/BIN downloads. If the file exists it
will be overwritten. If the file is ASCII, it will be
opened in notepad, if it is binary, the download folder
will be opened. If the filename isn't sent by the server,
the remote folder name will be used, so you may have to
guess at filetypes. Downloads are currently "broken" sort
of, on some servers. Gopher protocol sends a "." at the
end of a menu/ASCII file, but I don't know how to read
from &binvars, so ASCII files will usually have a .<crlf>
at the end.
Implemented telnet support. Sends "user@host:port" - no
error checking yet.
Made some improvements, doesn't check for socket errors
yet but at least it won't clear the screen anymore until a
socket has been opened.
09/14/04 - A few little bugfixes.
Checks for socket errors.
Opens TXT/IMG files in notepad/iview.
Attempts to download unknown item types. If the item has
a ":" in the name,
Gayfer instead assumes it is a URL and prompts you to run
it.
The titlebar is more informative.
09/15/04 - Added some options (which will have to be set before using
gayfer.) Right-click the gayfer window.
~ Release of 0.1 ~
09/16/04 - Last window position/size/font will be remembered.
Window can be sent to the desktop.
History is viewable through the popup menu (VERY ugly.)
Titlebar is more informative.
'I' item type is no longer broken :p
Make sure a site exists before adding it to the history.
Don't add sites to history if they've been visited FROM
the history.
I broke history and had to re-write it :) Still buggy,
but more reliable.
Added Back/Stop/Home buttons to the popup menu. The stop
button can only end file transfers. I probably won't make
it end menu transfers, since my mIRC freezes during these.
~ Release of 0.2 ~
09/16/04 - 'Socket in use' error only appears if link text is clicked.
If a string with no tab characters is recieved during a
menu transaction, gayfer will display it as info text.
This usually occurs during a server error. Now gayfer can
show some menus that HGopher fails on :)
Font can be changed via the popup menu.
'Select viewer' dialogs are better.
Moved the 'Previous menu' dir and renamed it to '..'.
The 'Exec warning' info is now editable by the user.
Renamed $_gettok to $g.gettok so it doesn't conflict with
other scripts.
09/17/04 - Added a 'Go' button to the popup menu.
Changed the 'Stop' button to 'Stop transfer'. It will be
hidden unless a file transfer is in progress.
~ Release of 0.3 ~
09/17/04 - Added 'Link info' popup, which shows some extra info.
'Clear history' popup didn't remove the '..' link, so I
fixed that.
Revised the 'upcoming' section of the readme.
Revised the 'Exec warning' dialog. Now it is "mostly"
gopher-compliant.
I'll never make it run anything automatically though,
because items in a URL: selector aren't necessarily
pointing to websites.
09/18/04 - Half-assed bookmarking, to go with a half-assed gopher
client!
More error checking, and some other improvements.
~ Release of 0.4 ~
09/18/04 - Bug fix regarding bad filenames.
Popup menu to access Gayfer.
~ Release of 0.4.1 ~
09/19/04 - Some scripting improvements.
Added Select+Copy (expect improvements)
Bugfix: can now recover from sockerrs in the sockclose
script, I hope.
Added 'Properties' button to the popup menu.
The title bar now shows host:port/selector.
Added the beginnings of CSO PB. It is experimental, but
useable for the average nosey fellow. It's quite slow, so
be specific in your search! And please, don't abuse it.
09/20/04 - Better support for the 'w' item type. Seems harmless..
Sort of fixed a download bug, more improvements to it
later.
A web browser must be set in the 'Select viewer' menu.
~ Release of 0.5 ~
09/21/04 - %gayfer.file is once again unset properly, I forgot to
uncomment that..
The 'selector' line in 'Bookmark info' actually works now.
~ Release of 0.5.1 ~
10/10/04 - Don't try to download the Error ItemType (3)
Better checking for invalid Menus.
Better support for w/h ItemTypes with GET selectors, I
hope. Another one-up on HGopher.
Begin to use MonoTek's _numtok snippet (renamed to
g.numtok) because mIRC's $numtok can make Gayfer unhappy.
10/11/04 - If 'h' ItemType doesn't have a selector, assume it is a
URL and ask to run it. ~Another~ thing HGopher fails on.
I begin to wonder, if all these little patches are really
a good idea. ;)
If you know how to set up mIRC's DDE, you can use
mIRC/Gayfer as your default app for gopher protocol! A
basic DDE message would be "/gayfer -url %1", without
quotes. Ahh, the convenience of clicking gopher:// links.
Only the menu (DIR) ItemType is recognised, so far. This
is going to require a lot of rewriting.
~ Release of 0.6 ~
10/12/04 - Some improvements to the copy function.
10/13/04 - HUGE changes. Gayfer now operates (menus, FullText search
and files by gopher:// links, and also creates these links
from selectors. Old bookmarks won't work anymore. This
means that any fully-qualified gopher:// link will run
from the command line (or from your browser, if your
browser will pass gopher links to the system!) Also you
can just "/gayfer %1" in the DDE settings now.
Using g.gettok in places, instead of gettok to parse URLs
now.
10/15/04 - Send 'h' items with GET/ or GET / selectors to the browser
instead of trying to implement HTTP in Gayfer. If an 'h'
document called GET is actually on the gopher server,
there will be problems. I'm doing this because although
tricking both your gopher client and the web server by
using "GET /" selectors is a cool idea, it won't work for
every HTTP server. And if a webpage downloaded in that
manner doesn't use fully-qualified URLs for its navigation
you'll be going nowhere.
CSO PB output is more attractive but won't copy perfectly.
10/16/04 - Gayfer now stores the info text of items in its history,
in addition to links. Currently I've got this new info
hooked into the titlebar, but that will probably change
once I start losing my place in selectors ;) The info
text is stored by using $chr(1) as a delimiter, if an
actual selector uses $chr(1) there will be problems.
* History shows the info text, or the URL if history text
doesn't exist.
[*] At this point I got bored and quit..
11/19/04 ~ Release of 0.7 ~ (unfinished)
09/11/05 - Yesterday I brushed the dust off this to make a few minor
improvements. I discovered a bug in the search URL parser
so I rewrote the search function, made more improvements
today which involved re-writing yesterday's code.
The URL parser now takes hex-encoded tabs and whitespace
in URLs, so if you're using mIRC's DDE/registry stuff to
run gopher:// links all you have to have is /gayfer %1.
I also did a bit of work to the titlebar display to show
encoded tabs/spaces in URLs.
09/12/05 - Close the menu socket before going to a new URL (Moved
this code from the menu UI to g.m.init.
09/18/05 - Started multi-connections for transfers, and transfer UI.
10/04/05 - Got transfers working again (not fully linked to UI).
10/06/05 - Continuing work on file transfer, prompts to save file.
Started linking the UI: new file, delete buttons work. The
stop button ends the active transfer, but isn't dynamic.
Menu transfer data isn't shown in the titlebar for now but
will be re-added.
Renamed the script from Gayfer to GopherJ in anticipation
of a major release.
10/07/05 - File transfer UI: A finished transfer will now show a
'Retransfer' button instead of 'run'. Files can be run by
double-clicking a filename in the listbox.
Fixed the 'Go' popup (should work for all itemtypes).
10/08/05 - Got a tentative fix for the '.CR-LF in transfers'
bug. It stops writing the file if 'LF.CR-LF', 'CR.CR-LF',
or 'LF.LF' is received, and also removes the matching CRLF
string. It is only used for text transfer.
Default for GET/ selectors is now http:// in the warning.
~ Release of 1.0 ~
10/09/05 - Fixed a stupid typo in the 10/08 bugfix.
Added an on EXIT event to clean up variables, if mIRC is
closed while GopherJ is still open.
10/10/05 - Added 'Uninstall' and 'Readme' items to the main popup.
Added an on UNLOAD event for the uninstall popup.
Added a 'Refresh' item to the client popup.
10/11/05 - F5 re-fetches the current gopher menu.
ESC cancels the current menu/CSO PB transaction.
Moved most of the on SOCKCLOSE code to alias g.sockclose.
CTRL+left or Backspace will navigate the history.
CTRL+T will add the current page to bookmarks.
10/13/05 - Don't open the transfer window on the desktop if 'Use
desktop windows' is disabled.
Added g.m.close to the EXIT event.