rsstool --wget --csv=@ @url[$i]( http://habrahabr.ru/rss) | iconv -c -f UTF-8 -t KOI8-R| grep SITE\@DATE\@URL\@TITLE\@DESC -v >/path_to_rss2email/feed_new_@rssname[$i].rss ( /path_to_rss2email/feed_new_habrahabr.rss)
diff -iaEbwB --strip-trailing-cr $path_temp/@rssarcfile[$i] (.. /path_to_rss2email/habrahabr.rss) $path_temp/feed_new_@rssname[$i].rss (.. /path_to_rss2email/feed_new_habrahabr.rss) | grep ^\\>\\ >$path_temp/@rssdiffer[$i] (.. /path_to_rss2email/habrahabr.diff)
#! /usr/bin/perl use MIME::Base64; $path_temp="/home/media/rsstool"; # / # - , url , open(config,"</etc/rss/rsstoemail.conf"); $numb=0; while (!eof(config)) { $strcnf=<config>; $strcnf=~tr/\n//d; (@rss[$numb],@rssname[$numb],@rssfeeds[$numb])=split "#", $strcnf; @rssarcfile[$numb]="@rssname[$numb].rss"; @rssdiffer[$numb]="@rssname[$numb].diff"; $numb=$numb+1; } close config; # - , url , # - foreach $srtname1(@rssarcfile) { if (! -e "$path_temp/$srtname1") { `echo >$path_temp/$srtname1`; } } # - # - $run=`ps -AH|grep -c rsstoemail.pl`; $run=~tr/\n//d; if ($run ne "1") { exit; } # - # foreach $i(@rss) { # - if (@rss[$i] ne "") { $chkdiff=""; # - `echo >$path_temp/@rssdiffer[$i]`; printf "run rsstool\n"; # , koi-8, `/sbin/myscript/rsstool --wget --csv=@ @rssfeeds[$i] | iconv -c -f UTF-8 -t KOI8-R| grep SITE\@DATE\@URL\@TITLE\@DESC -v >$path_temp/feed_new_@rssname[$i].rss`; # , `diff -iaEbwB --strip-trailing-cr $path_temp/@rssarcfile[$i] $path_temp/feed_new_@rssname[$i].rss | grep ^\\>\\ >$path_temp/@rssdiffer[$i]`; # $chkdiff=`grep \@ $path_temp/@rssdiffer[$i] -c`; $chkdiff=~tr/\n//d; # - if ($chkdiff ne "0") { my @toemail = (); my @original = (); # , , > diff # open(diffopen,"<$path_temp/@rssdiffer[$i]"); while (!eof(diffopen)) { $string = <diffopen>; $string=~s/^(\>\ )//; $string=~tr/\n//d; push (@toemail, $string); push (@original, $string); } close diffopen; # , , > diff # # # - $dirr=`date '+%Y-%m-%d-%H_%M_%S'`; $newm=$#toemail+1; printf "$dirr new messages $newm\n"; # - # foreach $difs(@toemail) { # # " $difs=~tr/\"//d; # $difs=~s/\ $//; $nmf=""; $date=""; $url=""; $bookname=""; $body=""; $resser=""; $ssurl=""; $sndusr=""; # ($nmf,$date,$url,$bookname,$body)=split '@', $difs; # , # if (@rssname[$i] eq "flibusta" or @rssname[$i] eq "librusec") { $body=~m/(.+?)(\ \ )/; $sndusr=$1; $sndusr=~tr/\n//d; } # # url ( # proxy.flibusta.net, flibusta.net, www.flibusta.net ) url if (@rssname[$i] eq "flibusta" or @rssname[$i] eq "flibustanewbooks") { ($resser,$ssurl)=split "\/b\/",$url; $resser=~m/(flibusta.net)/; if ($1 eq "flibusta.net") { $surl="http://flibusta.net/b/$ssurl/download\n"; } else { $surl=$url; } } else { $surl=$url; } # url ( # proxy.flibusta.net, flibusta.net, www.flibusta.net ) url # - - if (@rssname[$i] eq "flibustanewbooks") { ($book_auth,$book_name,$book_genre)=split "- ",$bookname; $bookname="$book_name - $book_auth - $book_genre"; } # - - # , # base64 SUBJ: $booknameenc=encode_base64("$bookname my_@rssname[$i]_rss"); $booknameenc=~tr/\n//d; $booknameenc="\=\?KOI8\-R\?B\?$booknameenc\?\="; # base64 SUBJ: # sleep 1; $dirr=`date '+%Y-%m-%d-%H_%M_%S'`; # # msgrss_2014-05-20-19_26_09 open(fopen,">>$path_temp/mail/msgrss_$dirr"); print fopen "From\:\ fromemail\@domen\.ru\n"; print fopen "To\:\ toemail\@gmail\.com\n"; print fopen "Subject\: $booknameenc\n"; print fopen "MIME-Version: 1.0\n"; print fopen "Content-Type: multipart/mixed;\n"; print fopen " boundary=\"----------12012917B16D15D68\"\n"; print fopen "------------12012917B16D15D68\n"; print fopen "Content-Type: text/plain; charset=koi8-r\n"; print fopen "Content-Transfer-Encoding: 8bit\n"; print fopen "\n"; print fopen "$nmf\n"; print fopen "$surl\n"; print fopen "$bookname\n"; print fopen "\n"; if ($sndusr ne "") { print fopen "sendbyuser:$sndusr\n"; } print fopen "\n"; print fopen "$body\n"; print fopen "\n"; close fopen; # msgrss_2014-05-20-09_26_09 } # # - `cp $path_temp/@rssdiffer[$i] $path_temp/arhiv/diffnew\_$dirr`; # - `echo >>$path_temp/@rssarcfile[$i]`; # open(arcrss,">>$path_temp/@rssarcfile[$i]"); foreach $difffs(@original) { $difffs=~s/^(\>\ )//; $difffs=~tr/\n//d; print arcrss "$difffs\n"; } close(arcrss); # } } } printf "start send messages\n"; # if ($hour eq "04" and $min<"30") { foreach $srtname(@rssarcfile) { `uniq -u $path_temp/$srtname >$path_temp/$srtname.tmp`; `mv -f $path_temp/$srtname.tmp $path_temp/$srtname`; } sleep 1000; } #
#! /usr/bin/perl # $path_all="/home/media/rsstool"; # $path_mail="$path_all/mail"; $path_mail_arhiv="$path_all/mail_arhiv"; $path_arhiv="$path_all/arhiv"; # _send @list_dupes=`/sbin/myscript/fdupes -f $path_mail|grep -v send|grep -v \^\$`; # foreach $fl(@list_dupes) { $fl=~tr/\n//d; `rm -f $fl`; printf "rm dupe $fl\n"; } # # _send @list_files=`ls $path_mail/ |grep -v send`; sleep 5; # ssmtp *_send foreach $i(@list_files) { $i=~tr/\n//d; printf "sended $path_mail/$i\n"; `/sbin/myscript/ssmtp toemail\@gmail.com \<$path_mail/$i`; `mv $path_mail/$i $path_mail/$i\_send`; sleep 1; } # ssmtp *_send # @all_files=`ls $path_mail/`; $cont=$#all_files-1000; if ($cont > 0) { printf "bigger 1000 to $cont\n"; for ($y=0; $y<$cont;$y++) { @all_files[$y]=~tr/\n//d; `mv $path_mail/@all_files[$y] $path_mail_arhiv`; printf "@all_files[$y]\n"; } } #
1#librusec#http://lib.rus.ec/polka/show/all/rss 2#flibusta#http://flibusta.net/polka/show/all/rss 3#nnm#http://nnm.me/rss/ 4#habrahabr#http://habrahabr.ru/rss 5#3dnewssoft#http://www.3dnews.ru/software-news/rss/ 6#3dnewshard#http://www.3dnews.ru/news/rss/ 7#flibustanewbooks#http://flibusta.net/new/rss
Source: https://habr.com/ru/post/223399/
All Articles