{"id":17988745,"url":"https://github.com/taviso/nntpit","last_synced_at":"2025-04-09T21:19:58.643Z","repository":{"id":40651465,"uuid":"334888441","full_name":"taviso/nntpit","owner":"taviso","description":"minimalist reddit2nntp gateway","archived":false,"fork":false,"pushed_at":"2022-05-01T21:29:46.000Z","size":352,"stargazers_count":253,"open_issues_count":6,"forks_count":10,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-04-09T21:19:29.875Z","etag":null,"topics":["nntp","reddit","usenet"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taviso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-01T08:59:05.000Z","updated_at":"2025-02-16T03:21:20.000Z","dependencies_parsed_at":"2022-08-10T00:00:40.665Z","dependency_job_id":null,"html_url":"https://github.com/taviso/nntpit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taviso%2Fnntpit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taviso%2Fnntpit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taviso%2Fnntpit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taviso%2Fnntpit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taviso","download_url":"https://codeload.github.com/taviso/nntpit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248111996,"owners_count":21049582,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nntp","reddit","usenet"],"created_at":"2024-10-29T19:12:40.508Z","updated_at":"2025-04-09T21:19:58.613Z","avatar_url":"https://github.com/taviso.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nntpit\n\nThis is a simple reddit2nntp gateway server that lets you use a newsreader to\nfollow discussions on reddit. The intention is for you to run it locally, tell\nyour newsreader to connect to localhost, and subreddits will appear as\nnewsgroups!\n\n![Slrn Headers](doc/screenshot.png)\n\n![Slrn Article](doc/article.png)\n\n\u003e This software is in an early experimental state: you **will** encounter bugs.\n\n# Building\n\nYou need `libev-dev`, `libglib2.0-dev`, `libjson-c-dev`, and `libcurl4-openssl-dev`.\n\nTo make the configure script:\n\n```bash\n$ autoreconf -i\n```\n\nNow type the usual `./configure`, and `make`.\n\n# Usage\n\n## General usage with slrn\n\n`$ ./nntpit -D -p 8119`\n\nNow connect your newsreader; if you use slrn, you would do this:\n\n`$ NNTPSERVER=news://localhost:8119 slrn -f reddit --create`\n\nThe groups list will be empty at first, but don't worry: that's normal.\n\nPress `a` to add a group, and type the name of the subreddit you want to subscribe to.\n\n![Adding a subreddit](doc/addgroup.png)\n\n\u003e Don't include the `/r/`!\n\nIt should populate a list of articles and comments for you to read.\n\n## Usage with other clients\n\nSome clients need the server to be first taught about the subreddits you want to\nread so they can be added to the database.  You only need to specify them\non the command line one time:\n\n`$ ./nntpit -D -p 8119 retrocomputing usenet classicusenet`\n\n### Usage with tin\n\nStart tin:\n\n`$ tin -r -g localhost -p 8119`\n\nThe groups list will be empty at first, but don't worry: that's normal.\n\nPress `S` to add a group, and type the name of the subreddit you want to subscribe to\n(eg 'usenet' for /r/usenet).\n\n### Usage with Thunderbird\n\nStart Thunderbird, go to menu -\u003e Account Settings -\u003e Account Actions -\u003e Add\nOther Account.  The Account Wizard appears.\n\nSelect Newsgroup account, Next, your name and email address can be whatever\nas they aren't used (but must look like an email address), Next.  Newsgroup\nServer should be 'localhost', Next, Account name can be whatever you like,\nNext, Finish.\n\nThe account with your given name should appear in the Account Settings\nsidebar.  Click on Server Settings and change the port number to 8119. \nClose the account settings window.\n\nIn the main folders window the account should show in the sidebar.  Click on\nit, click 'Manage newsgroup subscriptions'.  The subreddits that nntpit\nknows about should be shown.  Tick the ones you want to read and click OK.\n\nThe subreddits should now appear in the sidebar and you can click to open\neach one up and read the messages.\n\n# Reporting Bugs\n\nIf you're using slrn, please include the `--debug` and the nntpit `-D` log.\n\nIf you're not using slrn, please include as much detail as you can, and include any\ndebugging logs your software can generate. Please be willing to help test!\n\n# Credit\n\nThe NNTP code is based on [nntpsink](https://github.com/unixwitch/nntpsink) by\nFelicity Tarnell (@unixwitch).\n\nAll other code is by @taviso.\n\n# Why?\n\nI prefer to read discussions in a newsreader. There are many powerful features\nthat we never got back when the world moved away from usenet.\n\nThere are the simple things like keeping track of which posts you've read or\nhaven't seen yet, and customizing how threads are sorted and displayed.\n\nThere's more advanced features like tagging, watching, ignoring, and so on. Have you\never been following a discussion, but it's wandered off topic and people are now\ndiscussing something you're not interested in? Well, newsreaders let you ignore\nsubthreads, but continue reading the rest without the clutter.\n\nThen there are poweruser features, like scoring and macros.\n\n## Scoring\n\nMost newsreaders will let you adjust the score of an article based on rules. A\npost with a high score will be higlighted, low scores might be dimmed, and very\nlow scores might be completely hidden. You could also sort by score, so the best\ncomments are at the top, and you read those first.\n\nThe simplest example would be if there's a user whose posts you always enjoy you\ncan score their posts higher. Their comments will be hilighted and you'll never\nmiss them.\n\nYou can chain complicated sets of rules together, really customizing your\nexperience. Let's say you want to highlight all the cookie recipes posted by\ncookielover22, unless they contain the word \"chocolate\" because you're allergic.\nNo problem: you can do that too.\n\nHow about assigning scores for different ingredients you like, then sorting all\nthe comments by score?\n\n| Keyword    | Score  |\n| ---------- | ------ |\n| Chocolate  |  -10   |\n| Raisins    |  +20   |\n| Nuts       |  +15   |\n\nNow a post for \"New Recipe for Chocolate Raisin Brownies!!\" will be scored -10+20+15 = 25, and\nso on.\n\nIf you want to read about scoring, the slrn documentation is [here](https://slrn.info/docs/score.txt).\n\n# How?\n\nI have only tested this with the newsreader I use, slrn.\n\nIt *might* work with other newsreaders, but most likely I will need to make some\nchanges. If you're willing to help with testing to get it working, then file an\nissue and let's see if we can make it work!\n\n# What about...\n\n## Gwene\n\n\u003e Gwene is an rss2nntp gateway, reddit supports rss so why not use that?\n\nRss doesn't support threading, and makes each story appear as a new group.\n\nYou need to subscribe to every single story, and miss out on half the features,\nso it just doesn't work.\n\n## Posting\n\n\u003e Can I post replies?\n\nNo, reading only. Maybe one day.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaviso%2Fnntpit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaviso%2Fnntpit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaviso%2Fnntpit/lists"}