馃寪 EN PL CS FR DE

Untick a language to hide its news, releases and discussions everywhere on the site. Kept in a cookie on this browser.

Sources and crawl status

Last run for every source. Missing a site, a repository or a feed? Submit it.

Needs a look 0

Every source worked on its last run, or failed only once.

A source is listed after two failed runs in a row. Follow the health feed in a feed reader to hear about it. Last daily backup: amigadex-2026-10-06.db.gz (117.9 MB), 3 kept.

Every source

KindSourceLast runStatus
newsAROS Archives uploadstoday 10 items, 0 new
newsAROS news (aros.sourceforge.io)6 days ago HTTPError: 404 Client Error: Not Found for url: https://aros.sourceforge.io/news.xml
newsAROS packages (aros-pkg)today 46 items, 0 new
newsAROSWorld forumtoday 7 items, 0 new
newsAmiga Futuretoday not changed since the last read
newsAmiga.org forumtoday 5 items, 0 new
newsAmigaPortal.cztoday 15 items, 0 new
newsAmigaWorld.nettoday 10 items, 0 new
newsAmigaWorld.net forumtoday 10 items, 0 new
newsAmigans.nettoday 10 items, 0 new
newsAmigans.net forumtoday 10 items, 0 new
newsAminet uploadstoday 135 items, 0 new
newsAmitopiatoday not changed since the last read
newsEnglish Amiga Boardtoday 126 items, 2 new
newsEnglish Amiga Board (news forum)today 6 items, 0 new
newsGeneration Amigatoday not changed since the last read
newsHyperion Entertainmenttoday 10 items, 0 new
newsIcaros Desktoptoday not changed since the last read
newsIndie Retro News (Amiga)today not changed since the last read
newsMorphOS Teamtoday 75 items, 0 new
newsMorphOS-Storage uploadstoday not changed since the last read
newsObligementtoday 20 items, 0 new
newsOld School Game Blogtoday not changed since the last read
newsPPA.pltoday 15 items, 0 new
newsPPA.pl forumtoday 100 items, 1 new
newsWHDLoadtoday not changed since the last read
newsamiga-news.detoday 30 items, 0 new
newsmorph.zone forumtoday 50 items, 0 new
reposcodeberg amigatoday 90 projects
reposcodeberg arostoday 1 projects
reposcodeberg morphostoday 0 projects
reposcodeberg topic:amigatoday 29 projects
reposgithub amiga in:name,descriptiontoday 3205 projects
reposgithub amigaos in:readmetoday 242 projects
reposgithub aros in:name,descriptiontoday 204 projects
reposgithub morphos in:name,descriptiontoday 161 projects
reposgithub org:AmigaPortstoday 74 projects
reposgithub topic:amiberrytoday 0 projects
reposgithub topic:amigatoday 1001 projects
reposgithub topic:amiga-1200today 0 projects
reposgithub topic:amiga-500today 0 projects
reposgithub topic:amiga-emulatortoday 0 projects
reposgithub topic:amigaostoday 25 projects
reposgithub topic:amigaos3today 10 projects
reposgithub topic:amigaos4today 10 projects
reposgithub topic:arostoday 6 projects
reposgithub topic:morphostoday 13 projects
reposgithub topic:pistormtoday 0 projects
reposgitlab amigatoday 265 projects
reposgitlab topic:amigatoday 27 projects
reposgitlab topic:arostoday 0 projects
reposgitlab topic:morphostoday 0 projects
sitescommunity webtoday ok; 1682 active sites, 25247 pages

Crawl process, peak memory after each phase (MB): repos 78 路 embed 78 路 sites 90 路 overlaps 90 路 submissions 78 路 news 142. Container now (MB): process peak rss 142 路 host total 1855 路 host available 602 路 container used 279 路 container uptime min 1359.

Recent errors 20

The last errors of the crawl and of the site, newest first, with their traceback.

WhenWhereError
2 days agorepos codeberg aros HTTPError: 504 Server Error: Gateway Time-out for url: https://codeberg.org/api/v1/repos/search?limit=50&q=aros&includeDesc=true&page=1
traceback
Traceback (most recent call last):
  File "/tmp/8df21a42ff892b9/amigadex/repos.py", line 452, in run
    n = fn()
        ^^^^
  File "/tmp/8df21a42ff892b9/amigadex/repos.py", line 489, in <lambda>
    run(f"{inst['name']} {q}", lambda q=q: _ingest(
                                           ^^^^^^^^
  File "/tmp/8df21a42ff892b9/amigadex/repos.py", line 369, in _ingest
    for item in items:
                ^^^^^
  File "/tmp/8df21a42ff892b9/amigadex/repos.py", line 294, in search
    r.raise_for_status()
  File "/tmp/8df21a42ff892b9/antenv/lib/python3.12/site-packages/requests/models.py", line 1167, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://codeberg.org/api/v1/repos/search?limit=50&q=aros&includeDesc=true&page=1
2 days agoweb / OperationalError: database is locked
traceback
Traceback (most recent call last):
  File "/tmp/8df217f7389a722/antenv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df217f7389a722/antenv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df217f7389a722/amigadex/web.py", line 1021, in home
    latest, _ = search_news(limit=12)
                ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df217f7389a722/amigadex/web.py", line 265, in search_news
    total = conn().execute(f"SELECT COUNT(*) FROM news n {sql_where}", params).fetchone()[0]
            ^^^^^^
  File "/tmp/8df217f7389a722/amigadex/web.py", line 69, in conn
    g.conn = db.connect(app.config["DB"])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df217f7389a722/amigadex/db.py", line 289, in connect
    conn.execute(f"PRAGMA journal_mode = {mode}")
sqlite3.OperationalError: database is locked
2 days agoweb / OperationalError: database is locked
traceback
Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/web.py", line 1021, in home
    latest, _ = search_news(limit=12)
                ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/web.py", line 265, in search_news
    total = conn().execute(f"SELECT COUNT(*) FROM news n {sql_where}", params).fetchone()[0]
            ^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/web.py", line 69, in conn
    g.conn = db.connect(app.config["DB"])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/db.py", line 289, in connect
    conn.execute(f"PRAGMA journal_mode = {mode}")
sqlite3.OperationalError: database is locked
2 days agonews AROSWorld forum ReadTimeout: HTTPSConnectionPool(host='arosworld.org', port=443): Read timed out. (read timeout=30)
traceback
Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 540, in _make_request
    response = conn.getresponse()
               ^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 638, in getresponse
    httplib_response = super().getresponse()
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/http/client.py", line 1450, in getresponse
    response.begin()
  File "/opt/python/3.12.13/lib/python3.12/http/client.py", line 336, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/http/client.py", line 297, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/socket.py", line 720, in readinto
    return self._sock.recv_into(b)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/ssl.py", line 1251, in recv_into
    return self.read(nbytes, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/ssl.py", line 1103, in read
    return self._sslobj.read(len, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/adapters.py", line 696, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 847, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/util/retry.py", line 510, in increment
    raise reraise(type(error), error, _stacktrace)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/util/util.py", line 39, in reraise
    raise value
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 793, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 542, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 373, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='arosworld.org', port=443): Read timed out. (read timeout=30)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/amigadex/news.py", line 244, in crawl
    resp = session.get(src["feed"], timeout=30)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/sessions.py", line 671, in get
    return self.request("GET", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/sessions.py", line 651, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/sessions.py", line 784, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/adapters.py", line 742, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='arosworld.org', port=443): Read timed out. (read timeout=30)
2 days agonews morph.zone forum ConnectTimeout: HTTPSConnectionPool(host='morph.zone', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='morph.zone', port=443) at 0x78c541c1dbb0>, 'Connection to morph.zone timed out. (connect timeout=30)'))
traceback
 call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 239, in _new_conn
    sock = connection.create_connection(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/util/connection.py", line 85, in create_connection
    raise err
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/util/connection.py", line 73, in create_connection
    sock.connect(sa)
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 793, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 494, in _make_request
    raise new_e
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 470, in _make_request
    self._validate_conn(conn)
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 1125, in _validate_conn
    conn.connect()
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 827, in connect
    self.sock = sock = self._new_conn()
                       ^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 248, in _new_conn
    raise ConnectTimeoutError(
urllib3.exceptions.ConnectTimeoutError: (<HTTPSConnection(host='morph.zone', port=443) at 0x78c541c1dbb0>, 'Connection to morph.zone timed out. (connect timeout=30)')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/adapters.py", line 696, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 847, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/util/retry.py", line 555, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='morph.zone', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='morph.zone', port=443) at 0x78c541c1dbb0>, 'Connection to morph.zone timed out. (connect timeout=30)'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/amigadex/news.py", line 244, in crawl
    resp = session.get(src["feed"], timeout=30)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/sessions.py", line 671, in get
    return self.request("GET", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/sessions.py", line 651, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/sessions.py", line 784, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/adapters.py", line 717, in send
    raise ConnectTimeout(e, request=request)
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='morph.zone', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='morph.zone', port=443) at 0x78c541c1dbb0>, 'Connection to morph.zone timed out. (connect timeout=30)'))
2 days agoweb / OperationalError: database is locked
traceback
Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/web.py", line 1021, in home
    latest, _ = search_news(limit=12)
                ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/web.py", line 265, in search_news
    total = conn().execute(f"SELECT COUNT(*) FROM news n {sql_where}", params).fetchone()[0]
            ^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/web.py", line 69, in conn
    g.conn = db.connect(app.config["DB"])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/db.py", line 289, in connect
    conn.execute(f"PRAGMA journal_mode = {mode}")
sqlite3.OperationalError: database is locked
2 days agonews morph.zone forum ConnectTimeout: HTTPSConnectionPool(host='morph.zone', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='morph.zone', port=443) at 0x79d35362bec0>, 'Connection to morph.zone timed out. (connect timeout=30)'))
traceback
 call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 239, in _new_conn
    sock = connection.create_connection(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/util/connection.py", line 85, in create_connection
    raise err
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/util/connection.py", line 73, in create_connection
    sock.connect(sa)
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 793, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 494, in _make_request
    raise new_e
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 470, in _make_request
    self._validate_conn(conn)
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 1125, in _validate_conn
    conn.connect()
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 827, in connect
    self.sock = sock = self._new_conn()
                       ^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 248, in _new_conn
    raise ConnectTimeoutError(
urllib3.exceptions.ConnectTimeoutError: (<HTTPSConnection(host='morph.zone', port=443) at 0x79d35362bec0>, 'Connection to morph.zone timed out. (connect timeout=30)')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/adapters.py", line 696, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 847, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/util/retry.py", line 555, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='morph.zone', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='morph.zone', port=443) at 0x79d35362bec0>, 'Connection to morph.zone timed out. (connect timeout=30)'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/amigadex/news.py", line 244, in crawl
    resp = session.get(src["feed"], timeout=30)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/sessions.py", line 671, in get
    return self.request("GET", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/sessions.py", line 651, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/sessions.py", line 784, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/adapters.py", line 717, in send
    raise ConnectTimeout(e, request=request)
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='morph.zone', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='morph.zone', port=443) at 0x79d35362bec0>, 'Connection to morph.zone timed out. (connect timeout=30)'))
3 days agoweb / OperationalError: database is locked
traceback
Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/web.py", line 1021, in home
    latest, _ = search_news(limit=12)
                ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/web.py", line 265, in search_news
    total = conn().execute(f"SELECT COUNT(*) FROM news n {sql_where}", params).fetchone()[0]
            ^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/web.py", line 69, in conn
    g.conn = db.connect(app.config["DB"])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/db.py", line 289, in connect
    conn.execute(f"PRAGMA journal_mode = {mode}")
sqlite3.OperationalError: database is locked
3 days agonews morph.zone forum ConnectTimeout: HTTPSConnectionPool(host='morph.zone', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='morph.zone', port=443) at 0x7ca51b1240e0>, 'Connection to morph.zone timed out. (connect timeout=30)'))
traceback
 call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 239, in _new_conn
    sock = connection.create_connection(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/util/connection.py", line 85, in create_connection
    raise err
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/util/connection.py", line 73, in create_connection
    sock.connect(sa)
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 793, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 494, in _make_request
    raise new_e
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 470, in _make_request
    self._validate_conn(conn)
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 1125, in _validate_conn
    conn.connect()
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 827, in connect
    self.sock = sock = self._new_conn()
                       ^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 248, in _new_conn
    raise ConnectTimeoutError(
urllib3.exceptions.ConnectTimeoutError: (<HTTPSConnection(host='morph.zone', port=443) at 0x7ca51b1240e0>, 'Connection to morph.zone timed out. (connect timeout=30)')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/adapters.py", line 696, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 847, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/urllib3/util/retry.py", line 555, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='morph.zone', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='morph.zone', port=443) at 0x7ca51b1240e0>, 'Connection to morph.zone timed out. (connect timeout=30)'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/amigadex/news.py", line 244, in crawl
    resp = session.get(src["feed"], timeout=30)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/sessions.py", line 671, in get
    return self.request("GET", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/sessions.py", line 651, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/sessions.py", line 784, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/requests/adapters.py", line 717, in send
    raise ConnectTimeout(e, request=request)
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='morph.zone', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='morph.zone', port=443) at 0x7ca51b1240e0>, 'Connection to morph.zone timed out. (connect timeout=30)'))
3 days agoweb / OperationalError: database is locked
traceback
Traceback (most recent call last):
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/antenv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/web.py", line 1021, in home
    latest, _ = search_news(limit=12)
                ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/web.py", line 265, in search_news
    total = conn().execute(f"SELECT COUNT(*) FROM news n {sql_where}", params).fetchone()[0]
            ^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/web.py", line 69, in conn
    g.conn = db.connect(app.config["DB"])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20ae4f495e34/amigadex/db.py", line 289, in connect
    conn.execute(f"PRAGMA journal_mode = {mode}")
sqlite3.OperationalError: database is locked
3 days agoweb / OperationalError: database is locked
traceback
Traceback (most recent call last):
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20754932181e/amigadex/web.py", line 995, in home
    recent, _ = search_news(limit=60, kind="discussions", by_date=True)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20754932181e/amigadex/web.py", line 264, in search_news
    total = conn().execute(f"SELECT COUNT(*) FROM news n {sql_where}", params).fetchone()[0]
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.OperationalError: database is locked
3 days agonews Generation Amiga ReadTimeout: HTTPSConnectionPool(host='www.generationamiga.com', port=443): Read timed out. (read timeout=30)
traceback
Traceback (most recent call last):
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 540, in _make_request
    response = conn.getresponse()
               ^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 638, in getresponse
    httplib_response = super().getresponse()
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/http/client.py", line 1450, in getresponse
    response.begin()
  File "/opt/python/3.12.13/lib/python3.12/http/client.py", line 336, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/http/client.py", line 297, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/socket.py", line 720, in readinto
    return self._sock.recv_into(b)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/ssl.py", line 1251, in recv_into
    return self.read(nbytes, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/ssl.py", line 1103, in read
    return self._sslobj.read(len, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/requests/adapters.py", line 696, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 847, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/urllib3/util/retry.py", line 510, in increment
    raise reraise(type(error), error, _stacktrace)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/urllib3/util/util.py", line 39, in reraise
    raise value
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 793, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 542, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 373, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='www.generationamiga.com', port=443): Read timed out. (read timeout=30)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/8df20754932181e/amigadex/news.py", line 233, in crawl
    resp = session.get(src["feed"], timeout=30)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/requests/sessions.py", line 671, in get
    return self.request("GET", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/requests/sessions.py", line 651, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/requests/sessions.py", line 784, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df20754932181e/antenv/lib/python3.12/site-packages/requests/adapters.py", line 742, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.generationamiga.com', port=443): Read timed out. (read timeout=30)
3 days agonews AROSWorld forum ReadTimeout: HTTPSConnectionPool(host='arosworld.org', port=443): Read timed out. (read timeout=30)
traceback
Traceback (most recent call last):
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 540, in _make_request
    response = conn.getresponse()
               ^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 638, in getresponse
    httplib_response = super().getresponse()
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/http/client.py", line 1450, in getresponse
    response.begin()
  File "/opt/python/3.12.13/lib/python3.12/http/client.py", line 336, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/http/client.py", line 297, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/socket.py", line 720, in readinto
    return self._sock.recv_into(b)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/ssl.py", line 1251, in recv_into
    return self.read(nbytes, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/ssl.py", line 1103, in read
    return self._sslobj.read(len, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/requests/adapters.py", line 696, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 847, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/util/retry.py", line 510, in increment
    raise reraise(type(error), error, _stacktrace)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/util/util.py", line 39, in reraise
    raise value
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 793, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 542, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 373, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='arosworld.org', port=443): Read timed out. (read timeout=30)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/8df206f1d99c25d/amigadex/news.py", line 233, in crawl
    resp = session.get(src["feed"], timeout=30)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/requests/sessions.py", line 671, in get
    return self.request("GET", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/requests/sessions.py", line 651, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/requests/sessions.py", line 784, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/requests/adapters.py", line 742, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='arosworld.org', port=443): Read timed out. (read timeout=30)
3 days agonews Generation Amiga ReadTimeout: HTTPSConnectionPool(host='www.generationamiga.com', port=443): Read timed out. (read timeout=30)
traceback
Traceback (most recent call last):
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 540, in _make_request
    response = conn.getresponse()
               ^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 638, in getresponse
    httplib_response = super().getresponse()
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/http/client.py", line 1450, in getresponse
    response.begin()
  File "/opt/python/3.12.13/lib/python3.12/http/client.py", line 336, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/http/client.py", line 297, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/socket.py", line 720, in readinto
    return self._sock.recv_into(b)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/ssl.py", line 1251, in recv_into
    return self.read(nbytes, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/ssl.py", line 1103, in read
    return self._sslobj.read(len, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/requests/adapters.py", line 696, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 847, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/util/retry.py", line 510, in increment
    raise reraise(type(error), error, _stacktrace)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/util/util.py", line 39, in reraise
    raise value
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 793, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 542, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 373, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='www.generationamiga.com', port=443): Read timed out. (read timeout=30)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/8df206f1d99c25d/amigadex/news.py", line 233, in crawl
    resp = session.get(src["feed"], timeout=30)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/requests/sessions.py", line 671, in get
    return self.request("GET", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/requests/sessions.py", line 651, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/requests/sessions.py", line 784, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df206f1d99c25d/antenv/lib/python3.12/site-packages/requests/adapters.py", line 742, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.generationamiga.com', port=443): Read timed out. (read timeout=30)
4 days agoweb /news.atom OperationalError: database is locked
traceback
Traceback (most recent call last):
  File "/tmp/8df1fbcc846a66f/antenv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1fbcc846a66f/antenv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1fbcc846a66f/amigadex/web.py", line 1322, in news_feed
    rows, _ = search_news(q, platform, source, 1, FEED_ITEMS, kind=kind, language=a.get("language", ""), personal=False,
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1fbcc846a66f/amigadex/web.py", line 257, in search_news
    total = conn().execute(f"SELECT COUNT(*) FROM news n {sql_where}", params).fetchone()[0]
            ^^^^^^
  File "/tmp/8df1fbcc846a66f/amigadex/web.py", line 65, in conn
    g.conn = db.connect(app.config["DB"])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1fbcc846a66f/amigadex/db.py", line 287, in connect
    conn.execute(f"PRAGMA journal_mode = {mode}")
sqlite3.OperationalError: database is locked
4 days agorepos github amigaos in:readme HTTPError: 502 Server Error: Bad Gateway for url: https://api.github.com/search/repositories?q=amigaos+in%3Areadme+created%3A2024-04-14..2026-10-01&per_page=100&page=4
traceback
Traceback (most recent call last):
  File "/tmp/8df1fbcc846a66f/amigadex/repos.py", line 406, in run
    n = fn()
        ^^^^
  File "/tmp/8df1fbcc846a66f/amigadex/repos.py", line 423, in <lambda>
    run(f"github {q}", lambda q=q: _ingest(
                                   ^^^^^^^^
  File "/tmp/8df1fbcc846a66f/amigadex/repos.py", line 339, in _ingest
    for item in items:
                ^^^^^
  File "/tmp/8df1fbcc846a66f/amigadex/repos.py", line 164, in search
    yield from self.search(query, (mid + timedelta(days=1), hi))
  File "/tmp/8df1fbcc846a66f/amigadex/repos.py", line 164, in search
    yield from self.search(query, (mid + timedelta(days=1), hi))
  File "/tmp/8df1fbcc846a66f/amigadex/repos.py", line 164, in search
    yield from self.search(query, (mid + timedelta(days=1), hi))
  File "/tmp/8df1fbcc846a66f/amigadex/repos.py", line 173, in search
    r.raise_for_status()
  File "/tmp/8df1fbcc846a66f/antenv/lib/python3.12/site-packages/requests/models.py", line 1167, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: https://api.github.com/search/repositories?q=amigaos+in%3Areadme+created%3A2024-04-14..2026-10-01&per_page=100&page=4
4 days agonews morph.zone forum ConnectTimeout: HTTPSConnectionPool(host='morph.zone', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='morph.zone', port=443) at 0x7ea5da2ee0f0>, 'Connection to morph.zone timed out. (connect timeout=30)'))
traceback
 call last):
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 239, in _new_conn
    sock = connection.create_connection(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/urllib3/util/connection.py", line 85, in create_connection
    raise err
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/urllib3/util/connection.py", line 73, in create_connection
    sock.connect(sa)
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 793, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 494, in _make_request
    raise new_e
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 470, in _make_request
    self._validate_conn(conn)
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 1125, in _validate_conn
    conn.connect()
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 827, in connect
    self.sock = sock = self._new_conn()
                       ^^^^^^^^^^^^^^^^
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/urllib3/connection.py", line 248, in _new_conn
    raise ConnectTimeoutError(
urllib3.exceptions.ConnectTimeoutError: (<HTTPSConnection(host='morph.zone', port=443) at 0x7ea5da2ee0f0>, 'Connection to morph.zone timed out. (connect timeout=30)')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/requests/adapters.py", line 696, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/urllib3/connectionpool.py", line 847, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/urllib3/util/retry.py", line 555, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='morph.zone', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='morph.zone', port=443) at 0x7ea5da2ee0f0>, 'Connection to morph.zone timed out. (connect timeout=30)'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/8df1f36575140fd/amigadex/news.py", line 142, in crawl
    resp = session.get(src["feed"], timeout=30)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/requests/sessions.py", line 671, in get
    return self.request("GET", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/requests/sessions.py", line 651, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/requests/sessions.py", line 784, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1f36575140fd/antenv/lib/python3.12/site-packages/requests/adapters.py", line 717, in send
    raise ConnectTimeout(e, request=request)
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='morph.zone', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<HTTPSConnection(host='morph.zone', port=443) at 0x7ea5da2ee0f0>, 'Connection to morph.zone timed out. (connect timeout=30)'))
5 days agosites community web ValueError: Invalid IPv6 URL
traceback
Traceback (most recent call last):
  File "/tmp/8df1ee029ccbee8/amigadex/sites.py", line 500, in crawl
    Crawler(conn, config, session, log, sleep, checkpoint=checkpoint).crawl(config.get("seed", []), news_sources)
  File "/tmp/8df1ee029ccbee8/amigadex/sites.py", line 484, in crawl
    n = self.crawl_site(site, int(o.get("max_pages", self.cfg.get("max_pages", 40))))
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1ee029ccbee8/amigadex/sites.py", line 420, in crawl_site
    link = canonical(urljoin(final, href))
                     ^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/urllib/parse.py", line 571, in urljoin
    urlparse(url, bscheme, allow_fragments)
  File "/opt/python/3.12.13/lib/python3.12/urllib/parse.py", line 395, in urlparse
    splitresult = urlsplit(url, scheme, allow_fragments)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/python/3.12.13/lib/python3.12/urllib/parse.py", line 514, in urlsplit
    raise ValueError("Invalid IPv6 URL")
ValueError: Invalid IPv6 URL
5 days agoweb /my/add OperationalError: database is locked
traceback
Traceback (most recent call last):
  File "/tmp/8df1ee029ccbee8/antenv/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1ee029ccbee8/antenv/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1ee029ccbee8/amigadex/web.py", line 502, in my_add
    added = submit.add(conn(), request.form.get("url", ""), "added from My Amigadex", "", config_news_feeds())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/8df1ee029ccbee8/amigadex/submit.py", line 99, in add
    conn.execute("INSERT INTO submissions (url, kind, note, submitted, ip_hash) VALUES (?, ?, ?, ?, ?)",
sqlite3.OperationalError: database is locked
5 days agorepos github amiga in:name,description HTTPError: 502 Server Error: Bad Gateway for url: https://api.github.com/search/repositories?q=amiga+in%3Aname%2Cdescription+created%3A2023-01-18..2024-04-12&per_page=100&page=3
traceback
Traceback (most recent call last):
  File "/tmp/8df1ee029ccbee8/amigadex/repos.py", line 406, in run
    n = fn()
        ^^^^
  File "/tmp/8df1ee029ccbee8/amigadex/repos.py", line 423, in <lambda>
    run(f"github {q}", lambda q=q: _ingest(
                                   ^^^^^^^^
  File "/tmp/8df1ee029ccbee8/amigadex/repos.py", line 339, in _ingest
    for item in items:
                ^^^^^
  File "/tmp/8df1ee029ccbee8/amigadex/repos.py", line 164, in search
    yield from self.search(query, (mid + timedelta(days=1), hi))
  File "/tmp/8df1ee029ccbee8/amigadex/repos.py", line 164, in search
    yield from self.search(query, (mid + timedelta(days=1), hi))
  File "/tmp/8df1ee029ccbee8/amigadex/repos.py", line 163, in search
    yield from self.search(query, (lo, mid))
  File "/tmp/8df1ee029ccbee8/amigadex/repos.py", line 164, in search
    yield from self.search(query, (mid + timedelta(days=1), hi))
  File "/tmp/8df1ee029ccbee8/amigadex/repos.py", line 173, in search
    r.raise_for_status()
  File "/tmp/8df1ee029ccbee8/antenv/lib/python3.12/site-packages/requests/models.py", line 1167, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: https://api.github.com/search/repositories?q=amiga+in%3Aname%2Cdescription+created%3A2023-01-18..2024-04-12&per_page=100&page=3