Սկիզբ » Ուսումնական նյութեր » Օպերացիոն համակարգեր » *Nix-եր » Լինուքս/Յունիքս հրամաններ » Լրատվական ռադիոյի հաղորդաշարերի դրվագների ավտոմատ բեռնում

Լրատվական ռադիոյի հաղորդաշարերի դրվագների ավտոմատ բեռնում

| Հոկտեմբեր 21, 2013 | Մեկնաբանված չէ |

geeks and repetitive tasks hy_am

Ամեն ինչ սկսվեց նրանից , որ մի երեք ամիս առաջ սկսեցի լսել Լրատվական Ռադիոյի որոշ հաղորդաշարերը։ Նոր հայտնվող դրվագներին հետևում էի ինձ  համար սովորական եղանակով՝ բաժանորդագրվել էի  rss ներին ու միշտ իմանում էի նոր դրվագների մասին։
Բայց իրենք խնդիր ունեն, նախ rss ժապավենի մեջ չկա աուդիոնյութի հղումը, երկրորդը՝ չունեն բուն փոթքասթի համար նախատեսված ժապավեն, որը կարելի էր քաշել ասենք gpoder-ով ու լսել օֆլայն։ Ու ավելին, չունեն նաև հետադարձ կապի ֆորմա, ոտեղ կարելի էր բողոքել ։), բայց ունեն հետաքրքիր հաղորդումներ որոնք ուզում եմ լսել։

Իսկ ձեռքով դրանք քաշելու հավես չունեմ, ու արդեն 21-րդ դարն է վերջ ի վերջո։

Ինչ գլուխներդ ցավացնեմ, որոշեցի ավտոմատացնել ներբեռնումները։ Արդյունքում ծնվեց մի շել սքրիփթ, որը կարող եք օգտագործել եթե սիրում եք այդ ռադիոն։

Գիտեմ, որ կարելի էր ավելի լավ գրել, բայց, քանի որ կատաղած շել սքրիփթիստ չեմ, ստացվեց այն ինչ ստացվեց։ Ու հետո սա ինչ որ ֆունդամենտալ ծրագիր չի, ընդամենը ձեռքի աշխատանքի ավտոմատացում է ․․․  Բայց եթե որևէ առաջարկություններ կլինեն, ուրախ կլինեմ դրանք լսել։

Սքրիփթը

#!/bin/bash
#հեղինակ ։ Հանուման
#նպատակ։ Քաշում է Լրատվական Ռադիոյի նոր փոթքասթները
#ամսաթիվ։ 2012-10-20
#գիթհաբում։ https://github.com/hanumanum/Lratvakan-radio-podcast-downloaderX

#Փոթքաստները պահել այստեղ
PODCASTDIRECTORY=~/Podcasts/LratvakanRadio/

#RSS հղումների ֆայլ
FILENAME=feeds
#ժամանակավոր դիրեկտորիա
TMPDIRECTORY=/tmp/lratvakan

newcount=0
DATE=$(date +%Y-%m-%d);
PODCASTDIRECTORY="$PODCASTDIRECTORY$DATE"
mkdir $PODCASTDIRECTORY

date > log
array=($(< downloaded))
zibil=($(< zibil))

#echo "Սկսում եմ քաշել RSS-ները"
cat $FILENAME | cut -d" " -f1 | while read LINE
do
       echo "$LINE"
       wget $LINE -P $TMPDIRECTORY
done

#echo "RSS ֆայլերը քաշված են"
#echo "Սկսում եմ փարս անելը"

for f in $TMPDIRECTORY/*
do
#echo "սկսում եմ փարսել $f -ը";
cat $f | while read LINE
	do
		if [ "${LINE:0:16}" == "<title><![CDATA[" ]; then
			let LENGH=${#LINE}-11-16
			if [ $LENGH -ge 100 ]; then
				let LENGH=100
			fi
			TITLE="${LINE:16:LENGH}"

		fi

		if [ "${LINE:0:15}" == "<link><![CDATA[" ]; then
			let LENGH=${#LINE}-10-15
			LINK="${LINE:15:LENGH}"

			#հոդվածի ID-ն և աուդիոնյութի ID-ն նույնն են, հակառակ դեպքում կպահանջվեր փարսել նաև հոդվածների էջերը
			AUDOID="${LINK:23}"

			#echo "http://lratvakan.am/voice/$AUDOID.mp3"

			#ստուգում ենք, հո չենք քաշել արդեն
			ISNEW=1
			for audid in "${array[@]}"
			{

			 if [ "$audid" == "$AUDOID" ]; then
				ISNEW=0
			 fi 		
			}
			#ստուգում ենք արդյոք զիբիլանոցում կա
			for audid in "${zibil[@]}"
			{

			 if [ "$audid" == "$AUDOID" ]; then
				ISNEW=0
			 fi 		
			}

			#չենք քաշում արդեն քաշածները կամ զիբլանոցում գտնվողները
			if [ "$ISNEW" == "1" ]; then

				RESULTFILE="$PODCASTDIRECTORY/$AUDOID $TITLE.mp3"
				echo "====================ՔԱՇԻ======================="
				echo $RESULTFILE

				wget -O "$PODCASTDIRECTORY/tmp_$AUDOID.mp3" "http://lratvakan.am/voice/$AUDOID.mp3" -P $PODCASTDIRECTORY 

				#մի կիլոբայթից փոքր ֆայլը ենթադրվում ա , որ պիտի աղբ լինի
				s=$(stat -c %s "$PODCASTDIRECTORY/tmp_$AUDOID.mp3")
				if [ $s -ge 1024 ]; then
					mv "$PODCASTDIRECTORY/tmp_$AUDOID.mp3" "$RESULTFILE"
					echo "==========================================" >> log
					echo "լավն էր" >> log
					echo "Վերնագիր։ $TITLE" >> log
					echo "Հոդվածի հղում։ $LINK" >> log
					echo "Ֆայլի անուն։ $RESULTFILE" >> log
				else
					echo "==========================================" >> log
					echo "աղբ  էր" >> log
					echo "$AUDOID" >> zibil
					echo "Վերնագիր։ $TITLE" >> log
					echo "Հոդվածի հղում։ $LINK" >> log

				fi

				if [ -e "$RESULTFILE" ]; then
				  echo $AUDOID>>downloaded
				  newcount=`expr $newcount + 1` #TODO: չի հաշվում քանակը
				fi

				echo "====================ՖՌՌԱ===================="
				echo "====================ՖՍՍԱ ։)===================="
			fi  

		fi

	done
done

#ջնջում եմ ժամանակավոր ֆայլերը
rm $TMPDIRECTORY/*
rm $PODCASTDIRECTORY/tmp_*

date >> log
echo "===========+++++ՔԱՇՎԵՑ $newcount ՆՈՐ ՀՈԴՎԱԾ+++++++=====================" >> log
cat log

Սքրիփթին անհրաժեշտ է տալ ռսս հղումների ցանկ, դրանք գրելով նույն դիրեկտորիայում գտնվող feeds ֆայլի մեջ։ Տրամադրում եմ նաև իմ ցուցակը։

http://lratvakan.am/?to=catrss&cid=23 ԼՌ - Սուբյեկտիվ հաղորդում
http://lratvakan.am/?to=catrss&cid=21 ԼՌ - Մտածող խոսափող
http://lratvakan.am/?to=catrss&cid=40 ԼՌ - Հայու տեսակ
http://lratvakan.am/?to=catrss&cid=39 ԼՌ - Բարևի հեղափոխություն
http://lratvakan.am/?to=catrss&cid=42 ԼՌ - Մտավորականի հարթակ
http://lratvakan.am/?to=catrss&cid=38 ԼՌ - Սա Հայաստանն է և վերջ
http://lratvakan.am/?to=catrss&cid=37 ԼՌ - Հարևաններ
http://lratvakan.am/?to=catrss&cid=36 ԼՌ - Այլընտրանք
http://lratvakan.am/?to=catrss&cid=35 ԼՌ - Կազուս Բեյլի
http://lratvakan.am/?to=catrss&cid=34 ԼՌ - Իրական իրավունք
http://lratvakan.am/?to=catrss&cid=33 ԼՌ - Հետախույզի օրագիրը
http://lratvakan.am/?to=catrss&cid=32 ԼՌ - Արցախյան պատասխան
http://lratvakan.am/?to=catrss&cid=31 ԼՌ- Մոդուս Վիվենդի
http://lratvakan.am/?to=catrss&cid=41 ԼՌ - Համշենական բառարան
http://lratvakan.am/?to=catrss&cid=18 ԼՌ - Թարմ ուղեղով
http://lratvakan.am/?to=catrss&cid=16 ԼՌ - Հերոսապատում
http://lratvakan.am/?to=catrss&cid=14 ԼՌ - հասցեների շտեմարան
http://lratvakan.am/?to=catrss&cid=13 ԼՌ - Ակունք
http://lratvakan.am/?to=catrss&cid=11 ԼՌ- Հայ Դատ

Սքրիփթը օգտագործում է ևս երկու ֆայլ, downloaded և zibil։ Առաջինը արդեն բեռնված դրվագների ID-ներն է պահում, երկրորդը ՝ պահում է այն հոդվածների ID-ները որոնք դատարկ են, այսինքն չեն պարունակում նոր դրվագ։

Ամբողջությամբ կարող եք քաշել գիթհաբից։

Լրատվական ռադիոյի հաղորդաշարերի դրվագների ավտոմատ բեռնում, 10.0 out of 10 based on 4 ratings

Նշագրեր: , , , , ,

Բաժին: Լինուքս/Յունիքս հրամաններ

Կիսվել , տարածել , պահպանել

VN:F [1.9.20_1166]
Rating: 10.0/10 (4 votes cast)

Մեկնաբանեք

Կհաստատվեն միայն մեսրոպատառ հայերենով գրած մեկնաբանությունները

198