From c5224807354f3247645cdfac1b6a77ef1af1bf28 Mon Sep 17 00:00:00 2001 From: Recolic Keghart <root@recolic.net> Date: Thu, 7 Dec 2017 00:16:55 +0800 Subject: [PATCH] Upgrade: check if question is answered. Auto mute --- README.md | 12 ++---- badid.mp3 | Bin 0 -> 25736 bytes d.fish | 62 ------------------------------- daemon.fish | 85 +++++++++++++++++++++++++++++++++++++++++++ informed.sh | 2 - gl.awk => isopen.awk | 24 +++++++----- 6 files changed, 104 insertions(+), 81 deletions(-) create mode 100644 badid.mp3 delete mode 100755 d.fish create mode 100755 daemon.fish delete mode 100755 informed.sh rename gl.awk => isopen.awk (60%) diff --git a/README.md b/README.md index 71296ee..280bd5d 100644 --- a/README.md +++ b/README.md @@ -9,18 +9,14 @@ Linux. curl. fish. awk. One mp3 player available on command line. 打开微信 微助教 å¦ç”Ÿ ç”题,关é—wifi,按ä½é¡µé¢é€‰æ‹©åœ¨æµè§ˆå™¨æ‰“开,然åŽå¤åˆ¶ä¸‹è¿™ä¸ªé¡µé¢çš„url。 -编辑d.fish,将urlå¡«å…¥set \_url "YourURLHere"。 +编辑daemon.fish,将url最åŽçš„openidå¡«å…¥set \_openid "YourIDHere"。 -./d.fish 它会æ¯5ç§’æ£€æŸ¥ä¸€æ¬¡å¹¶åˆ¤æ–æ˜¯å¦éœ€è¦ç”题。 +./daemon.fish 它会æ¯5ç§’æ£€æŸ¥ä¸€æ¬¡å¹¶åˆ¤æ–æ˜¯å¦éœ€è¦ç”题。 -d.fish使用了gnomeçš„notify-send,kde/å…¶ä»–deç”¨æˆ·è¯·æ ¹æ®è‡ªå·±çš„æƒ…å†µé€‰æ‹©ä¿®æ”¹æˆ–åˆ é™¤æ°”æ³¡æé†’。 +daemon.fish使用了notify-sendï¼Œå…¶ä»–ç”¨æˆ·è¯·æ ¹æ®è‡ªå·±çš„æƒ…å†µé€‰æ‹©ä¿®æ”¹æˆ–åˆ é™¤æ°”æ³¡æé†’。 -d.fish默认使用mpg123/cvlcæ¥æ’放mp3ï¼Œå…¶ä»–æ’æ”¾å™¨ç”¨æˆ·è¯·æ ¹æ®è‡ªå·±æƒ…况进行修改。请将电脑声音调大。 +daemon.fish默认使用mpg123/cvlcæ¥æ’放mp3ï¼Œå…¶ä»–æ’æ”¾å™¨ç”¨æˆ·è¯·æ ¹æ®è‡ªå·±æƒ…况进行修改。请将电脑声音调大。 ## Tips -使用./informed.shæ¥åœæ¢ä¸€æ¬¡æé†’。 - æ ¹æ®ç»éªŒï¼Œurl一般会在1-2å°æ—¶åŽå¤±æ•ˆã€‚å› æ¤è¯·åœ¨è¯¾å‰èŽ·å–urlå¯åŠ¨è„šæœ¬å¹¶ç¡è§‰ã€‚ä½ å¯ä»¥ä½¿ç”¨juice ssh或超级本在床上完æˆè¿™ä¸€è¿‡ç¨‹ã€‚ - -è¦æƒ•以下情形: è€å¸ˆå‘出一个题,脚本å‘å‡ºè¦æŠ¥ï¼Œä½ æˆåŠŸç”题,è€å¸ˆåœ¨ç¬¬ä¸€ä¸ªé¢˜è¿‡æœŸä¹‹å‰å‘出第2ä¸ªé¢˜ï¼Œä½ ä¸çŸ¥é“。 diff --git a/badid.mp3 b/badid.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f8d3c42c5097fdd088ce73fbafb899c8ca47690e GIT binary patch literal 25736 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�kB1d?{-mDd_8?i-Mv{1S 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 QfM$F+unPeEKP>ux0AgkK3;+NC literal 0 HcmV?d00001 diff --git a/d.fish b/d.fish deleted file mode 100755 index 8a6c965..0000000 --- a/d.fish +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/fish -#Usage: fill _url with url of the page "å¦ç”Ÿ->ç”题". -#You must `echo "known" > /tmp/gay_known` to tell the script that you've been informed. - -set _url 'https://www.teachermate.com.cn/wechat/wechat/guide/answer?openid=0a26740fbf9429d1747f8bc8ff8bf1cb' - -set _audio_player "mpg123" -#set _audio_player "cvlc --play-and-exit" - -function _is_informed - # May not exist. - if test (cat /tmp/gay_known 2>&1) = "known" - echo "LOG> skipped because informed." - return 0 - # ok. - else - echo "LOG> not informed. Launching cvlc." - return 1 - end -end - -function _on_opened - if _is_informed - return 0 - end - eval $_audio_player fire.mp3 > /dev/null 2>&1 - notify-send "Warning: Question opened!" "Gay question opened!" - echo "LOG> Detected!" -end - -function _on_error - eval $_audio_player error.mp3 > /dev/null 2>&1 - notify-send "Warning: Gay cookie invalid!" "Gay cookie expired!" - echo "LOG> Error occurred! Maybe invalid cookie." -end - -function _on_notopen - if not test -e /tmp/gay_known - return 0 - end - if not rm /tmp/gay_known - echo "WARNING::::::: UNABLE TO REMOVE /tmp/gay_known. Please deal with this programming error immediately!!!!!" - _on_error - end -end - -while true - set _status (curl "$_url" 2>/dev/null | awk -f gl.awk) - date - if test "$_status" = "OPENED" - _on_opened - end - if test "$_status" = "UNKNOWN_ERROR" - _on_error - end - if test "$_status" = "NOT_OPENED" - _on_notopen - end - sleep 5 -end - - diff --git a/daemon.fish b/daemon.fish new file mode 100755 index 0000000..6be0f2c --- /dev/null +++ b/daemon.fish @@ -0,0 +1,85 @@ +#!/usr/bin/fish +#Usage: fill _url with url of the page "å¦ç”Ÿ->ç”题". +#You must `echo "known" > /tmp/gay_known` to tell the script that you've been informed. + +set _openid '593712dbd06b5808e4d4a099e8ad4c8d' +set _url "https://www.teachermate.com.cn/wechat/wechat/guide/answer?openid=$_openid" + +set _audio_player "mpg123" +#set _audio_player "cvlc --play-and-exit" + +function _check_and_warn + if _all_answered + echo "LOG> exit because all question answered." + return 0 + end + eval $_audio_player fire.mp3 > /dev/null 2>&1 + notify-send "Warning: Question opened!" "Question opened!" + echo "LOG> Detected!" +end + +function _on_unknown_error + eval $_audio_player error.mp3 > /dev/null 2>&1 + notify-send "Warning: Error occurred!" "Error occurred!" + echo "LOG> Error occurred!" +end + +function _on_openid_error + eval $_audio_player badid.mp3 > /dev/null 2>&1 + notify-send "Warning: Invalid openid!" "Error: Invalid openid." + echo "LOG> Invalid openid." +end + +set _tmp_path "/tmp/._teachmate_fucker_html" + +set awk_urlfilter ' +BEGIN { + start = 0 +} + +{ + if (match($0, "ä»¥ä¸‹è¯¾å ‚åŒ…å«å¼€å¯çš„题目")) { + start = 1 + } + if (match($0, "ä»¥ä¸‹è¯¾å ‚æš‚æœªå¼€å¯é¢˜ç›®") != 0) { + exit + } else if (start == 1) { + print $0 + } +} +' + +function _all_answered + # This function will return true if no question is opened, so OPENED check is unnecessary. + for class in (cat $_tmp_path | awk $awk_urlfilter | grep 'www.teachermate.com.cn' | sed 's/.*course_id=//g' | sed 's/&open_id=.*//g') + curl --header "openId: $_openid" "https://www.teachermate.com.cn/wechat-api/v1/questions/$class" > $_tmp_path 2>/dev/null + if not grep 'question' $_tmp_path + echo "ERROR> curl wechat-api failed. $class $_openid" + _on_unknown_error + end + if grep '"isAnswered":0' $_tmp_path + # return false + return 1 + end + end + # return true + return 0 +end + +# main loop +while true + date + curl "$_url" > $_tmp_path 2>/dev/null + # network error will be reported by isopen.awk. + set _status (cat $_tmp_path | awk -f isopen.awk) + if test "$_status" = "UNKNOWN_ERROR" + _on_unknown_error + else if test "$_status" = "OPENID_ERROR" + _on_openid_error + else if test "$_status" = "OPENED" + _check_and_warn + end + sleep 5 +end + + diff --git a/informed.sh b/informed.sh deleted file mode 100755 index 3fd83a7..0000000 --- a/informed.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/sh -echo "known" > /tmp/known diff --git a/gl.awk b/isopen.awk similarity index 60% rename from gl.awk rename to isopen.awk index d891a02..6484430 100644 --- a/gl.awk +++ b/isopen.awk @@ -1,36 +1,42 @@ #!/usr/bin/awk +# Meaning of a: 0-2: check END{} +# 4: + BEGIN { - a = 0 + a = 999 } { if (match($0, "\"msg\":\"unauthorized\"") != 0) { - a = 999 - exit 2 + a = 2 + exit } if (match($0, "ä»¥ä¸‹è¯¾å ‚åŒ…å«å¼€å¯çš„题目") != 0) { a = 1 - exit 1 + exit } if (match($0, "ä»¥ä¸‹è¯¾å ‚æš‚æœªå¼€å¯é¢˜ç›®") != 0) { - a = 1 + a = 0 } - if (a == 1 && (match($0, "概率统计-计算机1601-4") != 0)) { + if (a == 1 && (match($0, "single-line\">ç¼–å·:") != 0)) { a = 2 - exit 0 + exit } } END { - if (a == 2) { + if (a == 0) { print "NOT_OPENED" exit 0 } else if (a == 1) { print "OPENED" exit 1 + } else if (a == 2) { + print "OPENID_ERROR" + exit 2 } else { print "UNKNOWN_ERROR" - exit 2 + exit 3 } } -- GitLab