HN highlight fresh comments

Highlights fresh comments on Hacker News.

// ==UserScript==
// @name        HN highlight fresh comments
// @description Highlights fresh comments on Hacker News.
// @version     1
// @namespace   https://greasyfork.org/en/scripts/6955-hacker-fresh
// @include     http://news.ycombinator.com/*
// @include     https://news.ycombinator.com/*
// @grant       GM_addStyle
// ==/UserScript==

GM_addStyle(".fresh-item { background-color: #FEE67F; border-radius: 3px; }");

(function() {
  'use strict';
  function get_comment_id(vote_box) {
    var item_link_ele = vote_box.parentElement.querySelector('.comhead > a:nth-child(2)');

    // Check for deleted comment
    if (item_link_ele === null) {
      return null;
    }

    var link = new URL(item_link_ele.href);
    return link.searchParams.get('id');
  }

  var all_vote_box = document.querySelectorAll('tbody > tr > td[valign=top]');

  for (var e of all_vote_box) {
    e.classList.add("vote-box");

    var item_id = get_comment_id(e);
    if (item_id !== null) {
      var status = localStorage.getItem(item_id);

      if (status === null) {
        e.classList.add("fresh-item");
        localStorage.setItem(item_id, "seen");
      }
    }
  }
})();