It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://indiewebcamp.com/irc/feed.atom

  1. <!DOCTYPE html>
  2. <html class="h-feed">
  3. <head>
  4.  <meta charset="utf-8"/>
  5.  <title class="p-name">#indieweb 2025-09-18</title>
  6.  
  7.  <meta name="keywords" content="#indieweb"/>
  8.        <meta name="robots" content="noindex,follow"/>
  9.  
  10.  <script src="/assets/jquery-3.1.0.min.js"></script>
  11.  <script src="/assets/cookie.js"></script>
  12.  
  13.  <link rel="stylesheet" type="text/css" href="/materialize/css/materialize.min.css"/>
  14.  <script src="/materialize/js/materialize.min.js"></script>
  15.  <script src="/assets/moment.min.js"></script>
  16.  
  17.  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"/>
  18.  
  19.  <link rel="stylesheet" type="text/css" href="/assets/styles.css"/>
  20.  
  21.  <meta name="viewport" content="width=device-width,initial-scale=1"/>
  22.  <meta name="generator" content="https://github.com/indieweb/chat.indieweb.org"/>
  23.  <link rel="pingback" href="https://webmention.io/indiewebcamp/xmlrpc"/>
  24.  <link href="https://webmention.io/indiewebcamp/webmention" rel="webmention"/>
  25.  <script src="/assets/pushstream.js"></script>
  26.  <script src="/assets/streaming.js"></script>
  27.  
  28.  <link rel="apple-touch-icon-precomposed" href="/assets/logo/indieweb.png">
  29.  
  30.  <script type="application/ld+json">
  31.  {
  32.    "@context": "http://schema.org",
  33.    "@type": "WebSite",
  34.    "url": "https://chat.indieweb.org/",
  35.    "potentialAction": {
  36.      "@type": "SearchAction",
  37.      "target": "https://indiechat.search.cweiske.de/?q={search_term_string}",
  38.      "query-input": "required name=search_term_string"
  39.    }
  40.  }
  41.  </script>
  42.  <link rel="search" title="search chat.indieweb.org" type="application/opensearchdescription+xml" href="/opensearchdescription.php"/>
  43. </head>
  44. <body>
  45. <ul class="side-nav fixed" id="slide-out">
  46.  <li><div class="userView">
  47.    <img src="/assets/user-bkg.jpg" class="background"/>
  48.    <a href="#"><img class="circle" src="/assets/logo/indieweb.png"/></a>
  49.    <a><span class="white-text name" style="font-size: 18pt;">#indieweb</span></a>
  50.    <a><span class="white-text email">2025-09-18</span></a>
  51.  </div></li>
  52.  
  53.  <li style="display: flex; flex-direction: row;">
  54.    <div style="flex: 1 1;">
  55.              <a href="./2025-09-17" rel="prev">Prev</a>
  56.          </div>
  57.    <div style="flex: 1 1;">
  58.              <a class="disabled">Next</a>
  59.          </div>
  60.  </li>
  61.  
  62.  <li class="divider"></li>
  63.  
  64.      <li class="channel current" data-channel="#indieweb">
  65.      <a href="https://chat.indieweb.org/indieweb/">#indieweb</a>
  66.    </li>
  67.      <li class="channel " data-channel="#indieweb-dev">
  68.      <a href="https://chat.indieweb.org/dev/">#dev</a>
  69.    </li>
  70.      <li class="channel " data-channel="#indieweb-wordpress">
  71.      <a href="https://chat.indieweb.org/wordpress/">#wordpress</a>
  72.    </li>
  73.      <li class="channel " data-channel="#indieweb-meta">
  74.      <a href="https://chat.indieweb.org/meta/">#meta</a>
  75.    </li>
  76.      <li class="channel " data-channel="#indieweb-stream">
  77.      <a href="https://chat.indieweb.org/stream/">#stream</a>
  78.    </li>
  79.      <li class="channel " data-channel="#microformats">
  80.      <a href="https://chat.indieweb.org/microformats/">#microformats</a>
  81.    </li>
  82.      <li class="channel " data-channel="#indieweb-known">
  83.      <a href="https://chat.indieweb.org/known/">#known</a>
  84.    </li>
  85.      <li class="channel " data-channel="#indieweb-events">
  86.      <a href="https://chat.indieweb.org/events/">#events</a>
  87.    </li>
  88.  
  89.  <li class="divider"></li>
  90.  
  91.  <li class="search">
  92.    <form action="https://indiechat.search.cweiske.de/" method="get">
  93.      <div style="position:relative">
  94.        <input type="text" name="q" id="search" placeholder="Search"/>
  95.        <button class="material-icons" type="submit">search</button>
  96.      </div>
  97.    </form>
  98.  </li>
  99.  <li>
  100.    <form action="/set-timezone.php" method="post" id="set-timezone-form">
  101.      <div class="input-field col s12">
  102.        <select class="browser-default" id="set-timezone" name="tz" onchange="document.getElementById('set-timezone-form').submit()">
  103.                      <option value="-5 GMT" >-5 GMT</option>
  104.                      <option value="Africa/Accra" >Africa/Accra</option>
  105.                      <option value="Africa/Tunis" >Africa/Tunis</option>
  106.                      <option value="America/Boise" >America/Boise</option>
  107.                      <option value="America/Chicago" >America/Chicago</option>
  108.                      <option value="America/Denver" >America/Denver</option>
  109.                      <option value="America/Detroit" >America/Detroit</option>
  110.                      <option value="America/Edmonton" >America/Edmonton</option>
  111.                      <option value="America/Halifax" >America/Halifax</option>
  112.                      <option value="America/Los_Angeles" >America/Los_Angeles</option>
  113.                      <option value="America/Los_angeles" >America/Los_angeles</option>
  114.                      <option value="America/Mexico_City" >America/Mexico_City</option>
  115.                      <option value="America/Monterrey" >America/Monterrey</option>
  116.                      <option value="America/Montreal" >America/Montreal</option>
  117.                      <option value="America/New_York" >America/New_York</option>
  118.                      <option value="America/Phoenix" >America/Phoenix</option>
  119.                      <option value="America/Santiago" >America/Santiago</option>
  120.                      <option value="America/Sao_Paulo" >America/Sao_Paulo</option>
  121.                      <option value="America/Toronto" >America/Toronto</option>
  122.                      <option value="America/Vancouver" >America/Vancouver</option>
  123.                      <option value="Asia/Bangkok" >Asia/Bangkok</option>
  124.                      <option value="Asia/Calcutta" >Asia/Calcutta</option>
  125.                      <option value="Asia/Kolkata" >Asia/Kolkata</option>
  126.                      <option value="Asia/Kuala_Lumpur" >Asia/Kuala_Lumpur</option>
  127.                      <option value="Asia/Kuching" >Asia/Kuching</option>
  128.                      <option value="Asia/Manila" >Asia/Manila</option>
  129.                      <option value="Asia/Seoul" >Asia/Seoul</option>
  130.                      <option value="Asia/Tehran" >Asia/Tehran</option>
  131.                      <option value="Asia/Tokyo" >Asia/Tokyo</option>
  132.                      <option value="Atlantic/Faroe" >Atlantic/Faroe</option>
  133.                      <option value="Atlantic/Reykjavik" >Atlantic/Reykjavik</option>
  134.                      <option value="Australia/Adelaide" >Australia/Adelaide</option>
  135.                      <option value="Australia/Brisbane" >Australia/Brisbane</option>
  136.                      <option value="Australia/Melbourne" >Australia/Melbourne</option>
  137.                      <option value="Australia/Perth" >Australia/Perth</option>
  138.                      <option value="Australia/Queensland" >Australia/Queensland</option>
  139.                      <option value="Australia/Sydney" >Australia/Sydney</option>
  140.                      <option value="CET" >CET</option>
  141.                      <option value="Canada/Eastern" >Canada/Eastern</option>
  142.                      <option value="Europe/Amsterdam" >Europe/Amsterdam</option>
  143.                      <option value="Europe/Athens" >Europe/Athens</option>
  144.                      <option value="Europe/Belfast" >Europe/Belfast</option>
  145.                      <option value="Europe/Belgrade" >Europe/Belgrade</option>
  146.                      <option value="Europe/Berlin" >Europe/Berlin</option>
  147.                      <option value="Europe/Brussels" >Europe/Brussels</option>
  148.                      <option value="Europe/Budapest" >Europe/Budapest</option>
  149.                      <option value="Europe/Copenhagen" >Europe/Copenhagen</option>
  150.                      <option value="Europe/Dublin" >Europe/Dublin</option>
  151.                      <option value="Europe/Helsinki" >Europe/Helsinki</option>
  152.                      <option value="Europe/Istanbul" >Europe/Istanbul</option>
  153.                      <option value="Europe/Lisbon" >Europe/Lisbon</option>
  154.                      <option value="Europe/London" >Europe/London</option>
  155.                      <option value="Europe/Luxembourg" >Europe/Luxembourg</option>
  156.                      <option value="Europe/Madrid" >Europe/Madrid</option>
  157.                      <option value="Europe/Moscow" >Europe/Moscow</option>
  158.                      <option value="Europe/Paris" >Europe/Paris</option>
  159.                      <option value="Europe/Prague" >Europe/Prague</option>
  160.                      <option value="Europe/Rome" >Europe/Rome</option>
  161.                      <option value="Europe/Stockholm" >Europe/Stockholm</option>
  162.                      <option value="Europe/Warsaw" >Europe/Warsaw</option>
  163.                      <option value="Europe/Zurich" >Europe/Zurich</option>
  164.                      <option value="GMT" >GMT</option>
  165.                      <option value="Pacific/Auckland" >Pacific/Auckland</option>
  166.                      <option value="US/Central" >US/Central</option>
  167.                      <option value="US/Eastern" >US/Eastern</option>
  168.                      <option value="US/Pacific" >US/Pacific</option>
  169.                      <option value="UTC" selected="selected">UTC</option>
  170.                  </select>
  171.        <input type="hidden" name="location" value="/2025-09-18"/>
  172.      </div>
  173.    </form>
  174.  </li>
  175.  
  176. </ul>
  177.  
  178. <div class="navbar-fixed">
  179.  <nav>
  180.    <div class="nav-wrapper">
  181.      <a href="#" class="brand-logo">#indieweb</a>
  182.      <a href="#" data-activates="slide-out" class="button-collapse"><abbr title="menu">≡</abbr></a>
  183.  
  184.      <ul class="right">
  185.        <li>
  186.                      <a href="./2025-09-17" rel="prev"><abbr title="Previous">←</abbr></a>
  187.                  </li>
  188.        <li>
  189.                      <a class="disabled"><abbr title="Next">→</abbr></a>
  190.                  </li>
  191.      </ul>
  192.    </div>
  193.  </nav>
  194. </div>
  195.  
  196. <script>
  197. $(function(){
  198.  $(".button-collapse").sideNav();
  199.  $("li.channel").each(function(i,ch){
  200.    if(channel_unread($(ch).data('channel'))) {
  201.      $(ch).addClass('activity');
  202.    }
  203.  });
  204.  channel_read($("#active-channel").val());
  205. });
  206. </script>
  207. <main>
  208.  
  209. <h2 class="date"><span class="channel-name">#indieweb</span> 2025-09-18</h2>
  210.  
  211. <div class="logs">
  212.  <div id="log-lines">
  213.    <div class="daymark">2025-09-18 <span class="tz">UTC</span></div><div id="t1758156602432100" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758156602432100" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T00:50:02+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758156602432100" class="u-url time" title="2025-09-18T00:50:02+00:00">00:50</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=http%3A%2F%2Floqi.me%2Flogo%2Floqisaur.png&amp;sig=3571041228810c0664972bd517c3e0cb2b50fe82c7359f310bed393df91a84e0" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://loqi.me" class="author p-nickname p-name u-url" target="_blank">Loqi</a></span></span> <span class="e-content p-name">Homebrew Website Club - Pacific is starting soon! Join us! <a href="https://events.indieweb.org/On4xV2mwhIOW" target="_blank">https://events.indieweb.org/On4xV2mwhIOW</a></span></span></div></div>
  214.  
  215. <div class="line join cluster">sdk-, CrimeWave, [schmarty], [manton], IWSlackGateway, Zegnat, [marksuth]3, Pixi__, Maker1, mccd_, [aciccarello]2, rvalue-, powerLien1, oxtyped_, Oclair_, schelcj1, Virtual, ipod420, tyil, wynfir, Pixi, duanin2, lanodan and pigbenis joined the channel</div><div id="t1758166666159900" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758166666159900" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T03:37:46+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758166666159900" class="u-url time" title="2025-09-18T03:37:46+00:00">03:37</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar" style="opacity: .20;"><img src="https://chat.indieweb.org//assets/user.svg" width="20" height="20"/></div><span class=""><span class="p-nickname p-name">pigbenis</span></span></span> <span class="e-content p-name">sup indieweb</span></span></div></div>
  216.  
  217. <div class="line join cluster">thegreekgeek__, Virtual, duanin2, gRegor, DanQ, duanin2_, powerLien1, mccd_, [aciccarello], CrimeWave, Oclair, Zegnet, mccd, oxtyped, [manton], sdk-, [marksuth], rvalue, IWSlackGateway2, powerLien, Maker, lanodan, Pixi, barnaby, schelcj1, claudine, Elleo_, Saphire, ipod420, khimaros, ehmry, bret, mikeputnam, mxtms, aelaraji, IWDiscord, aldur, [snarfed]2, sivoais_, bleb, roks0n, bterry, jonnie, marlun, tetsuo-cpp, lockywolf, _90_008[d], perryflynn, lain`, plantroon_, rosipov, [0x3b0b], [morganm], RapidRotator_, Saige_Leah, gregsarj1ant, jeremiah, jboy, audy, ben, aaronpk, Kolev, oodani_, rjomara5853, pyropenguin, [tantek], streety_, Salt, [Al_Abut], milkii, jmjl, Nebraskka, gebra, runxiyu, foreverlikethis, zoglesby, dpk, jonnybarnes, ramsey, sebbu, bchar, dbohdan[phone], Xe, Daijo-, joshproehl_, chenghiz_, Artea, anarchivist, bargaintreeflow, eb, rob32, nyadiia, jeremych-, [social], JadedBlueEyes, posixlycorrect, nnrx, srushe, Tiffany, pax_73, hedy, raucao, geoffo_, sm2n, sp1ff, GWG, nijotz, petermolnar, rossabaker, Schnouki, Dryusdan, DusteD, marc_in_space, [KevinMarks], smonk333, [artlung], rrix, jjuran, chimo, mjgardner, mdemo2, fluffy, thegreekgeek, dpino, fcser, srxl, Sigmundur_morkor, sknebel, doesnm, asarandi, sandra, Kaja, DJ_[dj_je][d], _123nick[d], mossymaker, Saphir, strugee, Xander, selectric, sebsel, pfych, parnikkapore_x, Saige_Leah[d], DREADBEEF, benji, raghavgururajan, AnakiN-, paulgrmn, Alison_, ancarda, snowolf, karjala, shreyasminocha, onla, dissolve22[d], GorillaWarfare, ggarcia24, syl, chee, suki, flowji, Maxpm, jak2k, yang, boramalper, saptaks, aurailus[d], peterrother, jmac, axxuy, jetpack, emigre, revi, schmudde, krjst, Jon, hidjy[d], moose333, javivi, darylsun, stefen, kyber, voxpelli, slow99, bugliker02, hughrawlinson, helveticamono, rhiaro, neatnik, nsh, wikidasher, opencircuit, blodulv, merlins, shbst, dustinm`, distopico, thegr8whoopdini[, ludovicchabant, bread, bloot, Spur, capjamesg, nerk, lane, srijan, tyil, [manton]3, [marksuth]4, barnabywalters, oodani, jeremycherfas, Elleo, ipod420_, gordinator, jbd and [aciccarello]3 joined the channel</div><div id="t1758203543853100" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758203543853100" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T13:52:23+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758203543853100" class="u-url time" title="2025-09-18T13:52:23+00:00">13:52</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=http%3A%2F%2Floqi.me%2Flogo%2Floqisaur.png&amp;sig=3571041228810c0664972bd517c3e0cb2b50fe82c7359f310bed393df91a84e0" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://loqi.me" class="author p-nickname p-name u-url" target="_blank">Loqi</a></span></span> <span class="e-content p-name">[indienews] New post: "How Artemis polls web feeds" <a href="https://jamesg.blog/2025/09/18/how-artemis-polls-web-feeds" target="_blank">https://jamesg.blog/2025/09/18/how-artemis-polls-web-feeds</a></span></span></div></div>
  218.  
  219. <div id="t1758203869060600" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758203869060600" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T13:57:49+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758203869060600" class="u-url time" title="2025-09-18T13:57:49+00:00">13:57</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar" style="opacity: .20;"><img src="https://chat.indieweb.org//assets/user.svg" width="20" height="20"/></div><span class=""><span class="p-nickname p-name">pinguhoe25</span></span></span> <span class="e-content p-name">Hey everyone, I’m Prabash and just getting started on my personal website journey! Excited to be here ⚡️</span></span></div></div>
  220.  
  221. <div id="t1758203986275000" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758203986275000" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T13:59:46+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758203986275000" class="u-url time" title="2025-09-18T13:59:46+00:00">13:59</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=https%3A%2F%2Fartlung.com%2Fblog%2Fwp-content%2Fuploads%2F2023%2F02%2FIMG_9150-100x100.jpeg&amp;sig=bf5205ec7e437b92c48d301a8696f37a67ee151da9802ae424df370e520cea23" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://artlung.com" class="author p-nickname p-name u-url" target="_blank">[artlung]</a></span></span> <span class="e-content p-name">welcome Prabash! If you're the same Prabash from last night's Pacific call I'm the same Joe from that call. 🙂</span></span></div></div>
  222.  
  223. <div id="t1758204234493200" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758204234493200" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T14:03:54+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758204234493200" class="u-url time" title="2025-09-18T14:03:54+00:00">14:03</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=https%3A%2F%2Fjamesg.blog%2Fassets%2Fcoffeeshop.jpg&amp;sig=ec5e94662fd24c2f04f7b135663ed46bc2dc544c028992fd4ea3bc7858987be2" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://jamesg.blog" class="author p-nickname p-name u-url" target="_blank">capjamesg</a></span></span> <span class="e-content p-name">Welcome!</span></span></div></div>
  224.  
  225. <div id="t1758204238516400" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758204238516400" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T14:03:58+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758204238516400" class="u-url time" title="2025-09-18T14:03:58+00:00">14:03</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar" style="opacity: .20;"><img src="https://chat.indieweb.org//assets/user.svg" width="20" height="20"/></div><span class=""><span class="p-nickname p-name">pinguhoe25</span></span></span> <span class="e-content p-name">Hey Joe, yup that’s me!</span></span></div></div>
  226.  
  227. <div class="line join cluster">oodani and [social] joined the channel</div><div id="t1758208467695200" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758208467695200" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T15:14:27+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758208467695200" class="u-url time" title="2025-09-18T15:14:27+00:00">15:14</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar" style="opacity: .20;"><img src="https://chat.indieweb.org//assets/user.svg" width="20" height="20"/></div><span class=""><span class="p-nickname p-name">[social]</span></span></span> <span class="e-content p-name">Welcome Prabash! Great to see you here too.</span></span></div></div>
  228.  
  229. <div class="line join cluster">[marksuth], [tantek], [social], GuestZero, [manton] and inkheart joined the channel</div><div id="t1758212453732900" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758212453732900" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T16:20:53+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758212453732900" class="u-url time" title="2025-09-18T16:20:53+00:00">16:20</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar" style="opacity: .20;"><img src="https://chat.indieweb.org//assets/user.svg" width="20" height="20"/></div><span class=""><span class="p-nickname p-name">inkheart</span></span></span> <span class="e-content p-name">what's up peeps?</span></span></div></div>
  230.  
  231. <div class="line join cluster">inkheart, barnaby, gRegorLove_, aelaraji4 and marc_in_space joined the channel</div><div id="t1758214201976500" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758214201976500" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T16:50:01+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758214201976500" class="u-url time" title="2025-09-18T16:50:01+00:00">16:50</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=http%3A%2F%2Floqi.me%2Flogo%2Floqisaur.png&amp;sig=3571041228810c0664972bd517c3e0cb2b50fe82c7359f310bed393df91a84e0" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://loqi.me" class="author p-nickname p-name u-url" target="_blank">Loqi</a></span></span> <span class="e-content p-name">Front End Study Hall #036 is starting soon! Join us! <a href="https://events.indieweb.org/duXKDJFSwypW" target="_blank">https://events.indieweb.org/duXKDJFSwypW</a></span></span></div></div>
  232.  
  233. <div id="t1758215102175100" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758215102175100" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T17:05:02+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758215102175100" class="u-url time" title="2025-09-18T17:05:02+00:00">17:05</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=https%3A%2F%2Fjamesg.blog%2Fassets%2Fcoffeeshop.jpg&amp;sig=ec5e94662fd24c2f04f7b135663ed46bc2dc544c028992fd4ea3bc7858987be2" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://jamesg.blog" class="author p-nickname p-name u-url" target="_blank">capjamesg</a></span></span> <span class="e-content p-name">Joni us ^^</span></span></div></div>
  234.  
  235. <div id="t1758215103452500" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758215103452500" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T17:05:03+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758215103452500" class="u-url time" title="2025-09-18T17:05:03+00:00">17:05</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=https%3A%2F%2Fjamesg.blog%2Fassets%2Fcoffeeshop.jpg&amp;sig=ec5e94662fd24c2f04f7b135663ed46bc2dc544c028992fd4ea3bc7858987be2" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://jamesg.blog" class="author p-nickname p-name u-url" target="_blank">capjamesg</a></span></span> <span class="e-content p-name">*join</span></span></div></div>
  236.  
  237. <div class="line join cluster">Guest32 joined the channel</div><div id="t1758217936878100" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758217936878100" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T17:52:16+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758217936878100" class="u-url time" title="2025-09-18T17:52:16+00:00">17:52</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=https%3A%2F%2Ftantek.com%2Flogo.jpg&amp;sig=fdc026586d46976e19df06a113be643ff26d1dec5e3cb4e70d23224b6b3de6d0" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://Tantek.com" class="author p-nickname p-name u-url" target="_blank">[tantek]</a></span></span> <span class="e-content p-name"> 👀</span></span></div></div>
  238.  
  239. <div class="line join cluster">shoesNsocks joined the channel</div><div id="t1758218473689800" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758218473689800" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T18:01:13+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758218473689800" class="u-url time" title="2025-09-18T18:01:13+00:00">18:01</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar" style="opacity: .20;"><img src="https://chat.indieweb.org//assets/user.svg" width="20" height="20"/></div><span class=""><span class="p-nickname p-name">posixlycorrect</span></span></span> <span class="e-content p-name">hey guys</span></span></div></div>
  240.  
  241. <div id="t1758218512734400" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758218512734400" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T18:01:52+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758218512734400" class="u-url time" title="2025-09-18T18:01:52+00:00">18:01</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar" style="opacity: .20;"><img src="https://chat.indieweb.org//assets/user.svg" width="20" height="20"/></div><span class=""><span class="p-nickname p-name">posixlycorrect</span></span></span> <span class="e-content p-name">what do you guys place in the key section of your h-card?</span></span></div></div>
  242.  
  243. <div id="t1758218535656800" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758218535656800" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T18:02:15+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758218535656800" class="u-url time" title="2025-09-18T18:02:15+00:00">18:02</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar" style="opacity: .20;"><img src="https://chat.indieweb.org//assets/user.svg" width="20" height="20"/></div><span class=""><span class="p-nickname p-name">posixlycorrect</span></span></span> <span class="e-content p-name">currently i have a link that downloads an .asc file containing the armor of my public key</span></span></div></div>
  244.  
  245. <div id="t1758218535670400" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758218535670400" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T18:02:15+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758218535670400" class="u-url time" title="2025-09-18T18:02:15+00:00">18:02</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=http%3A%2F%2Floqi.me%2Flogo%2Floqisaur.png&amp;sig=3571041228810c0664972bd517c3e0cb2b50fe82c7359f310bed393df91a84e0" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://loqi.me" class="author p-nickname p-name u-url" target="_blank">Loqi</a></span></span> <span class="e-content p-name">friendly reminder posixlycorrect, we try to keep dev talk (Microformats, public key) out of this channel, can you move to #indieweb-dev?</span></span></div></div>
  246.  
  247. <div id="t1758218551543400" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758218551543400" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T18:02:31+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758218551543400" class="u-url time" title="2025-09-18T18:02:31+00:00">18:02</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar" style="opacity: .20;"><img src="https://chat.indieweb.org//assets/user.svg" width="20" height="20"/></div><span class=""><span class="p-nickname p-name">posixlycorrect</span></span></span> <span class="e-content p-name">ah, i see :) thanks! i will direct my questions there</span></span></div></div>
  248.  
  249. <div class="line join cluster">GuestZero, CrimeWave, JustBleedFan and athan joined the channel</div><div id="t1758222512954300" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758222512954300" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T19:08:32+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758222512954300" class="u-url time" title="2025-09-18T19:08:32+00:00">19:08</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar" style="opacity: .20;"><img src="https://chat.indieweb.org//assets/user.svg" width="20" height="20"/></div><span class=""><span class="p-nickname p-name">[snarfed]2</span></span></span> <span class="e-content p-name">tiktok has invented indieweb 😆 <a href="https://www.tiktok.com/@kyle.siftree/video/7549226162501799182" target="_blank">https://www.tiktok.com/@kyle.siftree/video/7549226162501799182</a></span></span></div></div>
  250.  
  251. <div id="t1758222520298900" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758222520298900" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T19:08:40+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758222520298900" class="u-url time" title="2025-09-18T19:08:40+00:00">19:08</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar" style="opacity: .20;"><img src="https://chat.indieweb.org//assets/user.svg" width="20" height="20"/></div><span class=""><span class="p-nickname p-name">[snarfed]2</span></span></span> <span class="e-content p-name">the kids are alright</span></span></div></div>
  252.  
  253. <div id="t1758223120024500" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758223120024500" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T19:18:40+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758223120024500" class="u-url time" title="2025-09-18T19:18:40+00:00">19:18</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=https%3A%2F%2Fjamesg.blog%2Fassets%2Fcoffeeshop.jpg&amp;sig=ec5e94662fd24c2f04f7b135663ed46bc2dc544c028992fd4ea3bc7858987be2" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://jamesg.blog" class="author p-nickname p-name u-url" target="_blank">capjamesg</a></span></span> <span class="e-content p-name">the top comment: "the people yearn for blogs"</span></span></div></div>
  254.  
  255. <div class="line join cluster">user23 and athan joined the channel</div><div id="t1758224033510700" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758224033510700" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T19:33:53+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758224033510700" class="u-url time" title="2025-09-18T19:33:53+00:00">19:33</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=https%3A%2F%2Fartlung.com%2Fblog%2Fwp-content%2Fuploads%2F2023%2F02%2FIMG_9150-100x100.jpeg&amp;sig=bf5205ec7e437b92c48d301a8696f37a67ee151da9802ae424df370e520cea23" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://artlung.com" class="author p-nickname p-name u-url" target="_blank">[artlung]</a></span></span> <span class="e-content p-name">I am content with simultaneous invention even if it's decades apart</span></span></div></div>
  256.  
  257. <div class="line join cluster">TactfulCitrus, [KevinMarks], Virtual, barnaby and Maker joined the channel</div><div id="t1758227975699100" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758227975699100" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T20:39:35+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758227975699100" class="u-url time" title="2025-09-18T20:39:35+00:00">20:39</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=https%3A%2F%2Fjamesg.blog%2Fassets%2Fcoffeeshop.jpg&amp;sig=ec5e94662fd24c2f04f7b135663ed46bc2dc544c028992fd4ea3bc7858987be2" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://jamesg.blog" class="author p-nickname p-name u-url" target="_blank">capjamesg</a></span></span> <span class="e-content p-name"><a href="https://ohhelloana.blog/why/" target="_blank">https://ohhelloana.blog/why/</a></span></span></div></div>
  258.  
  259. <div id="t1758227977542900" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758227977542900" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T20:39:37+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758227977542900" class="u-url time" title="2025-09-18T20:39:37+00:00">20:39</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=https%3A%2F%2Fjamesg.blog%2Fassets%2Fcoffeeshop.jpg&amp;sig=ec5e94662fd24c2f04f7b135663ed46bc2dc544c028992fd4ea3bc7858987be2" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://jamesg.blog" class="author p-nickname p-name u-url" target="_blank">capjamesg</a></span></span> <span class="e-content p-name">[edit] <a href="https://ohhelloana.blog/why/" target="_blank">https://ohhelloana.blog/why/</a></span></span></div></div>
  260.  
  261. <div id="t1758227990106300" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758227990106300" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T20:39:50+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758227990106300" class="u-url time" title="2025-09-18T20:39:50+00:00">20:39</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=http%3A%2F%2Floqi.me%2Flogo%2Floqisaur.png&amp;sig=3571041228810c0664972bd517c3e0cb2b50fe82c7359f310bed393df91a84e0" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://loqi.me" class="author p-nickname p-name u-url" target="_blank">Loqi</a></span></span> <span class="e-content p-name">[preview] [Ana Rodrigues] “Why would anybody start a website?”</span></span></div></div>
  262.  
  263. <div id="t1758228840465100" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758228840465100" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T20:54:00+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758228840465100" class="u-url time" title="2025-09-18T20:54:00+00:00">20:54</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=https%3A%2F%2Ftantek.com%2Flogo.jpg&amp;sig=fdc026586d46976e19df06a113be643ff26d1dec5e3cb4e70d23224b6b3de6d0" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://Tantek.com" class="author p-nickname p-name u-url" target="_blank">[tantek]</a></span></span> <span class="e-content p-name">why &lt;&lt; 2025-09-18 <code>{{ana}}</code>: [<a href="https://ohhelloana.blog/why/" target="_blank">https://ohhelloana.blog/why/</a> “Why would anybody start a website?”]</span></span></div></div>
  264.  
  265. <div id="t1758228841577000" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758228841577000" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T20:54:01+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758228841577000" class="u-url time" title="2025-09-18T20:54:01+00:00">20:54</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=http%3A%2F%2Floqi.me%2Flogo%2Floqisaur.png&amp;sig=3571041228810c0664972bd517c3e0cb2b50fe82c7359f310bed393df91a84e0" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://loqi.me" class="author p-nickname p-name u-url" target="_blank">Loqi</a></span></span> <span class="e-content p-name">ok, I added "2025-09-18 <code>{{ana}}</code>: [<a href="https://ohhelloana.blog/why/" target="_blank">https://ohhelloana.blog/why/</a> “Why would anybody start a website?”]" to the "See Also" section of <a href="https://indieweb.org/why" target="_blank">/why</a> <a href="https://indieweb.org/wiki/index.php?diff=104653&amp;oldid=102216" target="_blank">https://indieweb.org/wiki/index.php?diff=104653&amp;oldid=102216</a> </span></span></div></div>
  266.  
  267. <div id="t1758228914279000" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758228914279000" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T20:55:14+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758228914279000" class="u-url time" title="2025-09-18T20:55:14+00:00">20:55</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=http%3A%2F%2Floqi.me%2Flogo%2Floqisaur.png&amp;sig=3571041228810c0664972bd517c3e0cb2b50fe82c7359f310bed393df91a84e0" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://loqi.me" class="author p-nickname p-name u-url" target="_blank">Loqi</a></span></span> <span class="e-content p-name">[Ana_R] has 7 karma in this channel over the last year (15 in all channels)</span></span></div></div>
  268.  
  269. <div id="t1758228914256000" class="h-entry line msg-message "><div class="in"><a href="https://chat.indieweb.org/2025-09-18#t1758228914256000" class="hash">#</a> <time class="dt-published" datetime="2025-09-18T20:55:14+00:00"><a href="https://chat.indieweb.org/2025-09-18/1758228914256000" class="u-url time" title="2025-09-18T20:55:14+00:00">20:55</a></time> <span class="text"><span class="nick p-author h-card"><div class="avatar"><img src="https://chat.indieweb.org/img.php?url=https%3A%2F%2Ftantek.com%2Flogo.jpg&amp;sig=fdc026586d46976e19df06a113be643ff26d1dec5e3cb4e70d23224b6b3de6d0" width="20" height="20" class="u-photo"/></div><span class=""><a href="http://Tantek.com" class="author p-nickname p-name u-url" target="_blank">[tantek]</a></span></span> <span class="e-content p-name">worth indienewsing! [Ana_R]++</span></span></div></div>
  270.  
  271.  </div>
  272.  <span id="bottom"></span>
  273. </div>
  274.  
  275.  <input id="active-channel" type="hidden" value="#indieweb">
  276.  <input id="tz-offset" type="hidden" value="+00:00">
  277.  
  278. <div id="chat-footer">
  279.      <div id="join_prompt">
  280.  <button type="button" id="join_btn">Join the Chat</button>
  281.  (or join via <a href="https://indieweb.org/discuss#Join_Discussions">Discord, IRC<!--, Matrix official bridge disabled --></a>,
  282.  or <a href="https://chat.indieweb.org/slack">Slack</a>).
  283.  Any problems? Please file an
  284.  <a href="https://github.com/indieweb/chat.indieweb.org/issues">issue on GitHub</a>.
  285. </div>
  286.  
  287. <div id="signin" class="hidden">
  288.  enter nickname: <input type="text" id="nickname" autocomplete="off" />
  289. </div>
  290.  
  291. <div id="connection_status" class="hidden">
  292.  <input type="text" readonly="readonly" id="connection_status_field" />
  293. </div>
  294.  
  295. <div id="chat" class="hidden">
  296.  <input type="text" id="message" autocomplete="off" />
  297.  <span id="notify_control" class="hidden">
  298.    <button type="button" id="notify_btn">Enable Notifications</button>
  299.  </span>
  300. </div>
  301.  
  302.  
  303. <div id="irc_notice" class="hidden"><div class="pad">
  304.  <button type="button" class="close" id="close_notice_btn">×</button>
  305.  <span class="nick" id="irc_notice_nick"></span>
  306.  <span class="text" id="irc_notice_text"></span>
  307. </div></div>
  308.  
  309.  
  310. <style type="text/css">
  311. .hidden {
  312.  display: none;
  313. }
  314. #join_prompt button {
  315.  padding: 4px;
  316.  font-size: 15px;
  317.  background: #94dfef;
  318.  border: 1px #78cee1 solid;
  319.  border-radius: 4px;
  320. }
  321. #notify_control button {
  322.  font-size: 15px;
  323.  background: #ccc;
  324.  border: 1px #999 solid;
  325.  border-radius: 4px;
  326.  float:right;
  327. }
  328. #notify_control button.enabled {
  329.  border: 1px #78cee1 solid;
  330.  background: #94dfef;
  331. }
  332. #connection_status_field {
  333.  width: 300px;
  334. }
  335. #message {
  336.  font-size: 15px;
  337.  width: 400px;
  338. }
  339. #irc_notice {
  340.  position: absolute;
  341.  bottom: 60px;
  342.  left: 20px;
  343.  background: #f2dede;
  344.  border: 2px #ebccd1 solid;
  345.  color: #a94442;
  346.  border-radius: 4px;
  347. }
  348. #irc_notice .pad {
  349.  margin: 15px;
  350. }
  351. #irc_notice .nick {
  352.  font-weight: bold;
  353. }
  354. #irc_notice .close {
  355.  position: relative;
  356.  top: -6px;
  357.  right: -9px;
  358.  border: 0;
  359.  float: right;
  360.  cursor: pointer;
  361.  background: 0 0;
  362.  -webkit-appearance: none;
  363.  font-size: 21px;
  364.  font-weight: 700;
  365.  line-height: 1;
  366.  color: #000;
  367.  text-shadow: 0 1px 0 #fff;
  368.  opacity: 0.2;
  369.  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  370. }
  371. #irc_notice .close:hover {
  372.  opacity: 0.5;
  373. }
  374. </style>
  375.  
  376. <script>
  377. document.getElementById('close_notice_btn').addEventListener('click', function(){
  378.  document.getElementById('irc_notice').classList.add('hidden');
  379. });
  380.  
  381.  var join_btn = document.getElementById('join_btn');
  382.  var notify_btn = document.getElementById('notify_btn');
  383.  var message_box = document.getElementById('message');
  384.  var nick_field = document.getElementById('nickname');
  385.  var status_field = document.getElementById('connection_status_field');
  386.  var notify = false;
  387.  var nickname;
  388.  var nickname_regex = null;
  389.  var nickname_self_regex = null;
  390.  var connected = false;
  391.  var chat_session = false;
  392.  
  393.  join_btn.addEventListener('click', function(){
  394.    document.getElementById('join_prompt').classList.add('hidden');
  395.    document.getElementById('signin').classList.remove('hidden');
  396.    document.querySelector('.logs').classList.add('active-chat');
  397.    if(get_nick_from_cookie()) {
  398.      nick_field.value = get_nick_from_cookie();
  399.    }
  400.    nick_field.focus();
  401.    window.scrollTo(0,document.body.offsetHeight);
  402.  
  403.    var nick_key_listener = function(e) {
  404.      if(e.keyCode == 13) {
  405.        if(!connected) {
  406.          show_notice("connecting...","connecting to the chat room...");
  407.        }
  408.      }
  409.    };
  410.    nick_field.addEventListener("keypress", nick_key_listener);
  411.    
  412.  });
  413.  
  414.  notify_btn.addEventListener('click', function(){
  415.    if(notify){
  416.        notify = false;
  417.        notify_btn.classList.remove('enabled');
  418.        notify_btn.innerHTML = 'Enabled Notifications';
  419.    } else {
  420.        if (!("Notification" in window)) {
  421.            alert("Notifications not supported on this browser.");
  422.        } else if (Notification.permission === "granted") {
  423.            notify = true;
  424.            notify_btn.classList.add('enabled');
  425.            notify_btn.innerHTML = 'Disable Notifications';
  426.        } else if (Notification.permission !== 'denied') {
  427.            Notification.requestPermission(function (permission) {
  428.                if (permission === "granted") {
  429.                    notify = true;
  430.                    notify_btn.classList.add('enabled');
  431.                    notify_btn.innerHTML = 'Disable Notifications';
  432.                }
  433.            });
  434.        }
  435.    }
  436.  });
  437.  
  438.  nick_field.addEventListener('keypress', function(e){
  439.    if(e.keyCode == 13) {
  440.      set_nick(nick_field.value);
  441.      document.getElementById('message').focus();
  442.      join(nickname);
  443.      activate_chat_field();
  444.    }
  445.  });
  446.  
  447. function activate_chat_field() {
  448.  document.getElementById('signin').classList.add('hidden');
  449.  document.getElementById('chat').classList.remove('hidden');
  450.  document.querySelector('.logs').classList.add('active-chat');
  451.  var message_key_listener = function(e) {
  452.    if(e.keyCode == 13) {
  453.      console.log("Sending to IRC: "+message_box.value);
  454.      if(!connected) {
  455.        show_notice("connecting...","connecting to the chat room...");
  456.      }
  457.      send(message_box.value);
  458.    }
  459.  };
  460.  message_box.addEventListener("keypress", message_key_listener);
  461. }
  462.  
  463. function get_nick_from_cookie() {
  464.  return Cookies.get("nickname");
  465. }
  466.  
  467. function set_nick(nick) {
  468.  nickname = nick;
  469.  nickname_regex = new RegExp(nickname, "i");
  470.  nickname_self_regex = new RegExp('^# \\d\\d:\\d\\d \\[?'+nickname, "i");
  471.  Cookies.set("nickname", nickname);
  472. }
  473.  
  474. function get_session_from_cookie() {
  475.  return Cookies.get("gatewaysession");
  476. }
  477.  
  478. function set_session(session) {
  479.  chat_session = session;
  480.  Cookies.set("gatewaysession", session);
  481. }
  482.  
  483. function show_notice(nick, text) {
  484.  document.getElementById('irc_notice').classList.remove('hidden');
  485.  document.getElementById('irc_notice_nick').innerHTML = nick;
  486.  document.getElementById('irc_notice_text').innerHTML = text;
  487. }
  488. function hide_notice() {
  489.  document.getElementById('irc_notice').classList.add('hidden');
  490.  document.getElementById('irc_notice_nick').innerHTML = "";
  491.  document.getElementById('irc_notice_text').innerHTML = "";
  492. }
  493. function check_alert(data){
  494.  if(!connected) {
  495.    console.log("Not connected. Got text: ");
  496.    console.log(data);
  497.    if(data.nick == nickname) {
  498.      connected = true;
  499.      console.log("Connected");
  500.      hide_notice();
  501.    }
  502.  }
  503.  if(notify){
  504.    if(data.line.match(nickname_regex) && data.nick != nickname) {
  505.      if (!("Notification" in window)) {
  506.          console.log("Notifications not supported on this browser.");
  507.      } else if (Notification.permission === "granted") {
  508.          var notification = new Notification(text);
  509.      } else if (Notification.permission !== 'denied') {
  510.          Notification.requestPermission();
  511.      }
  512.    }
  513.  }
  514. }
  515. function send(text) {
  516.  xhr = new XMLHttpRequest();
  517.  
  518.  xhr.open('POST', encodeURI('/send.php?action=input'));
  519.  xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  520.  xhr.onload = function() {
  521.    var response = JSON.parse(xhr.responseText);
  522.    if (xhr.status === 200 && response.username) {
  523.      console.log("sent");
  524.      message_box.value = '';
  525.    }
  526.    else {
  527.      alert('Request failed: ' + response.error);
  528.    }
  529.  };
  530.  xhr.send('user_name=' + encodeURIComponent(nickname)
  531.    + '&text=' + encodeURIComponent(text)
  532.    + '&session=' + encodeURIComponent(chat_session)
  533.    + '&channel=' + encodeURIComponent(document.getElementById('active-channel').value));
  534. }
  535. function join(nick) {
  536.  xhr = new XMLHttpRequest();
  537.  
  538.  xhr.open('POST', encodeURI('/send.php?action=join'));
  539.  xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  540.  xhr.onload = function() {
  541.    console.log("Got status "+xhr.status);
  542.    var response = JSON.parse(xhr.responseText);
  543.    console.log(response);
  544.    if (response.status=="connecting") {
  545.      console.log("connecting...");
  546.      set_session(response.session);
  547.    } else if(response.status=="connected") {
  548.      connected = true;
  549.      console.log("connected");
  550.      set_session(response.session);
  551.      hide_notice();
  552.    } else {
  553.      alert('Request failed.  Returned status of ' + xhr.status);
  554.    }
  555.  };
  556.  xhr.send('user_name=' + encodeURIComponent(nickname) + '&channel=' + encodeURIComponent(document.getElementById('active-channel').value));
  557. }
  558.  
  559. // Check if there is an active session in the cookie
  560. if(chat_session=get_session_from_cookie()) {
  561.  xhr = new XMLHttpRequest();
  562.  
  563.  xhr.open('POST', encodeURI('/send.php?action=session'));
  564.  xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  565.  xhr.onload = function() {
  566.    var response = JSON.parse(xhr.responseText);
  567.    if(response && response.username) {
  568.      set_nick(response.username);
  569.      connected = true;
  570.      hide_notice();
  571.      document.getElementById('join_prompt').classList.add('hidden');
  572.      document.getElementById('signin').classList.add('hidden');
  573.      document.getElementById('chat').classList.remove('hidden');
  574.      activate_chat_field();
  575.      window.scrollTo(0,document.body.offsetHeight);
  576.    } else {
  577.      set_session("");
  578.    }
  579.  }
  580.  xhr.send('session=' + encodeURIComponent(chat_session));
  581. }
  582.  
  583. </script>
  584.  
  585.  <div class="clear"></div>
  586. </div>
  587.  
  588. <script type="text/javascript">/*<![CDATA[*/
  589.  if(window.location.hash && window.location.hash != '#top' && window.location.hash != '#bottom') {
  590.    var n = document.getElementById(window.location.hash.replace('#',''));
  591.    n.classList.add('hilite');
  592.  }
  593.  window.addEventListener("hashchange", function(){
  594.    var n = document.getElementsByClassName('line');
  595.    Array.prototype.filter.call(n, function(el){ el.classList.remove('hilite') });
  596.    var n = document.getElementById(window.location.hash.replace('#',''));
  597.    n.classList.add('hilite');
  598.  }, false);
  599. /*]]>*/</script>
  600.  
  601. </main>
  602.  
  603. </body>
  604. </html>
  605.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda