Duolingo Auto-Follow Fix

Fixing the things Duo breaks. Auto-follow discussions upon posting either a comment or a reply. (Works for sentence discussions too.)

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Duolingo Auto-Follow Fix
// @namespace    mog86uk-duo-autofollowfix
// @version      2.01
// @description  Fixing the things Duo breaks. Auto-follow discussions upon posting either a comment or a reply. (Works for sentence discussions too.)
// @author       mog86uk (aka. testmoogle)
// @match        https://www.duolingo.com/comment/*
// @match        https://www.duolingo.com/topic/*
// @match        https://www.duolingo.com/discussion
// @grant        none
// @run-at       document-idle
// ==/UserScript==

(function() {
    'use strict';
    document.addEventListener('click', function(evt) {
        var el = evt.target;
        var followButtonNotClicked = document.querySelector('button#watch:not(.checkmark)');
        if (followButtonNotClicked !== null) {
            if (el.nodeName === 'BUTTON' && (el.id === 'post-reply' || el.id === 'post-comment')) {
                followButtonNotClicked.click();
            }
        }
    }, true);
})();