Gönderen Konu: eDergi İndirme Betiği  (Okunma sayısı 24963 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

« Yanıtla #1 : »
Betiği çalıştırdığınızda elde ettiğiniz görüntü aşağıdaki görüntüler ile benzer değilse LÜTFEN BETİĞİN GÜNCEL HALİNİ İNDİRİNİZ.

http://forum.ubuntu-tr.net/index.php/topic,25576.0/topicseen.html başlığındaki arkadaşın talebi üzerine isteyen arkadaşlara yardımcı olabilir düşüncesiyle basit bir indirme betiği hazırladım. Bu betik bugüne kadar (27.07.2013) çıkan isimleri aşağıda yazılı olan dergileri kolayca indirmenize yarar. Betiğin indirdiği dergiler;

1. Sudo - Ubuntu Türkiye E-Dergisi
2. Full Circle Magazine
3. Full Circle Magazine - Türkçe
4. Özgürlükİçin.com e-dergi
5. Pardus-Linux.Org eDergi
6. ROOT - Linux Mint Türkiye E-dergisi
7. eniXma
8. LKD Penguence
9. Erciyes Üniversitesi Linux Topluluğu, Erciyes Linux Dergisi
10. Pardus E-Dergi

Betiğin yeni sürümünde aşağıdaki resimlerden de görüleceği üzere bir takım yenilikler mevcuttur. Bu yenilikler;
  • Dergilerin belli sayılarını indirme özelliği eklenmiştir. (Önerileri ve Bash programlamada yaptığı yardımlar için @hitokiri'ye teşekkürler :) )
  • İnternet bağlantısının bulunup bulunmadığını kontrol etme özelliği eklenmiştir. (Ubuntu-tr-betik içerisindeki bağlantı kodunu kullanmama izin verdiği için @ironic'e teşekkürler.)
  • Dergiler wget ile indirilirken ekrana gelen çıktılar sadeleştirilmiştir.
  • Betik çalıştırıldığında karşımıza gelen listedeki dergi sayılarının elle betik içerisine yazılması yerine bu işlemin Dropbox hesabındaki listeler içinden alınması sağlanmıştır.

Yeni sürüme ait eksi olarak kabul edebileceğimiz tek şey ilk açılma süresinin 7-8 saniye civarında olmasıdır. Süre sizin bilgisayar ve internet bağlantı hızınıza göre farklılık gösterebilir. Sürenin artma sebebi ise; betiğe eklenen internet bağlantı kontrolü ve dergi sayılarının otomatik olarak listelerden alınmasından kaynaklanmaktadır.

Betiğe ait görüntüler:






Aşağıdaki satırları bir metin belgesine aktarıp, çalıştırılabilir yetkisi verdikten sonra kullanabilirsiniz.

Kod: [Seç]
#!/bin/bash
# http://forum.ubuntu-tr.net/index.php/topic,25576.0/topicseen.html bağlantısındaki talep sonrasında Emre AYTAÇ (jayw) tarafından 23.02.2011 tarihinde oluşturulmuştur.
# Aşağıdaki dergilerin indirilmesini sağlar.
# 1. Sudo - Ubuntu Türkiye E-Dergisi
# 2. Full Circle Magazine - Türkçe
# 3. Full Circle Magazine
# 4. Özgürlükİçin.com e-dergi
# 5. Pardus-Linux.Org eDergi
# 6. ROOT - Linux Mint Türkiye E-dergisi
# 7. eniXma
# 8. LKD Penguence
# 9. Erciyes Üniversitesi Linux Topluluğu, Erciyes Linux Dergisi
# 10. Pardus E-Dergi
# Dosyalar ev dizininiz altında eDergi dizini oluşturulup, kendi isimlerindeki dizinlere kaydedilecektir.

SON_GUNCELLENME="06.09.2014"

#Renk ve biçim ayarları
AC=$(tput sgr 0 1)      # Altı Çizili
GR=$(tput setaf 2)      # Yeşil
SR=$(tput setaf 3)      # Sarı
MV=$(tput setaf 4)    # Mavi
MR=$(tput setaf 5)    # Mor
NC=$(tput sgr0)        # Normal yazı
KL=$(tput bold) # Kalın

clear
echo ""
echo "${GR}${KL} İnternet bağlantınız kontrol ediliyor, dergi bilgileri alınıyor...${NC}"

yukle()
{
    local url=$1
    echo -n "   $2 sayı $3 indiriliyor:     "
    wget -c --no-check-certificate --progress=dot $url 2>&1 | grep --line-buffered "%" | \
    sed -u -e "s,\.,,g" | awk '{printf("\b\b\b\b%4s", $2)}'
    echo -n "\n"
}

indir () {
INDIRME_DIZINI="$1"
mkdir -p $HOME/eDergi/$INDIRME_DIZINI
cd $HOME/eDergi/$INDIRME_DIZINI

if [ "$2" = "tum"  ]; then
clear
echo ""
wget -c --no-check-certificate "https://dl.dropboxusercontent.com/u/21779930/eDergi/$1"  2> /dev/null
satir=$(wc -l "$1" | cut -d' ' -f1)
liste=`cat $1|tr -s "\n" "|"`
echo "${KL}${GR}İndirmek istediğiniz sayılar:${NC}${KL} $1 tüm sayılar${NC}"
for x in $(seq 1 $satir); do yukle $(echo $liste|cut -d "|" -f$x) "$1" "$x"; done
elif [ "$2" = "secilen"  ]; then
clear
echo ""
echo "${KL}$1 dergisinin indirilmesini istediğiniz sayılarını arada boşluk bırakarak yazınız. Örneğin 1. 8. ve 25. sayıları indirmek için: 1 8 25${NC}."
echo ""
echo -n "${KL}${GR}İndirmek istediğiniz sayılar: ${NC}${KL}"
read sayilar
echo -n "${NC}"
wget -c --no-check-certificate "https://dl.dropboxusercontent.com/u/21779930/eDergi/$1"  2> /dev/null
liste=`cat $1|tr -s "\n" "|"`
for x in `echo $sayilar`; do yukle $(echo $liste|cut -d "|" -f$x) "$1" "$x"; done
fi

if [ "$1" = "Pardus-Linux.org" ]; then
               rm -f "$1"
       rm -f "Pardus-Linux.org-Ekler"
else
rm -f "$1"
        fi

if [ "$3" != "set" ]; then
               xdg-open $HOME/eDergi/$INDIRME_DIZINI &
        fi
INDIRME_DIZINI=""
}

tumunu_indir () {
indir "Sudo" "tum" "set"
indir "Full-Circle-Magazine-TR" "tum" "set"
indir "Full-Circle-Magazine" "tum" "set"
indir "Ozgurluk-icin" "tum" "set"
indir "Pardus-Linux.org" "tum" "set"
indir "Root-eDergi" "tum" "set"
indir "eniXma" "tum" "set"
indir "LKDpenguence" "tum" "set"
indir "Erciyes-Linux" "tum" "set"
indir "Pardus-Linux.org-Ekler" "tum" "set"
indir "Pardus-E-Dergi" "tum" "set"
xdg-open $HOME/eDergi &
}

secim(){
while :
do
 clear
 echo ""
 echo "${KL}$1 dergisinin tamamı mı yoksa belli sayıları mı indirilsin?"
 echo ""
 echo "1. Tümünü indir"
 echo "2. Seçilen sayıları indir"
if [ "$1" = "Pardus-Linux.org" ]; then
 echo "3. $1 dergisinin eklerini indir"
 echo "   ---"
 echo "9. Ana menüye dön"
 echo "0. Çıkış"
 echo ""
 echo -n "${NC}Lütfen bir seçim yapınız [1 - 3] "
else
 echo "   ---"
 echo "9. Ana menüye dön"
 echo "0. Çıkış"
 echo ""
 echo -n "${NC}Lütfen bir seçim yapınız [1 - 2] "
fi

 read sec
 case $sec in
  1) indir "$1" "tum";;
  2) indir "$1" "secilen";;
  3) indir "Pardus-Linux.org-Ekler" "tum";;
  9) AnaMenu;;
  0) exit 1;;
  *) echo "$sec seçeneği geçersiz. Lütfen 1-2 arasında bir seçim yapınız";
     echo "Devam etmek için [enter] tuşuna basınız. . .";
     read enterKey;;
esac
done
}

#internet bağlantı kontrolü yapılıyor, bağlantı yoksa işlem sonlandırılıyor.
wget -t 3 -T 10 www.google.com -O /tmp/index.google.test >/dev/null 2>&1           
  if [ ! -s /tmp/index.google.test ]
  then
clear
echo ""
       echo "${KL}${SR}Hata: Betiğin çalışabilmesi için internet bağlantısı gereklidir.${NC}"
       sleep 10; clear; exit 1
  fi

#Dergi sayısı hesabı
say(){
wget -q --no-check-certificate "https://dl.dropboxusercontent.com/u/21779930/eDergi/$1"
echo -n "("
grep "" "$1" -c
echo -n " sayı)"
rm "$1"
}

DergiAdet(){
rm -f /tmp/DergiAdet
echo $(say "Sudo") >> /tmp/DergiAdet
echo $(say "Full-Circle-Magazine-TR") >> /tmp/DergiAdet
echo $(say "Full-Circle-Magazine") >> /tmp/DergiAdet
echo $(say "Ozgurluk-icin") >> /tmp/DergiAdet
echo $(say "Pardus-Linux.org") >> /tmp/DergiAdet
echo $(say "Root-eDergi") >> /tmp/DergiAdet
echo $(say "eniXma") >> /tmp/DergiAdet
echo $(say "LKDpenguence") >> /tmp/DergiAdet
echo $(say "Erciyes-Linux") >> /tmp/DergiAdet
echo $(say "Pardus-E-Dergi") >> /tmp/DergiAdet
echo $(say "Pardus-Linux.org-Ekler") >> /tmp/DergiAdet
}

Adet(){
cat /tmp/DergiAdet | tr -s "\n" "|"|cut -d "|" -f$1
}

AnaMenu(){
while :
do
 clear
 echo ""
 echo "    ${AC}${GR}${KL}E-DERGİ İNDİRME BETİĞİ${NC}"
 echo ""
 echo "${KL}1.  Sudo - Ubuntu Türkiye E-Dergisi" "$(Adet "1")"
 echo "2.  Full Circle Magazine - Türkçe Çeviri" "$(Adet "2")"
 echo "3.  Full Circle Magazine" "$(Adet "3")"
 echo "4.  Özgürlükİçin.com e-dergi" "$(Adet "4")"
 echo "5.  Pardus-Linux.Org eDergi" "$(Adet "5")" " -  Ekler"  "$(Adet "11")"
 echo "6.  ROOT - Linux Mint Türkiye E-dergisi" "$(Adet "6")"
 echo "7.  eniXma" "$(Adet "7")"
 echo "8.  LKD Penguence" "$(Adet "8")"
 echo "9.  Erciyes Üniversitesi Linux Topluluğu, Erciyes Linux Dergisi" "$(Adet "9")"
 echo "10. Pardus E-Dergi" "$(Adet "10")"
 echo "11. Tümünü indir"
 echo "    ---"
 echo "0.  Çıkış"
 echo ""
 echo "    ${MV}Son Güncellenme Tarihi:${NC}" ${SON_GUNCELLENME}
 echo ""
 echo -n "Lütfen indirmek istediğiniz dergi setinin numarasını giriniz [1 - 11] "
 read opt
 case $opt in
  1) secim "Sudo";;
  2) secim "Full-Circle-Magazine-TR";;
  3) secim "Full-Circle-Magazine";;
  4) secim "Ozgurluk-icin";;
  5) secim "Pardus-Linux.org";;
  6) secim "Root-eDergi";;
  7) secim "eniXma";;
  8) secim "LKDpenguence";;
  9) secim "Erciyes-Linux";;
  10) secim "Pardus-E-Dergi";;
  11) tumunu_indir;;
  0) exit 1;;
  *) echo "$opt seçeneği geçersiz. Lütfen 1-11 arasında bir seçim yapınız";
     echo "Devam etmek için [enter] tuşuna basınız. . .";
     read enterKey;;
esac
done
}

DergiAdet
AnaMenu


Betiğin güncel halini indirmek için: eDergi Betiği

İşinize yaraması dileğiyle...

Düzenleme: Betik yeniden düzenlenerek @Ozgurluk arkadaşımızın istediği "ROOT - Linux Mint Türkiye E-dergisi" ve "eniXma" dergileri eklenmiştir. Renklendirme ile ilgili sorun giderilmiştir. Renklendirme veya başka bir konuda oluşan problemler için bu başlığa bildirimde bulunursanız minnettar oluruz :)
Düzenleme 2: Betiğe forumdaki arkadaşlarımızın çalışması olan 6 sayılık Full Circle Magazine Türkçe çevirisi de eklenmiştir.
Düzenleme 3: Betiğe Full Circle Magazine 46. sayı, Özgürlükİçin.com e-dergi 31. sayı ve Pardus-Linux.Org eDergi 29. sayı eklenmiştir.
Düzenleme 4: Betiğe Sudo 29. sayı eklenmiştir.
Düzenleme 5: Betiğe @Ozgurluk arkadaşımızın talebi üzerine LKD Penguence sayıları eklenmiştir. Teşekkürler...
Düzenleme 6: Betiğe tüm dergileri indirme fonksiyonu eklendi. Betikteki dergilere ait indirme listeleri @ironic'in tavsiyesi ile Dropbox hesabına aktarılmıştır. Betiğe yeni bir dergi eklenmediği ya da çıkarılmadığı sürece betiği güncelleme ihtiyacı olmayacak, bu sebeple betiği tekrar indirmenize gerek kalmayacaktır. Yeni dergiler doğrudan Dropbox hesabındaki listelere eklenecektir. Tavsiyeniz için teşekkürler...
Düzenleme 7: Betikteki PardusLinux.org dergisinin ekleri sebebiyle oluşan hata giderildi.
Düzenleme 8: Pardus-Linux.Org ve OzgurlukIcin.com dergilerinin birleşip çıkardıkları Pardus E-Dergi'si betiğe eklendi.
Düzenleme 9: eDergi betiği, Sudo ve bazı dergilerin barındırıldığı dropbox sitesinin dosya indirme adresinde değişiklik yapması üzerine çalışmayan betik düzeltildi. Ana menüye dönme özelliği eklendi. - 27.07.2013

Düzenleme 10: Betiğin çalışmasına engel olan "--no-check-certificate" parametresi wget komutuna eklendi. - 06.09.2014

Sudo dergilerini toplu olarak indirmek için;

Bu arada bilgi olarak şu başlığı da geçeyim buraya:
http://forum.ubuntu-tr.net/index.php/topic,26354.0.html
« Son Düzenleme: 06 Eylül 2014 - 17:32:27 Gönderen: jayw »

« Yanıtla #100 : »
İnternet bağlantım var Wifi ile bağlanıyorum. Bir güvenlik duvarı kullanmıyorum. Proxy de kullanmıyorum.  Live cd de malesef yok..

« Yanıtla #101 : »
Aşağıdaki adresi açtığınızda karşınıza bir liste geliyor mu peki?

https://dl.dropboxusercontent.com/u/21779930/eDergi/Sudo

Yoksa 404 sayfa bulunamadı gibi bir hata mı veriyor? Eğer sorunu çözemezsek size direk indirme adreslerini veririm indirirsiniz.

« Yanıtla #102 : »
Alıntı yapılan: jayw
Aşağıdaki adresi açtığınızda karşınıza bir liste geliyor mu peki?

https://dl.dropboxusercontent.com/u/21779930/eDergi/Sudo

Yoksa 404 sayfa bulunamadı gibi bir hata mı veriyor? Eğer sorunu çözemezsek size direk indirme adreslerini veririm indirirsiniz.
Hata vermiyor..Ben şuan evimde değilim başka bir bilgisayardan bağlanıyorum.Siz bana bütün linkleri atın ben buradan indireyim.. Şimdiden teşekkürler...


« Yanıtla #104 : »
@jayw, aynı sorunları bende de verdi. Vakit kıtlığından bakamıyorum ne yazık ki ne olup bittiğine. Sadece geri bildirim yapayım istedim.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?

Böylece yalan, dünyanın düzenine dönüştürülüyor.

« Yanıtla #105 : »
@heartsmagic, @Haoskman

Sorun wget komutunun "--no-check-certificate" parametresinden kaynaklanıyormuş. Kodu düzelttim, şu anda sorunsuz çalışması lazım. Tekrar dener misiniz lütfen? Şu anda bende sorunsuz olarak çalışıyor.

@jayw, aynı sorunları bende de verdi. Vakit kıtlığından bakamıyorum ne yazık ki ne olup bittiğine. Sadece geri bildirim yapayım istedim.

Aslını istersen yoğunluktan ben de bakamamıştım ama baktım problemi yaşayan kişi sayısı artıyor, mecburen vakit ayırmak durumunda kaldım :) Geri bildirimin için teşekkür ederim.

« Yanıtla #106 : »
Güzel güzel çalışıyor, eline sağlık :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?

Böylece yalan, dünyanın düzenine dönüştürülüyor.

« Yanıtla #107 : »
Bende yarın deneyecem inşallah buraya Yazarım sonucu

« Yanıtla #108 : »
Sorun düzelmiştir... Teşekkürler...