From 4f9a3fc293baeaef9b7faef4b5f117c24594f41d Mon Sep 17 00:00:00 2001 From: xf0r3m Date: Thu, 28 Sep 2023 11:32:23 +0200 Subject: [PATCH] Aktualizacji funkcji pomocy immudex-newsfeed - BT #118 --- tools/immudex-newsfeed | 64 +++++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/tools/immudex-newsfeed b/tools/immudex-newsfeed index df85686..fddc38d 100755 --- a/tools/immudex-newsfeed +++ b/tools/immudex-newsfeed @@ -37,8 +37,13 @@ function show() { if grep -q '' $bufferFile; then sed -i -e 's,,,g' -e 's,,,g' $bufferFile; fi - newsCount=$(grep -o '.*' $bufferFile | wc -l | awk '{printf $1}'); - count=1 + if [ ! "$2" ]; then + newsCount=$(grep -o '.*' $bufferFile | wc -l | awk '{printf $1}'); + count=1 + else + count=$(expr $2 + 1); + newsCount=$count; + fi while [ $count -le $newsCount ]; do t=$(grep -o '.*' $bufferFile | sed -n "${count}p"); title=$(titleSanitize $t); @@ -62,14 +67,21 @@ function getLink() { echo -n $link; } +function executeCreateBufferFile() { + fname=$1; + export markList=$(grep -o '' $fname | sort | uniq | awk '{printf $1" "}'); + createBufferFile $fname; +} + function help() { - echo "newsfeed - fetch and browse news feed from rss and atom channels"; - echo "morketsmerke.net; COPYLEFT @ 2022"; + echo "immudex-newsfeed - fetch and browse news feed from rss and atom channels"; + echo "@ 2023 morketsmerke.org"; echo; echo "Options:"; echo " --list - shows numbered list of names, saved in ~/.newsfeed names and"; echo " URL of rss channels"; - echo " --check - fetching new rss channel file from source"; + echo " --check [--show-one] - fetching new rss channel file from source"; + echo " [ and show first news from channel (as a notification) ]"; echo " --show - shows numbered list of news titles."; echo " Number of channel you can get from --list option."; echo " --open - open web browser on link, which are under"; @@ -110,23 +122,27 @@ else wget $rssLink -O /tmp/new_newsfeed_${i}.xml 2>/dev/null; if [ $? -eq 0 ]; then echo "[ OK ]"; else echo -e "\nThere is no Internet connection"; exit 1; fi - if [ -s /tmp/newsfeed_${i}.xml ]; then - amountOfNewNewses=$(diff /tmp/new_newsfeed_${i}.xml /tmp/newsfeed_${i}.xml | grep '' | wc -l); + if [ -s /tmp/newsfeed_${i}.xml ]; then + executeCreateBufferFile /tmp/new_newsfeed_${i}.xml; + amountOfNewNewses=$(diff /tmp/new_newsfeed_${i}.xml.buffer /tmp/newsfeed_${i}.xml.buffer | grep '<title>' | wc -l); if [ $amountOfNewNewses -gt 0 ]; then notify-send "$nameOfSubscription" "New $amountOfNewNewses newses" --icon=/usr/share/icons/rss.png; - j=1; - sleep 1; - while [ $j -le 1 ]; do - news=$(diff /tmp/new_newsfeed_${i}.xml /tmp/newsfeed_${i}.xml | \ - grep '<title>' | sed -n "${j}p" | sed 's/<title>//' | \ - sed 's/<\/title>//' | sed 's/[<>]//' | \ - sed 's/^[[:space:]]*//g'); - notify-send "newsfeed" "${nameOfSubscription}: ${news}" -t 10000 --icon=/usr/share/icons/rss.png; - sleep 1; - j=$((j + 1)); - done + mv /tmp/new_newsfeed_${i}.xml /tmp/newsfeed_${i}.xml; + executeCreateBufferFile /tmp/newsfeed_${i}.xml; + news=$(show /tmp/newsfeed_${i}.xml 1); + notify-send "newsfeed" "${nameOfSubscription}:\n${news}" -t ${i}0000 --icon=/usr/share/icons/rss.png; + #j=1; + #sleep 1; + #while [ $j -le 1 ]; do + # news=$(diff /tmp/new_newsfeed_${i}.xml /tmp/newsfeed_${i}.xml | \ + # grep '<title>' | sed -n "${j}p" | sed 's/<title>//' | \ + # sed 's/<\/title>//' | sed 's/[<>]//' | \ + # sed 's/^[[:space:]]*//g'); + # notify-send "newsfeed" "${nameOfSubscription}: ${news}" -t 10000 --icon=/usr/share/icons/rss.png; + # sleep 1; + # j=$((j + 1)); + #done fi - mv /tmp/new_newsfeed_${i}.xml /tmp/newsfeed_${i}.xml; else mv /tmp/new_newsfeed_${i}.xml /tmp/newsfeed_${i}.xml; amountOfNews=$(grep '<title>' /tmp/newsfeed_${i}.xml | sed -n '2,$p' | wc -l); @@ -135,12 +151,14 @@ else amountOfNews=$(sed 's/<\/title>/\n/g' /tmp/newsfeed_${i}.xml | sed 's/<item>/\n/g' | grep '<title>' | wc -l) fi notify-send "$nameOfSubscription" "New $amountOfNews newses" --icon=/usr/share/icons/rss.png; + executeCreateBufferFile /tmp/newsfeed_${i}.xml; + if [ "$2" ] && [ "--show-one" ]; then + news=$(show /tmp/newsfeed_${i}.xml 1); + notify-send "newsfeed" "${nameOfSubscription}:\n${news}" -t ${i}0000 --icon=/usr/share/icons/rss.png; + fi fi fi - fname="/tmp/newsfeed_${i}.xml"; - export markList=$(grep -o '</[a-z]*\:*[a-z]*[A-Z]*[a-z]*[A-Z]*[a-z]*>' $fname | sort | uniq | awk '{printf $1" "}'); - createBufferFile $fname; - i=$((i + 1)); + i=$((i + 1)); done if [ "$1" ] && [ "$1" = "--show" ] && [ "$2" ] && [ $2 -gt 0 ]; then -- 2.39.5