• HTTPmodem

    From zharvek@46:1/118 to All on Sunday, February 25, 2018 15:00:54
    I've polished up my utility I'm calling HTTPmodem. It's a file transfer protocol for BBSes. It will allow a Sysop to upload, copy, build HTTP(S) URLs for users to download files from their BBS. You will need a web server of
    some sort to serve the files, and a 32-bit DOOR32.SYS BBS system.

    "Do you run a BBS and have file transfer options available to users? Do you have issues with X/Y/Z modem protocols? Are your users confused by these protocols because they just don't know them?"

    "When added to your BBS as a file transfer protocol option, the users will be able to get HTTP(S) links instead of the archaic X/Y/Z modem protocol offerings."

    "With a good telnet/ssh client or the fTelnet HTML5 applet users can copy/paste or in the case of fTelnet just CLICK on the URL and the file can be downloaded!"

    It can use SFTP, Jirafeau, URL Rewrite (fixed httpd served location URL+File Name), or File Copy (copy file to httpd served location).

    It supports URL shortening services, Archaic.Link (my free service), TinyURL, and Bit.ly.

    It can spit out a file transfer successful dummy DSZ style log that some BBS software needs to avoid some logging errors.

    It can give the Sysop/Users the ability to email themselves a list of the flagged/batched files and URLs to download them using a SMTP server. (More support will come soon for sending these emails).

    Almost all strings are able to be customized so you can word things your way for your board.

    Please check the readme.txt file inside archive for more information.

    Should note this will probably only help the Windows BBS Sysops, (written in .net 3.5) but I will publish source on my site if somebody wishes to port it.

    Fully tested with Mystic and with my custom coded system. Should work with Synchronet as it does the same calls for FTPs.

    Download: https://archaic.link/l.php?l=fos8wp3w6s
    You can demo it on Archaic Binary (https://www.archaicbinary.net) and flag
    then download a file.

    --- Mystic BBS v1.12 A38 2018/01/01 (Windows/32)
    * Origin: Archaic Binary (46:1/118)
  • From Static@46:1/195 to zharvek on Monday, February 26, 2018 04:36:22
    On 02/25/18, zharvek said the following...

    I've polished up my utility I'm calling HTTPmodem.

    Can't run it here but it looks handy.

    It can use SFTP, Jirafeau, URL Rewrite (fixed httpd served location URL+File Name), or File Copy (copy file to httpd served location).

    For options like sftp or copy, is there a time limit for the lifespan of the file? Or are destination files overwritten when a new version of the same filename is requested (eg: an updated network infopack)?

    Should note this will probably only help the Windows BBS Sysops,
    (written in .net 3.5) but I will publish source on my site if somebody wishes to port it.

    I'm not sure about porting from .Net but it might be possible to replicate the functionality through shell scripting.

    --- Mystic BBS v1.12 A38 2018/01/01 (Linux/64)
    * Origin: Subcarrier BBS (46:1/195)
  • From Nightfox to zharvek on Monday, February 26, 2018 12:47:43
    Re: HTTPmodem
    By: zharvek to All on Sun Feb 25 2018 03:00 pm

    I've polished up my utility I'm calling HTTPmodem. It's a file transfer protocol for BBSes. It will allow a Sysop to upload, copy, build HTTP(S) URLs for users to download files from their BBS. You will need a web server of some sort to serve the files, and a 32-bit DOOR32.SYS BBS system.

    Fully tested with Mystic and with my custom coded system. Should work with Synchronet as it does the same calls for FTPs.

    Does it know how to generate the URLs from the Synchronet filebase? Seems like it might have to know how to access the Synchronet filebase to know how to generate the FTP link. As far as I know, Synchronet currently does not provide external APIs for accessing its filebase (at least for JavaScript)..

    Nightfox
  • From zharvek@46:1/118 to Static on Tuesday, February 27, 2018 12:27:32
    For options like sftp or copy, is there a time limit for the lifespan of the file? Or are destination files overwritten when a new version of the same filename is requested (eg: an updated network infopack)?

    At the moment SFTP does a overwrite of the file, Jirafeau handles duplicates
    on its own and serves the original (saving bandwidth), URL Rewriting does nothing with this, and File Copy (at the moment) checks for existing file and skips if it exists serving original.

    I'm going to add flags to overwrite always if that's desired behavior.

    I'm not sure about porting from .Net but it might be possible to
    replicate the functionality through shell scripting.

    I'm sure all of this is possible using basic BASH and shell utilities on *nix.

    --- Mystic BBS v1.12 A38 2018/01/01 (Windows/32)
    * Origin: Archaic Binary (46:1/118)
  • From zharvek@46:1/118 to Nightfox on Tuesday, February 27, 2018 12:35:33
    Does it know how to generate the URLs from the Synchronet filebase?
    Seems like it might have to know how to access the Synchronet filebase
    to know how to generate the FTP link. As far as I know, Synchronet currently does not provide external APIs for accessing its filebase (at least for JavaScript)..

    This was written in mind for any 32-bit BBS software so nothing specific to Synchronet. Since it is supposed to plugin to your BBS as a FTP, it's passed the list of files to 'send' like sexyz.exe would. It goes over the file list and for each does the requested action.

    If you wanted to use the Synchronet filebase (and it's publicly accessible) you can set the URL in the INI to be say "ftp://bbs.domain.com/" and when choosing the FTP at download it will spit out "ftp://bbs.domain.com/<filename>". Now if your files are in say "ftp://bbs.domain.com/<filearea>/<filename>" I will
    try to add a flag to take the subdirectory/file area and append it as well.

    This would use the 'upload option' in the INI as 2 'static url rewrite'. I don't use Synchronet, but is the above what your thinking?

    --- Mystic BBS v1.12 A38 2018/01/01 (Windows/32)
    * Origin: Archaic Binary (46:1/118)
  • From Nightfox to zharvek on Tuesday, February 27, 2018 11:53:59
    Re: HTTPmodem
    By: zharvek to Nightfox on Tue Feb 27 2018 12:35 pm

    If you wanted to use the Synchronet filebase (and it's publicly accessible) you can set the URL in the INI to be say "ftp://bbs.domain.com/" and when choosing the FTP at download it will spit out "ftp://bbs.domain.com/<filename>". Now if your files are in say "ftp://bbs.domain.com/<filearea>/<filename>" I will try to add a flag to take the subdirectory/file area and append it as well.

    This would use the 'upload option' in the INI as 2 'static url rewrite'. I don't use Synchronet, but is the above what your thinking?

    Not sure.. It sounds like that would require manually adding an FTP URL for every file available for download on the BBS in order to work with this transfer protocol?

    Nightfox
  • From zharvek@46:1/118 to Nightfox on Tuesday, February 27, 2018 15:59:17
    Not sure.. It sounds like that would require manually adding an FTP URL for every file available for download on the BBS in order to work with this transfer protocol?

    Nah, this protocol is given the full path of all the batch queued files you send it, like dsz or sexyz would. It just takes those paths (and files) and displays them as URLs for the user to copy/paste/click on.

    Where the files are in relation is the other portion. This program can copy/upload/(do nothing) the requested files so they are servable via another server like Apache, Lighttpd, Ngnix, or the HTTP/FTP server built into Syncronet. So the user can download over HTTP/FTP instead of x/y/zmodem.

    Now if you have to use the 'url rewrite' feature, this is more complicated as yes, your paths would need to match the directory structure of the running http/ftp server. In that case, I would use the copy feature instead, and then have a script run nightly that removes the copies if the file date is older then say three days.

    My setup takes the selected files and uploads them to my public web server, and presents the URL of that uploaded file to the end user. Using SyncTERM they can copy/paste the URL or using fTelnet they can just click the url and it will start the download.

    --- Mystic BBS v1.12 A38 2018/01/01 (Windows/32)
    * Origin: Archaic Binary (46:1/118)
  • From g00r00@46:1/127 to zharvek on Wednesday, February 28, 2018 20:00:40
    I've polished up my utility I'm calling HTTPmodem. It's a file transfer protocol for BBSes. It will allow a Sysop to upload, copy, build HTTP(S) URLs for users to download files from their BBS. You will need a web server of some sort to serve the files, and a 32-bit DOOR32.SYS BBS system.

    Just a note: Not sure if its the same thing...

    Mystic already allows users to download their "batch queue" when logged into the telnet BBS via FTP/web browser. It can optionally generate an expiring dynamic URL for that particular user where they can connect and browse/download the files they've queued with an FTP client or web browser.

    What you have is an interesting idea! I'm surprised no one has created something like this designed to be an external protocol in the past! Very cool!

    --- Mystic BBS v1.12 A39 2018/02/28 (Windows/32)
    * Origin: Sector 7 [Mystic BBS WHQ] (46:1/127)
  • From zharvek@46:1/118 to g00r00 on Thursday, March 01, 2018 08:51:46
    Mystic already allows users to download their "batch queue" when logged into the telnet BBS via FTP/web browser. It can optionally generate an expiring dynamic URL for that particular user where they can connect and browse/download the files they've queued with an FTP client or web browser.

    Neat, can you point me in the direction to explore this? I would love to read more and try some things out.

    --- Mystic BBS v1.12 A38 2018/01/01 (Windows/32)
    * Origin: Archaic Binary (46:1/118)
  • From zharvek@46:1/118 to g00r00 on Thursday, March 01, 2018 09:00:42
    Hey g00r00,

    I'm trying to setup a 'send NS menu option' from outside the BBS (command line).

    First question, when the NS option is used it uses theme lines 179 and 180. I modified those lines so it won't clear the screen, it just XY to a specific area and prints the broadcast text. Is there a way to not 'restore' the
    screen after message is received? It seems to repaint the previous screen (erasing the message). I currently use a few |DE to pause. Anyway to just
    leave the text and let the user navigate the menus (which will clear it anyway)?

    Second, while trying to send NS from the command line, im looking at MPS
    files bulletin.mps which refers to ParamStr(1) and menucmd.mps which refers
    to ProgParams. I cant seem to pass the string into the program when using mystic -Uxxx -Pxxx -Xmenucmd "0;Testing". I'm sure I am doing this incorrectly.

    I suppose my question is how do you pass a string argument into the MPX file so it can be ran externally. (I want to build a broadcast system).

    Thanks for all your help!

    --- Mystic BBS v1.12 A38 2018/01/01 (Windows/32)
    * Origin: Archaic Binary (46:1/118)
  • From g00r00@46:1/127 to zharvek on Thursday, March 01, 2018 14:31:29
    First question, when the NS option is used it uses theme lines 179 and 180. I modified those lines so it won't clear the screen, it just XY to
    a specific area and prints the broadcast text. Is there a way to not 'restore' the screen after message is received? It seems to repaint the previous screen (erasing the message). I currently use a few |DE to
    (which will clear it anyway)?

    Not really, because those messages can be shown at any time which would distort the user's screen if Mystic wasn't able to restore the screen afterwards.

    What are you trying to accomplish where you'd not want the screen restored?

    refers to ProgParams. I cant seem to pass the string into the program
    when using mystic -Uxxx -Pxxx -Xmenucmd "0;Testing". I'm sure I am doing this incorrectly.

    It looks like you are not giving it a menu command to run and you need to enclose the entire option in quotations if there are spaces. I'm not in a place where I can try it or reference the command line syntax but it should be something close to:

    "-Xmenucmd NS 0;Testing"

    I have it on the "todo" list to add a "broadcast" option to Nodespy so you
    can send messages from the command line: "nodespy.exe broadcast This is a message!" Although I may add this to "mystic.exe" instead.

    --- Mystic BBS v1.12 A39 2018/03/01 (Windows/32)
    * Origin: Sector 7 [Mystic BBS WHQ] (46:1/127)
  • From g00r00@46:1/127 to zharvek on Thursday, March 01, 2018 14:44:35
    Neat, can you point me in the direction to explore this? I would love to read more and try some things out.

    You can read about it in the A39 whatsnew file.

    --- Mystic BBS v1.12 A39 2018/03/01 (Windows/32)
    * Origin: Sector 7 [Mystic BBS WHQ] (46:1/127)
  • From zharvek@46:1/118 to g00r00 on Thursday, March 01, 2018 15:15:41
    Not really, because those messages can be shown at any time which would distort the user's screen if Mystic wasn't able to restore the screen afterwards.

    Understood, all the areas this could be used I have a line dedicated to broadcast messages, events, and all that. Maybe an option somewhere to clear/restore or not? I'll try using the popup message window for now and see if it fits for me. I was trying to be a little more slick with them.

    It looks like you are not giving it a menu command to run and you need to enclose the entire option in quotations if there are spaces. I'm not in
    a place where I can try it or reference the command line syntax but it should be something close to:

    I actually got it working mystic... -X"sendmsg 0;"%1 in a batch file sends correctly using the example lines from menucmd.mps

    I have it on the "todo" list to add a "broadcast" option to Nodespy so
    you can send messages from the command line: "nodespy.exe broadcast This is a message!" Although I may add this to "mystic.exe" instead.

    Would be neat, also if you could make it take arguments. I'm piping in
    messages and events from other sources and applications on this server.

    --- Mystic BBS v1.12 A38 2018/01/01 (Windows/32)
    * Origin: Archaic Binary (46:1/118)