about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xcreate-webring.sh2
-rw-r--r--fead.patch54
2 files changed, 0 insertions, 56 deletions
diff --git a/create-webring.sh b/create-webring.sh
deleted file mode 100755
index 090f9e1..0000000
--- a/create-webring.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-# Create webring
-python3 ../fead/src/fead.py -l 100 -F feeds -t webring.template -o layouts/partials/webring-articles.html --skip-error
diff --git a/fead.patch b/fead.patch
deleted file mode 100644
index 0915336..0000000
--- a/fead.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-commit 277deed03833377bae0ae68cf7db3f0d3d578ccd
-Author: Ngô Ngọc Đức Huy <huyngo@disroot.org>
-Date:   2023-08-30 11:01:00 +0700
-
-    Add option to skip errors
-
-diff --git a/src/fead.py b/src/fead.py
-index 370b623..0b35119 100755
---- a/src/fead.py
-+++ b/src/fead.py
-@@ -185,11 +185,23 @@ async def fetch(raw_url):
-                         response.getheaders(), response)
- 
- 
--async def fetch_all(urls):
-+async def fetch_skip_error(url):
-+    try:
-+        return await fetch(url)
-+    except Exception as e:
-+        warn(f'fail to fetch {url}: {e}',
-+             type('FailureWarning', (Warning,), {}))
-+        return None
-+
-+
-+async def fetch_all(urls, skip_error):
-     """Fetch all given URLs asynchronously and return them parsed."""
--    tasks = gather(*map(fetch, urls))
-+    if skip_error:
-+        tasks = gather(*map(fetch_skip_error, urls))
-+    else:
-+        tasks = gather(*map(fetch, urls))
-     try:
--        return await tasks
-+        return filter(lambda t: t is not None, await tasks)
-     except:
-         tasks.cancel()  # structured concurrency
-         raise
-@@ -234,11 +246,15 @@ def main():
-     parser.add_argument('-o', '--output', metavar='PATH',
-                         type=FileType('w'), default=stdout,
-                         help='output file (default to stdout)')
-+    parser.add_argument('-s', '--skip-error', action='store_true',
-+                        default=False,
-+                        help="errors not causing failure but logged")
-     args = parser.parse_args()
- 
-     template = args.template.read()
-     args.template.close()
--    for ad in select(args.count, (ad for feed in run(fetch_all(args.feeds))
-+    for ad in select(args.count, (ad for feed in run(fetch_all(args.feeds,
-+                                                               args.skip_error))
-                                   for ad in select(args.per_feed, feed))):
-         args.output.write(template.format(**truncate(ad, args.len)._asdict()))
-     args.output.close()