屏蔽知乎首页所有推荐内容的火狐插件.
// 知乎推荐内容屏蔽器
(function() {
  'use strict';

  // 屏蔽推荐 feed 中的内容
  function blockRecommendations() {
    // 检查是否在首页
    if (!window.location.pathname.match(/^\/?$|^\/follow$/)) {
      return;
    }

    // 获取当前激活的标签
    const activeTab = document.querySelector('.Topstory-tabs .TopstoryTabs-link.is-active');

    // 如果当前是"推荐"标签,隐藏所有内容
    if (activeTab && activeTab.textContent.includes('推荐')) {
      hideRecommendFeed();
    }

    // 隐藏推荐标签下的所有卡片中带有"推荐"标记的内容
    hideRecommendedCards();
  }

  // 隐藏推荐 feed
  function hideRecommendFeed() {
    const feedList = document.querySelector('.Topstory-recommend .TopstoryMain');
    if (feedList) {
      feedList.style.display = 'none';
    }
  }

  // 隐藏带有推荐标记的卡片
  function hideRecommendedCards() {
    // 隐藏首页推荐的内容项
    const cards = document.querySelectorAll('.Card.TopstoryItem');
    cards.forEach(card => {
      // 检查是否有"推荐"来源标记
      const sourceTag = card.querySelector('.FeedSource');
      if (sourceTag && sourceTag.textContent.includes('推荐')) {
        card.style.display = 'none';
      }
    });

    // 隐藏整个推荐 feed 区域
    const recommendSection = document.querySelector('[data-za-detail-view-path-module="TopstoryRecommend"]');
    if (recommendSection) {
      recommendSection.style.display = 'none';
    }
  }

  // 自动切换到"关注"标签
  function switchToFollowTab() {
    // 只在首页执行
    if (!window.location.pathname.match(/^\/?$/)) {
      return;
    }

    const followTab = document.querySelector('.Topstory-tabs .TopstoryTabs-link[href="/follow"]');
    if (followTab && !followTab.classList.contains('is-active')) {
      followTab.click();
    }
  }

  // 使用 MutationObserver 监听 DOM 变化
  function observeDOM() {
    const observer = new MutationObserver((mutations) => {
      blockRecommendations();
    });

    observer.observe(document.body, {
      childList: true,
      subtree: true
    });
  }

  // 页面加载完成后执行
  function init() {
    // 先尝试切换到关注标签
    switchToFollowTab();

    // 屏蔽推荐内容
    blockRecommendations();

    // 监听 DOM 变化以处理动态加载的内容
    observeDOM();
  }

  // 确保 DOM 加载完成
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', init);
  } else {
    init();
  }

  // 同时也在 window.load 时再次执行,确保所有动态内容都被处理
  window.addEventListener('load', () => {
    setTimeout(init, 500);
  });
})();