summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-reader.spec484
-rw-r--r--sources1
3 files changed, 486 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..971e4a6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/reader-3.5.tar.gz
diff --git a/python-reader.spec b/python-reader.spec
new file mode 100644
index 0000000..bb87fc2
--- /dev/null
+++ b/python-reader.spec
@@ -0,0 +1,484 @@
+%global _empty_manifest_terminate_build 0
+Name: python-reader
+Version: 3.5
+Release: 1
+Summary: A Python feed reader library.
+License: BSD-3-Clause
+URL: https://github.com/lemon24/reader
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/76/90/3f0bae14beb5f82e2896b1c5f742ee164d1438934b55c3f32115e31e7b91/reader-3.5.tar.gz
+BuildArch: noarch
+
+Requires: python3-typing-extensions
+Requires: python3-feedparser
+Requires: python3-requests
+Requires: python3-iso8601
+Requires: python3-beautifulsoup4
+Requires: python3-flask
+Requires: python3-humanize
+Requires: python3-PyYAML
+Requires: python3-click
+Requires: python3-PyYAML
+Requires: python3-reader[app,cli,docs,tests,unstable-plugins]
+Requires: python3-tox
+Requires: python3-pre-commit
+Requires: python3-build
+Requires: python3-twine
+Requires: python3-sphinx
+Requires: python3-sphinx-rtd-theme
+Requires: python3-click
+Requires: python3-sphinx-click
+Requires: python3-sphinx-issues
+Requires: python3-sphinx-hoverxref
+Requires: python3-sphinxcontrib-log-cabinet
+Requires: python3-setuptools
+Requires: python3-pytest
+Requires: python3-pytest-randomly
+Requires: python3-pytest-subtests
+Requires: python3-flaky
+Requires: python3-coverage
+Requires: python3-pytest-cov
+Requires: python3-requests-mock
+Requires: python3-mechanicalsoup
+Requires: python3-requests-wsgi-adapter
+Requires: python3-lxml
+Requires: python3-html5lib
+Requires: python3-werkzeug
+Requires: python3-types-requests
+Requires: python3-mypy
+Requires: python3-requests
+Requires: python3-mutagen
+Requires: python3-beautifulsoup4
+Requires: python3-blinker
+Requires: python3-tweepy
+Requires: python3-Jinja2
+
+%description
+.. begin-intro
+
+**reader** is a Python feed reader library.
+
+It is designed to allow writing feed reader applications
+without any business code,
+and without depending on a particular framework.
+
+.. end-intro
+
+
+|build-status-github| |code-coverage| |documentation-status| |pypi-status| |type-checking| |code-style|
+
+
+.. |build-status-github| image:: https://github.com/lemon24/reader/workflows/build/badge.svg
+ :target: https://github.com/lemon24/reader/actions?query=workflow%3Abuild
+ :alt: build status (GitHub Actions)
+
+.. |code-coverage| image:: https://codecov.io/github/lemon24/reader/coverage.svg?branch=master
+ :target: https://codecov.io/github/lemon24/reader?branch=master
+ :alt: code coverage
+
+.. |documentation-status| image:: https://readthedocs.org/projects/reader/badge/?version=latest&style=flat
+ :target: https://reader.readthedocs.io/en/latest/?badge=latest
+ :alt: documentation status
+
+.. |pypi-status| image:: https://img.shields.io/pypi/v/reader.svg
+ :target: https://pypi.python.org/pypi/reader
+ :alt: PyPI status
+
+.. |type-checking| image:: http://www.mypy-lang.org/static/mypy_badge.svg
+ :target: http://mypy-lang.org/
+ :alt: checked with mypy
+
+.. |code-style| image:: https://img.shields.io/badge/code%20style-black-000000.svg
+ :target: https://github.com/psf/black
+ :alt: code style: black
+
+
+.. begin-features
+
+*reader* allows you to:
+
+* retrieve, store, and manage **Atom**, **RSS**, and **JSON** feeds
+
+ * and even follow **Twitter** accounts
+
+* mark articles as read or important
+* add arbitrary tags/metadata to feeds and articles
+* filter feeds and articles
+* full-text search articles
+* get statistics on feed and user activity
+* write plugins to extend its functionality
+* skip all the low level stuff and focus on what makes your feed reader different
+
+...all these with:
+
+* a stable, clearly documented API
+* excellent test coverage
+* fully typed Python
+
+What *reader* doesn't do:
+
+* provide an UI
+* provide a REST API (yet)
+* depend on a web framework
+* have an opinion of how/where you use it
+
+The following exist, but are optional (and frankly, a bit unpolished):
+
+* a minimal web interface
+
+ * that works even with text-only browsers
+ * with automatic tag fixing for podcasts (MP3 enclosures)
+
+* a command-line interface
+
+.. end-features
+
+
+Documentation: `reader.readthedocs.io`_
+
+.. _reader.readthedocs.io: https://reader.readthedocs.io/
+
+
+Usage:
+
+.. begin-usage
+
+.. code-block:: bash
+
+ $ pip install reader
+
+.. code-block:: python
+
+ >>> from reader import make_reader
+ >>>
+ >>> reader = make_reader('db.sqlite')
+ >>> reader.add_feed('http://www.hellointernet.fm/podcast?format=rss')
+ >>> reader.update_feeds()
+ >>>
+ >>> entries = list(reader.get_entries())
+ >>> [e.title for e in entries]
+ ['H.I. #108: Project Cyclops', 'H.I. #107: One Year of Weird', ...]
+ >>>
+ >>> reader.mark_entry_as_read(entries[0])
+ >>>
+ >>> [e.title for e in reader.get_entries(read=False)]
+ ['H.I. #107: One Year of Weird', 'H.I. #106: Water on Mars', ...]
+ >>> [e.title for e in reader.get_entries(read=True)]
+ ['H.I. #108: Project Cyclops']
+ >>>
+ >>> reader.update_search()
+ >>>
+ >>> for e in reader.search_entries('year', limit=3):
+ ... title = e.metadata.get('.title')
+ ... print(title.value, title.highlights)
+ ...
+ H.I. #107: One Year of Weird (slice(15, 19, None),)
+ H.I. #52: 20,000 Years of Torment (slice(17, 22, None),)
+ H.I. #83: The Best Kind of Prison ()
+
+.. end-usage
+
+
+%package -n python3-reader
+Summary: A Python feed reader library.
+Provides: python-reader
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-reader
+.. begin-intro
+
+**reader** is a Python feed reader library.
+
+It is designed to allow writing feed reader applications
+without any business code,
+and without depending on a particular framework.
+
+.. end-intro
+
+
+|build-status-github| |code-coverage| |documentation-status| |pypi-status| |type-checking| |code-style|
+
+
+.. |build-status-github| image:: https://github.com/lemon24/reader/workflows/build/badge.svg
+ :target: https://github.com/lemon24/reader/actions?query=workflow%3Abuild
+ :alt: build status (GitHub Actions)
+
+.. |code-coverage| image:: https://codecov.io/github/lemon24/reader/coverage.svg?branch=master
+ :target: https://codecov.io/github/lemon24/reader?branch=master
+ :alt: code coverage
+
+.. |documentation-status| image:: https://readthedocs.org/projects/reader/badge/?version=latest&style=flat
+ :target: https://reader.readthedocs.io/en/latest/?badge=latest
+ :alt: documentation status
+
+.. |pypi-status| image:: https://img.shields.io/pypi/v/reader.svg
+ :target: https://pypi.python.org/pypi/reader
+ :alt: PyPI status
+
+.. |type-checking| image:: http://www.mypy-lang.org/static/mypy_badge.svg
+ :target: http://mypy-lang.org/
+ :alt: checked with mypy
+
+.. |code-style| image:: https://img.shields.io/badge/code%20style-black-000000.svg
+ :target: https://github.com/psf/black
+ :alt: code style: black
+
+
+.. begin-features
+
+*reader* allows you to:
+
+* retrieve, store, and manage **Atom**, **RSS**, and **JSON** feeds
+
+ * and even follow **Twitter** accounts
+
+* mark articles as read or important
+* add arbitrary tags/metadata to feeds and articles
+* filter feeds and articles
+* full-text search articles
+* get statistics on feed and user activity
+* write plugins to extend its functionality
+* skip all the low level stuff and focus on what makes your feed reader different
+
+...all these with:
+
+* a stable, clearly documented API
+* excellent test coverage
+* fully typed Python
+
+What *reader* doesn't do:
+
+* provide an UI
+* provide a REST API (yet)
+* depend on a web framework
+* have an opinion of how/where you use it
+
+The following exist, but are optional (and frankly, a bit unpolished):
+
+* a minimal web interface
+
+ * that works even with text-only browsers
+ * with automatic tag fixing for podcasts (MP3 enclosures)
+
+* a command-line interface
+
+.. end-features
+
+
+Documentation: `reader.readthedocs.io`_
+
+.. _reader.readthedocs.io: https://reader.readthedocs.io/
+
+
+Usage:
+
+.. begin-usage
+
+.. code-block:: bash
+
+ $ pip install reader
+
+.. code-block:: python
+
+ >>> from reader import make_reader
+ >>>
+ >>> reader = make_reader('db.sqlite')
+ >>> reader.add_feed('http://www.hellointernet.fm/podcast?format=rss')
+ >>> reader.update_feeds()
+ >>>
+ >>> entries = list(reader.get_entries())
+ >>> [e.title for e in entries]
+ ['H.I. #108: Project Cyclops', 'H.I. #107: One Year of Weird', ...]
+ >>>
+ >>> reader.mark_entry_as_read(entries[0])
+ >>>
+ >>> [e.title for e in reader.get_entries(read=False)]
+ ['H.I. #107: One Year of Weird', 'H.I. #106: Water on Mars', ...]
+ >>> [e.title for e in reader.get_entries(read=True)]
+ ['H.I. #108: Project Cyclops']
+ >>>
+ >>> reader.update_search()
+ >>>
+ >>> for e in reader.search_entries('year', limit=3):
+ ... title = e.metadata.get('.title')
+ ... print(title.value, title.highlights)
+ ...
+ H.I. #107: One Year of Weird (slice(15, 19, None),)
+ H.I. #52: 20,000 Years of Torment (slice(17, 22, None),)
+ H.I. #83: The Best Kind of Prison ()
+
+.. end-usage
+
+
+%package help
+Summary: Development documents and examples for reader
+Provides: python3-reader-doc
+%description help
+.. begin-intro
+
+**reader** is a Python feed reader library.
+
+It is designed to allow writing feed reader applications
+without any business code,
+and without depending on a particular framework.
+
+.. end-intro
+
+
+|build-status-github| |code-coverage| |documentation-status| |pypi-status| |type-checking| |code-style|
+
+
+.. |build-status-github| image:: https://github.com/lemon24/reader/workflows/build/badge.svg
+ :target: https://github.com/lemon24/reader/actions?query=workflow%3Abuild
+ :alt: build status (GitHub Actions)
+
+.. |code-coverage| image:: https://codecov.io/github/lemon24/reader/coverage.svg?branch=master
+ :target: https://codecov.io/github/lemon24/reader?branch=master
+ :alt: code coverage
+
+.. |documentation-status| image:: https://readthedocs.org/projects/reader/badge/?version=latest&style=flat
+ :target: https://reader.readthedocs.io/en/latest/?badge=latest
+ :alt: documentation status
+
+.. |pypi-status| image:: https://img.shields.io/pypi/v/reader.svg
+ :target: https://pypi.python.org/pypi/reader
+ :alt: PyPI status
+
+.. |type-checking| image:: http://www.mypy-lang.org/static/mypy_badge.svg
+ :target: http://mypy-lang.org/
+ :alt: checked with mypy
+
+.. |code-style| image:: https://img.shields.io/badge/code%20style-black-000000.svg
+ :target: https://github.com/psf/black
+ :alt: code style: black
+
+
+.. begin-features
+
+*reader* allows you to:
+
+* retrieve, store, and manage **Atom**, **RSS**, and **JSON** feeds
+
+ * and even follow **Twitter** accounts
+
+* mark articles as read or important
+* add arbitrary tags/metadata to feeds and articles
+* filter feeds and articles
+* full-text search articles
+* get statistics on feed and user activity
+* write plugins to extend its functionality
+* skip all the low level stuff and focus on what makes your feed reader different
+
+...all these with:
+
+* a stable, clearly documented API
+* excellent test coverage
+* fully typed Python
+
+What *reader* doesn't do:
+
+* provide an UI
+* provide a REST API (yet)
+* depend on a web framework
+* have an opinion of how/where you use it
+
+The following exist, but are optional (and frankly, a bit unpolished):
+
+* a minimal web interface
+
+ * that works even with text-only browsers
+ * with automatic tag fixing for podcasts (MP3 enclosures)
+
+* a command-line interface
+
+.. end-features
+
+
+Documentation: `reader.readthedocs.io`_
+
+.. _reader.readthedocs.io: https://reader.readthedocs.io/
+
+
+Usage:
+
+.. begin-usage
+
+.. code-block:: bash
+
+ $ pip install reader
+
+.. code-block:: python
+
+ >>> from reader import make_reader
+ >>>
+ >>> reader = make_reader('db.sqlite')
+ >>> reader.add_feed('http://www.hellointernet.fm/podcast?format=rss')
+ >>> reader.update_feeds()
+ >>>
+ >>> entries = list(reader.get_entries())
+ >>> [e.title for e in entries]
+ ['H.I. #108: Project Cyclops', 'H.I. #107: One Year of Weird', ...]
+ >>>
+ >>> reader.mark_entry_as_read(entries[0])
+ >>>
+ >>> [e.title for e in reader.get_entries(read=False)]
+ ['H.I. #107: One Year of Weird', 'H.I. #106: Water on Mars', ...]
+ >>> [e.title for e in reader.get_entries(read=True)]
+ ['H.I. #108: Project Cyclops']
+ >>>
+ >>> reader.update_search()
+ >>>
+ >>> for e in reader.search_entries('year', limit=3):
+ ... title = e.metadata.get('.title')
+ ... print(title.value, title.highlights)
+ ...
+ H.I. #107: One Year of Weird (slice(15, 19, None),)
+ H.I. #52: 20,000 Years of Torment (slice(17, 22, None),)
+ H.I. #83: The Best Kind of Prison ()
+
+.. end-usage
+
+
+%prep
+%autosetup -n reader-3.5
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-reader -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 3.5-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..c18b764
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+66b4cecd0a2150b07c8ed6491a89d2da reader-3.5.tar.gz