Closed wesbaker closed 4 years ago
I haven’t done any debugging yet, but I’m noticing another feed that isn’t updating in Feedbin: https://www.dndbeyond.com/posts.rss. This one seems to have stopped updating around January 8th.
One more: https://jamesclear.com/articles
Hi @wesbaker,
I looked into this. The first two are blocking bots (which Feedbin is). The last one looks fine. You can see below that a simple curl request does not result in an RSS feed.
This site is using Cloudflare and the publisher did not add an exception to the CAPTCHA for their feeds.
This site is using a CAPTCHA and does not have an exception for their feeds.
The contents of the feed match what is in Feedbin. Lastest article in both is "Happy 1st Birthday, Atomic Habits! (plus 3 gifts for you…)". I do see there is a newer article on the website " My 2019 Annual Review" but this is not in the feed.
curl -v https://www.shutupandsitdown.com/feed/
* Trying 104.31.10.172...
* TCP_NODELAY set
* Trying 2606:4700:3038::681f:bac...
* TCP_NODELAY set
* Immediate connect fail for 2606:4700:3038::681f:bac: Network is unreachable
* Trying 2606:4700:3038::681f:aac...
* TCP_NODELAY set
* Immediate connect fail for 2606:4700:3038::681f:aac: Network is unreachable
* Connected to www.shutupandsitdown.com (104.31.10.172) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Unknown (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Client hello (1):
* TLSv1.3 (OUT), TLS Unknown, Certificate Status (22):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: OU=Domain Control Validated; OU=PositiveSSL Multi-Domain; CN=sni227189.cloudflaressl.com
* start date: Sep 18 00:00:00 2019 GMT
* expire date: Mar 26 23:59:59 2020 GMT
* subjectAltName: host "www.shutupandsitdown.com" matched cert's "*.shutupandsitdown.com"
* issuer: C=GB; ST=Greater Manchester; L=Salford; O=COMODO CA Limited; CN=COMODO ECC Domain Validation Secure Server CA 2
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* TLSv1.3 (OUT), TLS Unknown, Unknown (23):
* TLSv1.3 (OUT), TLS Unknown, Unknown (23):
* TLSv1.3 (OUT), TLS Unknown, Unknown (23):
* Using Stream ID: 1 (easy handle 0x5618fd7d9580)
* TLSv1.3 (OUT), TLS Unknown, Unknown (23):
> GET /feed/ HTTP/2
> Host: www.shutupandsitdown.com
> User-Agent: curl/7.58.0
> Accept: */*
>
* TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS Unknown, Unknown (23):
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
* TLSv1.3 (OUT), TLS Unknown, Unknown (23):
* TLSv1.3 (IN), TLS Unknown, Unknown (23):
< HTTP/2 403
< date: Thu, 23 Jan 2020 15:56:23 GMT
< content-type: text/html; charset=UTF-8
< cf-chl-bypass: 1
< set-cookie: __cfduid=d372fe41a7cdeaa048e1ba2a5983529701579794983; expires=Sat, 22-Feb-20 15:56:23 GMT; path=/; domain=.shutupandsitdown.com; HttpOnly; SameSite=Lax
< cache-control: no-cache
< x-frame-options: SAMEORIGIN
< expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
< server: cloudflare
< cf-ray: 559af517dead7770-LAX
<
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
<head>
<title>Attention Required! | Cloudflare</title>
<meta name="captcha-bypass" id="captcha-bypass" />
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />
<link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/cf.errors.css" type="text/css" media="screen,projection" />
<!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" type="text/css" media="screen,projection" /><![endif]-->
<style type="text/css">* TLSv1.3 (IN), TLS Unknown, Unknown (23):
body{margin:0;padding:0}</style>
<!--[if gte IE 10]><!--><script type="text/javascript" src="/cdn-cgi/scripts/zepto.min.js"></script><!--<![endif]-->
<!--[if gte IE 10]><!--><script type="text/javascript" src="/cdn-cgi/scripts/cf.common.js"></script><!--<![endif]-->
</head>
<body>
<div id="cf-wrapper">
<div class="cf-alert cf-alert-error cf-cookie-error" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div>
<div id="cf-error-details" class="cf-error-details-wrapper">
<div class="cf-wrapper cf-header cf-error-overview">
<h1 data-translate="challenge_headline">One more step</h1>
<h2 class="cf-subheadline"><span data-translate="complete_sec_check">Please complete the security check to access</span> www.shutupandsitdown.com</h2>
</div><!-- /.header -->
<div class="cf-section cf-highlight cf-captcha-container">
<div class="cf-wrapper">
<div class="cf-columns two">
<div class="cf-column">
<div style="position: absolute; top: -250px; left: -250px;"><a href="https://premedic.info/sixpenny.php?link=8">table</a></div>
<div class="cf-highlight-inverse cf-form-stacked">
* TLSv1.3 (IN), TLS Unknown, Unknown (23):
<form class="challenge-form" id="challenge-form" action="/feed/?__cf_chl_captcha_tk__=50da6ea491d443b11bcf8c737cca8503ac7a2cba-1579794983-0-AXdkKp4W_uyogPk-mKThW1hmSI65npaX-C_qu4v_pQBYb_Y0T1VBjFjCwrazXwt1D6ehBvSQ5zqu9LbbYTbP40uvRhavPHLAo70_4SHphx_PQU_QOWIRXQ8oY1NTEkck0VAFE7w4RNMDo4jBW_wkNVBZiuWhcaog_g-qCohfC72SBXmGDj1Ht40g5Yc1G6LWlkvLYs_amlVqfCuRXrQNu_8njF0Mqa-YSCRPFjNu59QcjlBBcoszAocLE99aIA-4sjnqLK1vt148q0uEGUH2pyGblgMKrYQkoSusk3LmqDvpr8thxzzCW5JcgEaBlI_2u2mQb67cgkYmwNkpQ8-lcdS3c9r36EJEj7nEZDOyVMoT" method="POST" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="r" value="0e7327f7bd1cee0b949e3ed30f79886130d77665-1579794983-0-AdHhnDVzlwnS6HiwXjvGmxi4yTj9XyhwcQ41eSy9D5USVMY3T6cIiFYlAYwpJJJFJ4niyRv65tLyb6x4G8jg9I17ZdtyojNyy8C6ownYl2Ue2aE4YWTaeVGZWzpySPdDjF1XgAH2+q4SYdB1CfJsDnvejNun4NzwnOxcKMM3Ou/ECqQMg0DVNh2cgxQ7y3LZn48exrfSa0BVzQ9ZGMC+dpoLWPQPA/p/lnZdcI8qN3y250pNAW1pRccfLIoQOOXq67Ih2b4BSExKMO7VP6H/UUdrknmhVCm3bWBVqQIONMLazX+RYx3FaDq+4pqTyuoWYxdVOkcDduhMceLZlTDi4DkiKhej9Q* TLSv1.3 (IN), TLS Unknown, Unknown (23):
819R6t9BsCK37bezKwneHRE3COGxyjldWQCl72sNDn6WyJAOHow90MrKvkoh46eB3sHMW95qyhVyQIPCBJvyZMXBqjsdS8lIWR89ULgWsQaO5s7uDAd4WltpCiZzu36koQM2ye1Cx7TWIpDX+x6U/GYDOGXZrZawpPF/SYb/w5domCAbPi2r0R88GUW7NUbeZn7xaE7WNBJA9m0E1DVJxfra66xIO35T038M3Ri3p4P5qD5/YODm9DUFItzyUpESOm7s8mJYjDEZE/MJ5P/5CE6wipAAEL4yMVFEP0ZAEvgHlD5aCX0Jlu8fjqoBlFQZTCjivlxJu4yE0x2mDMqnN+di/8hRRo9VQ3Ikv6A/NkTwhfpglUbLzHmcjqQn+JZT2OtP0ccixIoMGMXta6WRNzCRWl9Q/l9h8VIp5lDtO+0SB5WNtOZiq8utLBhbqWPIpxeNBz4OD2CJ2Xg1/KB27gAGvbQpqrjvwE9eVSmBeX93JSZwfra4SvXtPhMhwpDytzze0/1V1zgiMvbawmxjPpC+rNkcSLIDPLo7fgMItSIHfc1H8NSXNQpX/basjHmtgciqV2SxQ9rdli19iHUzn79cm8tfqv+J/ogKlFFNGaYvMFTWyMkO7A5YRKrjcBNvl5rNrdc1CeccilzLsnNS0Wd5RZmVCOBKqW7dP/9YVA1YlPbsqvHD7c98Upx388LezmdcYhys3hZ87ZvPGw2jJsLnfZySH0Fqfu77icfSSfjvWrqGYtMP9ApLoxGcHrl7Mp1AK0wGvcvdtD/PeVkzweClw2MQpM7cMCqcWOYrtlDk6ky0zH5fTAJnT0kpua+KKcmM6pE1no/yrmYg11ZW5yshwwitF6vWf5lc/zOlD5UyxoIRkj6HOnUSd/6KV96MlM3A9i4WN/Q6gYKRAcikuHCB11tzzJdNrLHP6u8PCCs2mLtCAACR/RfKsm+KDUqmJmcGKmIYLlVOV0cN/jYP7Nhts/JqV3in1f6v8DJfGMebZuGG6wW+e7QSJYMff1yhmFXeYWxXQf7x/VjFDNCUFkK+160ukwPf0puQ==">
<script type="text/javascript" src="/cdn-cgi/scripts/cf.challenge.js" data-type="normal" data-ray="559af517dead7770" async data-sitekey="6LfBixYUAAAAABhdHynFUIMA_sa4s-XsJvnjtgB0"></script>
<div class="g-recaptcha"></div>
<noscript id="cf-captcha-bookmark" class="cf-captcha-info">
<div><div style="width: 302px">
<div>
<iframe src="https://www.google.com/recaptcha/api/fallback?k=6LfBixYUAAAAABhdHynFUIMA_sa4s-XsJvnjtgB0" frameborder="0" scrolling="no" style="width: 302px; height:422px; border-style: none;"></iframe>
</div>
<div style="width: 300px; border-style: none; bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px; background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px;">
* TLSv1.3 (IN), TLS Unknown, Unknown (23):
<textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none;"></textarea>
<input type="submit" value="Submit"></input>
</div>
</div></div>
</noscript>
</form>
<script type="text/javascript">
(function(){
var a = function() {try{return !!window.addEventListener} catch(e) {return !1} },
b = function(b, c) {a() ? document.addEventListener("DOMContentLoaded", b, c) : document.attachEvent("onreadystatechange", b)};
b(function(){
if (!a()) return;
window.addEventListener("message", handleMessage, false)
function handleMessage(event) {
if (event.data && event.data.type === 'results') {
var f = document.getElementById('challenge-form');
if (f) {
addInput(f, 'bf_challenge_id', '4802');
addInput(f, 'bf_execution_time', event.data.executionTimeMs);
addInput(f, 'bf_result_hash', event.data.resultHash);
}
window.removeEventListener("message", handleMessage, false)
}
}
function addInput(parent, name, value) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = name;
input.value = value;
parent.appendChild(input);
}
* TLSv1.3 (IN), TLS Unknown, Unknown (23):
function withIframe(iframeContent) {
var iframe = document.createElement('iframe');
iframe.id = 'bf_test_iframe';
iframe.style.visibility = 'hidden';
document.body.appendChild(iframe);
var doc = (iframe.contentWindow || iframe.contentDocument).document;
doc.write(iframeContent);
doc.close();
}
withIframe("<!DOCTYPE html>\n<meta charset=utf-8>\n<title><\/title>\n\n<script src=\"https:\/\/ajax.cloudflare.com\/cdn-cgi\/scripts\/697236fc\/cloudflare-static\/bot-filter.js\"><\/__script__>\n\n\n<div><\/div>\n\n<script>function e(t,n){test(function(){var e=n.appendChild(document.createElementNS(\"test\",\"te:ST\"));this.add_cleanup(function(){n.removeChild(e)}),__c$2(t.getElementsByTagName(\"st\")),__c$2(t.getElementsByTagName(\"ST\")),__c$2(t.getElementsByTagName(\"te:st\")),__c$2(t.getElementsByTagName(\"te:ST\"))})}e(document,document.body);<\/__script__>".replace(/\/__script__/g, '/script'));
}, false);
})();
</script>
</div>
</div>
<div class="cf-column">
<div class="cf-screenshot-container">
<span class="cf-no-screenshot"></span>
</div>
</div>
</div><!-- /.columns -->
</div>
</div><!-- /.captcha-container -->
* TLSv1.3 (IN), TLS Unknown, Unknown (23):
<div class="cf-section cf-wrapper">
<div class="cf-columns two">
<div class="cf-column">
<h2 data-translate="why_captcha_headline">Why do I have to complete a CAPTCHA?</h2>
<p data-translate="why_captcha_detail">Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.</p>
</div>
<div class="cf-column">
<h2 data-translate="resolve_captcha_headline">What can I do to prevent this in the future?</h2>
<p data-translate="resolve_captcha_antivirus">If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.</p>
<p data-translate="resolve_captcha_network">If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.</p>
</div>
</div>
</div><!-- /.section -->
<div class="cf-error-footer cf-wrapper">
<p>
<span class="cf-footer-item">Cloudflare Ray ID: <strong>559af517dead7770</strong></span>
<span class="cf-footer-separator">•</span>
<span class="cf-footer-item"><span>Your IP</span>: 157.230.163.157</span>
* TLSv1.3 (IN), TLS Unknown, Unknown (23):
<span class="cf-footer-separator">•</span>
<span class="cf-footer-item"><span>Performance & security by</span> <a href="https://www.cloudflare.com/5xx-error-landing?utm_source=error_footer" id="brand_link" target="_blank">Cloudflare</a></span>
</p>
</div><!-- /.error-footer -->
</div><!-- /#cf-error-details -->
</div><!-- /#cf-wrapper -->
<script type="text/javascript">
window._cf_translation = {};
</script>
<script src="https://ajax.cloudflare.com/cdn-cgi/scripts/f8ce4a63/cloudflare-static/pic-chl.js"></script>
<script type="text/javascript">
(function(){
var a = function() {try{return !!window.addEventListener} catch(e) {return !1} },
b = function(b, c) {a() ? document.addEventListener("DOMContentLoaded", b, c) : document.attachEvent("onreadystatechange", b)};
b(function(){
var f = document.getElementById('challenge-form');
if (f) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = 'cv_chal_result';
input.value = window.__CF$cv$chal([0x33071ecef4,0x884744c716]);
f.appendChild(input);
try {
if (window.__CF$cv$fp) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = 'cv_chal_fp';
input.value = window.__CF$cv$fp();
* TLSv1.3 (IN), TLS Unknown, Unknown (23):
f.appendChild(input);
}
} catch (e) { }
}
}, false);
})();
</script>
</body>
</html>
* TLSv1.3 (IN), TLS Unknown, Unknown (23):
* Connection #0 to host www.shutupandsitdown.com left intact
curl -v https://www.dndbeyond.com/posts.rss
* Trying 151.101.188.194...
* TCP_NODELAY set
* Connected to www.dndbeyond.com (151.101.188.194) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
* subject: C=US; ST=California; L=San Francisco; O=Wikia, Inc.; CN=*.wikia-services.com
* start date: Nov 8 18:28:11 2019 GMT
* expire date: Feb 9 13:26:17 2020 GMT
* subjectAltName: host "www.dndbeyond.com" matched cert's "*.dndbeyond.com"
* issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign CloudSSL CA - SHA256 - G3
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x5643fce2a580)
> GET /posts.rss HTTP/2
> Host: www.dndbeyond.com
> User-Agent: curl/7.58.0
> Accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
< HTTP/2 403
< server: Varnish
< retry-after: 0
< content-type: text/html
< accept-ranges: bytes
< date: Thu, 23 Jan 2020 15:57:32 GMT
< via: 1.1 varnish
< set-cookie: _pxhd=0ec7c2bdb42c9ea6f68446b502701c935c7438920f1a88363e88519d6e42232c:10ed2730-3df9-11ea-a8b8-b56ad6c54d06; Expires=Fri, 22 Jan 2021 15:57:32 GMT; path=/;
< x-served-by: cache-pao17422-PAO
< x-cache: MISS
< x-cache-hits: 0
< strict-transport-security: max-age=300
< content-length: 3433
<
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Access to this page has been denied.</title> <link href="https://fonts.googleapis.com/css?family=Open+Sans:300" rel="stylesheet"> <style> html, body { margin: 0; padding: 0; font-family: 'Open Sans', sans-serif; color: #000; } a { color: #c5c5c5; text-decoration: none; } .container { align-items: center; display: flex; flex: 1; justify-content: space-between; flex-direction: column; height: 100%; } .container > div { width: 100%; display: flex; justify-content: center; } .container > div > div { display: flex; width: 80%; } .customer-logo-wrapper { padding-top: 2rem; flex-grow: 0; background-color: #fff; visibility: visible; } .customer-logo { border-bottom: 1px solid #000; } .customer-logo > img { padding-bottom: 1rem; max-height: 50px; max-width: 100%; } .page-title-wrapper { flex-grow: 2; } .page-title { flex-direction: column-reverse; } .content-wrapper { flex-grow: 5; } .content { flex-direction: column; } .page-footer-wrapper { align-items: center; flex-grow: 0.2; background-color: #000; color: #c5c5c5; font-size: 70%; } @media (min-width: 768px) { html, body { height: 100%; } } </style> <!-- Custom CSS --> <link href="https://media-waterdeep.cursecdn.com/attachments/px.css" rel="stylesheet"> </head> <body> <section class="container"> <div class="customer-logo-wrapper"> <div class="customer-logo"> <img src="https://www.dndbeyond.com/content/skins/Waterdeep/images/dnd-beyond-logo-black.svg" alt="Logo"/> </div> </div> <div class="page-title-wrapper"> <div class="page-title"> <h1>Please verify you are a human</h1> </div> </div> <div class="content-wrapper"> <div class="content"> <div id="px-captcha"> </div> <p> Access to this page has been denied because we believe you are using automation tools to browse the website. </p> <p> This may happen as a result of the following: </p> <ul> <li> Javascript is disabled or blocked by an extension (ad blockers for example) </li> <li> Your browser does not support cookies </li> </ul> <p> Please make sure that Javascript and cookies are enabled on your browser and that you are not blocking them from loading. </p> <p> Reference ID: #10ed0020-3df9-11ea-a8b8-b56ad6c54d06 </p> </div> </div> <div class="page-footer-wrapper"> <div class="page-footer"> <p> Powered by <a href="https://www.perimeterx.com/whywasiblocked">PerimeterX</a> , Inc. </p> </div> </div> </section> <!-- Px --> <script> window._pxAppId = 'PXcNj12cyX'; window._pxJsClientSrc = '/cNj12cyX/init.js'; window._pxFirstPartyEnabled = true; window._pxVid = ''; window._pxUuid = '10ed0020-3df9-11ea-a8b8-b56ad6c54d06'; window._pxHostUrl = '/cNj12cyX/xhr'; </script> <script> var s = document.createElement('script'); s.src = '/cNj12cyX/captcha/captcha.js?a=c&u=10ed0020-3df9-11ea-a8b8-b56ad6c54d06&v=&m=0'; var p = document.getElementsByTagName('head')[0]; p.insertBefore(s, null); if (true ){s.onerror = function () {s = document.createElement('script'); var suffixIndex = '/cNj12cyX/captcha/captc* Connection #0 to host www.dndbeyond.com left intact
ha.js?a=c&u=10ed0020-3df9-11ea-a8b8-b56ad6c54d06&v=&m=0'.indexOf('/captcha.js'); var temperedBlockScript = '/cNj12cyX/captcha/captcha.js?a=c&u=10ed0020-3df9-11ea-a8b8-b56ad6c54d06&v=&m=0'.substring(suffixIndex); s.src = '//captcha.px-cdn.net/PXcNj12cyX' + temperedBlockScript; p.parentNode.insertBefore(s, p);};}</script> <!-- Custom Script --> </body> </html>
I tried viewing this feed on Feedly and things seem alright, but on Feedbin, the latest article is from December 16th, 2019.
Feed: https://www.shutupandsitdown.com/feed/ Gist: https://gist.github.com/b340afe37543cfb527adae9cbcc484af