Metadata-Version: 2.4
Name: oldnews
Version: 1.4.2
Summary: A terminal-based client for TheOldReader
Keywords: atom,client,Google Reader,RSS,TheOldReader,terminal,news-reader,news
Author: Dave Pearson
Author-email: Dave Pearson <davep@davep.org>
License-Expression: GPL-3.0-or-later
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet
Classifier: Topic :: Terminals
Classifier: Typing :: Typed
Requires-Dist: bagofstuff>=0.2.0
Requires-Dist: beautifulsoup4>=4.14.3
Requires-Dist: html-to-markdown>=3.4.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: humanize>=4.15.0
Requires-Dist: oldas>=1.0.0
Requires-Dist: pyperclip>=1.11.0
Requires-Dist: textual>=7.4.0
Requires-Dist: textual-autocomplete>=4.0.6
Requires-Dist: textual-enhanced>=1.3.0
Requires-Dist: tortoise-orm>=0.25.4
Requires-Dist: types-pyperclip>=1.9.0.20250801
Requires-Dist: xdg-base-dirs>=6.0.2
Requires-Python: >=3.12
Project-URL: Homepage, https://github.com/davep/oldnews
Project-URL: Repository, https://github.com/davep/oldnews
Project-URL: Documentation, https://github.com/davep/oldnews/blob/main/README.md
Project-URL: Source, https://github.com/davep/oldnews
Project-URL: Issues, https://github.com/davep/oldnews/issues
Project-URL: Discussions, https://github.com/davep/oldnews/discussions
Description-Content-Type: text/markdown

# OldNews - A terminal-based client for TheOldReader

![OldNews](https://raw.githubusercontent.com/davep/oldnews/refs/heads/main/docs/images/oldnews-social-banner.png)

[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/davep/oldnews/style-and-lint.yaml)](https://github.com/davep/oldnews/actions)
[![GitHub commits since latest release](https://img.shields.io/github/commits-since/davep/oldnews/latest)](https://github.com/davep/oldnews/commits/main/)
[![GitHub Issues or Pull Requests](https://img.shields.io/github/issues/davep/oldnews)](https://github.com/davep/oldnews/issues)
[![GitHub Release Date](https://img.shields.io/github/release-date/davep/oldnews)](https://github.com/davep/oldnews/releases)
[![PyPI - License](https://img.shields.io/pypi/l/oldnews)](https://github.com/davep/oldnews/blob/main/LICENSE)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/oldnews)](https://github.com/davep/oldnews/blob/main/pyproject.toml)
[![PyPI - Version](https://img.shields.io/pypi/v/oldnews)](https://pypi.org/project/oldnews/)

## Introduction

OldNews is a terminal-based client for
[TheOldReader](https://theoldreader.com). It provides the ability to read
news feeds while using TheOldReader as the server for your RSS/atom
subscriptions.

OldNews is and generally always will be fairly opinionated about the "best"
way to make use of TheOldReader (AKA how I like to use it); but where
possible I want to keep it quite general so it will be useful to anyone.

## Installing

### pipx

The application can be installed using [`pipx`](https://pypa.github.io/pipx/):

```sh
$ pipx install oldnews
```

### uv

The application can be installed using [`uv`](https://docs.astral.sh/uv/getting-started/installation/):

```sh
uv tool install oldnews
```

If you don't have `uv` installed you can use [uvx.sh](https://uvx.sh) to
perform the installation. For GNU/Linux or macOS or similar:

```sh
curl -LsSf uvx.sh/oldnews/install.sh | sh
```

or on Windows:

```sh
powershell -ExecutionPolicy ByPass -c "irm https://uvx.sh/oldnews/install.ps1 | iex"
```

Once installed run the `oldnews` command.

## Getting started

OldNews only works if you have an account on
[TheOldReader](https://theoldreader.com). When you first run up OldNews you
will get a login screen:

![OldNews login](https://raw.githubusercontent.com/davep/oldnews/refs/heads/main/docs/images/login.png)

Enter your TheOldReader login details to log in.

> [!IMPORTANT]
> OldNews doesn't store your user name or password locally. It passes the
> details to the API of TheOldReader and then gets and locally stores a
> token for working with the API.

Once logged in TheOldReader will start to download a history of articles
form your subscriptions. From then on it will synchronise the read/unread
status as you read articles, and will refresh with the server if you request
a refresh, or when you next start the application (within a set time limit).

![Reading an article with OldNews](https://raw.githubusercontent.com/davep/oldnews/refs/heads/main/docs/images/reading.png)

## Using OldNews

At the moment the best way to get to know OldNews is to read the helps
screen; once in the main application you can see this by pressing
<kbd>F1</kbd>.

![OldNews help](https://raw.githubusercontent.com/davep/oldnews/refs/heads/main/docs/images/help.png)

You can also discover commands and their keyboard shortcuts using the
command palette:

![OldNews command palette](https://raw.githubusercontent.com/davep/oldnews/refs/heads/main/docs/images/command-palette.png)

## File locations

OldNews stores files in an `oldnews` directory within both [`$XDG_DATA_HOME`
and
`$XDG_CONFIG_HOME`](https://specifications.freedesktop.org/basedir-spec/latest/).
If you wish to fully remove anything to do with OldNews you will need to
remove those directories too.

Expanding for the common locations, the files normally created are:

- `~/.config/oldnews/configuration.json` -- The configuration file.
- `~/.local/share/oldnews/*` -- The locally-held data.

## Getting help

If you need help, or have any ideas, please feel free to [raise an
issue](https://github.com/davep/oldnews/issues) or [start a
discussion](https://github.com/davep/oldnews/discussions).

## TODO

See [the TODO tag in
issues](https://github.com/davep/oldnews/issues?q=is%3Aissue+is%3Aopen+label%3ATODO)
to see what I'm planning.

[//]: # (README.md ends here)
