diff --git a/02-footnotes.md b/02-footnotes.md index 031dbd7..5fa4630 100644 --- a/02-footnotes.md +++ b/02-footnotes.md @@ -17,6 +17,7 @@ - :sos: site returned no data, or is down, or curl experienced a transient or permanent network error; may also reflect a problem with the RWOS server connection - :boom: same as :sos: but curl specifically mentioned SSL certificates as an issue - :alarm_clock: same as :sos: but curl specifically mentioned timeout as an issue +- :question: same as :sos: but curl specifically mentioned inability to resolve an onion descriptor - :new: site is newly added, no data yet You can also see the [history of updates](https://github.com/alecmuffett/real-world-onion-sites/commits/master/README.md). diff --git a/README.md b/README.md index 0b079fd..aa6dd25 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ You can find techical details and the legend/key for symbols in the [footnotes s * link: [https://xw226dvxac7jzcpsf4xb64r4epr6o5hgn46dxlqk7gnjptakik6xnzqd.onion/](https://xw226dvxac7jzcpsf4xb64r4epr6o5hgn46dxlqk7gnjptakik6xnzqd.onion/) * plain: `https://xw226dvxac7jzcpsf4xb64r4epr6o5hgn46dxlqk7gnjptakik6xnzqd.onion/` * proof: [link](https://mdleom.com) -* check: :white_check_mark::white_check_mark::white_check_mark::white_check_mark::sos::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark: +* check: :white_check_mark::white_check_mark::white_check_mark::white_check_mark::question::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark: ### [Nick Frichette](https://nickf43ab43xxf3yqgzy5uedsjij6h473rmbyzq6inohcnr3lohlu3yd.onion/) * transport: :closed_lock_with_key: **HTTPS** @@ -1115,7 +1115,7 @@ You can find techical details and the legend/key for symbols in the [footnotes s * link: [http://gppg43zz5d2yfuom3yfmxnnokn3zj4mekt55onlng3zs653ty4fio6qd.onion](http://gppg43zz5d2yfuom3yfmxnnokn3zj4mekt55onlng3zs653ty4fio6qd.onion) * plain: `http://gppg43zz5d2yfuom3yfmxnnokn3zj4mekt55onlng3zs653ty4fio6qd.onion` * proof: [link](https://www.cbc.ca/securedrop) -* check: :white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::sos::sos::sos::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark: +* check: :white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::question::question::question::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark: ### [CNN](http://qmifwf762qftydprw2adbg7hs2mkunac5xrz3cb5busaflji3rja5lid.onion) *via: https://securedrop.org/api/v1/directory/* @@ -1416,6 +1416,7 @@ These sites have apparently stopped responding. - :sos: site returned no data, or is down, or curl experienced a transient or permanent network error; may also reflect a problem with the RWOS server connection - :boom: same as :sos: but curl specifically mentioned SSL certificates as an issue - :alarm_clock: same as :sos: but curl specifically mentioned timeout as an issue +- :question: same as :sos: but curl specifically mentioned inability to resolve an onion descriptor - :new: site is newly added, no data yet You can also see the [history of updates](https://github.com/alecmuffett/real-world-onion-sites/commits/master/README.md). diff --git a/rwos-db.py b/rwos-db.py index e41e3f1..a441312 100755 --- a/rwos-db.py +++ b/rwos-db.py @@ -3,6 +3,7 @@ from datetime import datetime, timezone from multiprocessing import Pool, Lock import csv import datetime as dt +import re import sqlite3 import subprocess import sys @@ -40,6 +41,7 @@ EMOJI_5xx = ':stop_sign:' EMOJI_DEAD = ':sos:' EMOJI_NO_DATA = ':new:' EMOJI_BAD_CERT = ':boom:' +EMOJI_NO_DESC = ':question:' EMOJI_TIMED_OUT = ':alarm_clock:' H1 = '#' @@ -251,12 +253,15 @@ def get_summary(url): elif hcode >= 500 and hcode < 600: emoji = EMOJI_5xx elif hcode >= BADNESS: + emoji = EMOJI_DEAD # default if 'SSL certificate' in errstr: emoji = EMOJI_BAD_CERT elif 'timed out' in errstr: emoji = EMOJI_TIMED_OUT - else: - emoji = EMOJI_DEAD + elif "Can't complete SOCKS5 connection" in errstr: + # todo: parse out socks error codes from https://datatracker.ietf.org/doc/html/rfc1928#section-6 + if re.search(r'\(4\)$', errstr): + emoji = EMOJI_NO_DESC t = datetime.fromtimestamp(when, timezone.utc) result.append('{0}'.format(emoji, attempt, hcode, ecode, t)) return result