Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add NNTP Support #184

Closed
coolacid opened this issue Apr 28, 2018 · 17 comments
Closed

Add NNTP Support #184

coolacid opened this issue Apr 28, 2018 · 17 comments
Labels
enhancement good first issue Fairly easy to pick up and go!

Comments

@coolacid
Copy link
Contributor

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

This should support read and write and ensure permissions.

@NuSkooler
Copy link
Owner

@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
Copy link

streaps commented Dec 9, 2018

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

@NuSkooler
Copy link
Owner

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

@NuSkooler NuSkooler added enhancement good first issue Fairly easy to pick up and go! labels Dec 9, 2018
@XBessa
Copy link

XBessa commented Dec 9, 2018 via email

@NuSkooler
Copy link
Owner

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
Copy link

XBessa commented Dec 9, 2018 via email

@NuSkooler
Copy link
Owner

NuSkooler commented Dec 10, 2018

@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
Copy link

streaps commented Dec 11, 2018

DFeed is an awsome news reader for the web:

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

@NuSkooler
Copy link
Owner

NuSkooler commented Dec 12, 2018

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

  • Similar to the built in Gopher server, +ops can set conf/areas as "publicly" exposed. That is, the confs/areas exposed will be available over NNTP anonymously as read only. This would be available for non-secure (NNTP / plain text), and secure (NNTPS / TLS) connections.
  • For secure (NNTPS / TLS) connections only: Authenticated users (using your regular username + password) can access confs/areas as per normal ACS rules allow.
  • Conference / Area Tags will map to NNTP groups. For example, given a conf tag of "fsxNet" and an area tag of "fsx_bbs", NNTP clients will see "fsxnet.fsx_bbs".

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
Copy link
Owner

Progress update:
image

@XBessa
Copy link

XBessa commented Dec 12, 2018 via email

@NuSkooler
Copy link
Owner

#224 brings in read-only NNTP for testing. Posting/etc. to come soon.

@NuSkooler
Copy link
Owner

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

@tracker1
Copy link

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
Copy link

tracker1 commented Jun 27, 2019

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
Copy link
Owner

@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
Copy link
Owner

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement good first issue Fairly easy to pick up and go!
Projects
None yet
Development

No branches or pull requests

5 participants