NuSkooler / enigma-bbs

ENiGMA½ BBS Software
https://nuskooler.github.io/enigma-bbs/
BSD 2-Clause "Simplified" License
536 stars 104 forks source link

Add NNTP Support #184

Closed coolacid closed 4 years ago

coolacid commented 6 years ago

Adding NNTP Support would allow remote access to BBS message boards.

This should support read and write and ensure permissions.

NuSkooler commented 5 years ago

@coolacid / others: Can you elaborate more on what you're looking for here?

ENiG already supports FTN-style networks so you can get most messages that way. Are there networks that are NNTP only? For things like Usenet, there are some Usenet <> FTN gateway subs available (ie: on fsxNet)

streaps commented 5 years ago

I think it's more about reading FTN and BBS message boards with an NNTP client / newsreader. Like https://github.com/ftnapps/jamnntpd

NuSkooler commented 5 years ago

nntp-server looks fairly easy to embed as a content server similar to how Gopher exposes messages.

XBessa commented 5 years ago

Integrate JAMNNTPD functionality into Enigma would be awesome

Em dom, 9 de dez de 2018 às 19:07, Bryan Ashby notifications@github.com escreveu:

nntp-server https://github.com/nodeca/nntp-server looks fairly easy to embed as a content server similar to how Gopher exposes messages.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/NuSkooler/enigma-bbs/issues/184#issuecomment-445571808, or mute the thread https://github.com/notifications/unsubscribe-auth/AVWKYUIFbbeyxRt_6fbvKOvpUu9u5Q3Lks5u3XuZgaJpZM4TrmzN .

NuSkooler commented 5 years ago

I would not be integrating JamNNTPd as ENiGMA does not support JAM. My understanding is JamNNTPd simply allows access to JAM-backed message bases over NTTP. If that is the goal, it's certainly doable.

What are some popular clients that people use to access BBS message bases over NTTP? I'd like to test against what would be used.

XBessa commented 5 years ago

The problem is that a regular NNTP server does not recognize the TO: field, therefore any echomail written using a NNTP server will be automatically sent TO:ALL.

JAMNNTPD circumvents this, putting the correct data into the TO: field, allowing seamless usage of Thunderbird to read echomail, for instance.

JAM is just a detail, its functionality is what matters here.

Em dom, 9 de dez de 2018 às 20:45, Bryan Ashby notifications@github.com escreveu:

I would not be integrating JamNNTPd as ENiGMA does not support JAM. My understanding is JamNNTPd simply allows access to JAM-backed message bases over NTTP. If that is the goal, it's certainly doable.

What are some popular clients that people use to access BBS message bases over NTTP? I'd like to test against what would be used.

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/NuSkooler/enigma-bbs/issues/184#issuecomment-445579171, or mute the thread https://github.com/notifications/unsubscribe-auth/AVWKYfq0Iv5wXWz7uxfZPrKGaauZH82nks5u3ZKmgaJpZM4TrmzN .

NuSkooler commented 5 years ago

@XBessa Right -- I don't think JAM really isn't of any real relevance here: Serving up content over NNTP in a way that works with BBS style EchoMail is what I'm after -- things like the TO field you mention. Do you know of any others? Is there a spec anywhere? I can dig through JamNTTPd, but I'd rather have a spec :)

Sounds like I can use Thunderbird for testing though, so that's good.

streaps commented 5 years ago

DFeed is an awsome news reader for the web:

https://github.com/CyberShadow/DFeed https://forum.dlang.org/

NuSkooler commented 5 years ago

OK, here's what I'm currently planning - RFC!

This SS illustrates how the conf/area -> group mapping would look in Thunderbird: image

Another note: The system may need to start out read only under all cases -- It looks like I need to contribute to node-nttpd or create a from scratch implementation. The protocol is fairly simple, but a lot of caveats.

NuSkooler commented 5 years ago

Progress update: image

XBessa commented 5 years ago

You can find JAMNNTPD’s source code at

https://github.com/ftnapps/jamnntpd

I have it running at my Mystic system, let me know if you need a test account

Em seg, 10 de dez de 2018 às 14:44, Bryan Ashby notifications@github.com escreveu:

@XBessa https://github.com/XBessa Right. JAM really isn't of any real relevance here.

Serving up content over NNTP in a way that works with BBS style EchoMail is what I'm after -- things like the TO field you mention. Do you know of any others? Is there a spec anywhere? I can dig through JamNTTPd, but I'd rather have a spec :)

Sounds like I can use Thunderbird for testing though, so that's good.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/NuSkooler/enigma-bbs/issues/184#issuecomment-445884466, or mute the thread https://github.com/notifications/unsubscribe-auth/AVWKYYW8717uaPLuCzt1M6NSExz7FuwAks5u3o97gaJpZM4TrmzN .

NuSkooler commented 5 years ago

https://github.com/NuSkooler/enigma-bbs/pull/224 brings in read-only NNTP for testing. Posting/etc. to come soon.

NuSkooler commented 5 years ago

If anyone hook up to Xibalba's groups @ nntp://xibalba.l33t.codes:44514 and report how it's working, it would be appreciated.

tracker1 commented 5 years ago

Might also be worthwhile to look at Synchronet's NNTP files... Haven't looked, but does Enigma use a globally unique id for messages? Generally a message on NNTP should be globally unique-ish, so may want to either store the extra field in the DB so the same message doesn't come in twice... serving NNTP should be easy enough.

Also, would probably want to do a crc32 or md5 hash for collisions on message subject+body with front matter, and any signature/tear lines stripped... since there's some risk of potential dupes, but probably less necessary.

tracker1 commented 5 years ago

Aside, I wrote the logic to check for synch's To field lookup... adds the To field in the DB (NNTP header X-Apparently-To) ... if it's not specified, it will search for the replyto message, and use its' sender as the To field.

Synchronet nntpservice.js

NuSkooler commented 5 years ago

@tracker1 ENiGMA's NNTP is functional. You can use it and/or read the code here: https://github.com/NuSkooler/enigma-bbs/blob/0.0.10-alpha/core/servers/content/nntp.js

If there are specific issues, feel free to open them.

NuSkooler commented 4 years ago

Read-only NNTP access has been in for a while. Closing this ticket due to inactivity. If write support is desired, please create a new ticket.