]> gitweb.morketsmerke.org Git - immudex-testing.git/commitdiff
Aktualizacji funkcji pomocy immudex-newsfeed - BT #118
authorxf0r3m <jakubstasinski@protonmail.com>
Thu, 28 Sep 2023 09:32:23 +0000 (11:32 +0200)
committerxf0r3m <jakubstasinski@protonmail.com>
Thu, 28 Sep 2023 09:32:23 +0000 (11:32 +0200)
tools/immudex-newsfeed

index df85686c419d16432fbf993bf29f1fe07d79c594..fddc38dae26a95cb135faa6e595672d3daa87745 100755 (executable)
@@ -37,8 +37,13 @@ function show() {
   if grep -q '<lastBuildDate>' $bufferFile; then
     sed -i -e 's,<lastBuildDate>,<pubDate>,g' -e 's,</lastBuildDate>,</pubDate>,g' $bufferFile;
   fi
-  newsCount=$(grep -o '<title>.*</title>' $bufferFile | wc -l | awk '{printf $1}');
-  count=1
+  if [ ! "$2" ]; then
+    newsCount=$(grep -o '<title>.*</title>' $bufferFile | wc -l | awk '{printf $1}');
+    count=1
+  else
+    count=$(expr $2 + 1);
+    newsCount=$count;
+  fi
   while [ $count -le $newsCount ]; do
     t=$(grep -o '<title>.*</title>' $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 '</[a-z]*\:*[a-z]*[A-Z]*[a-z]*[A-Z]*[a-z]*>' $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 <number_of_channel> - shows numbered list of news titles.";
   echo "    Number of channel you can get from --list option.";
   echo "  --open <number_of_title> - 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 '<title>' | 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