[BASH]Rsget-odliczanie

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
Bolo92
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 03 cze 2007, 15:35
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

[BASH]Rsget-odliczanie

Post autor: Bolo92 »

Witam. Nie mam prawie żadnego pojęcia o programowaniu, ani tymbardziej o BASHu.
Znalazłem skrypt rsget.sh do pobierania z rapidshare na free, jednak gdy ktoś już pobiera(sieć na 30os) to wyskakuje pobierasz inne pliki i kończy działanie skryptu.
Ja chciałbym, aby może nawet wyświetlało ten komunikat, ale czekało 60s(i to odliczało), a później próbowało ponownie-do skutku.
Link do skryptu

Kod: Zaznacz cały

#!/bin/bash
#
# Piotr Jachacy
# jachacy@gmail.com
#
# ostatnia modyfikacja: 14.10.2008
#
# /* This program is free software. It comes without any warranty, to
# * the extent permitted by applicable law. You can redistribute it
# * and/or modify it under the terms of the Do What The Fuck You Want
# * To Public License, Version 2, as published by Sam Hocevar. See
# * http://sam.zoy.org/wtfpl/COPYING for more details. */ 
#

function odliczanie
{
	x=$1
	while [ $x -ge 1 ]; do
		printf "\r%-5s" $x"s"
		x=$[x -1]
		sleep "1"
	done
	printf "\r%-5s" ""
}


function pobierz
{
	link=$1

	link=$(wget "$link" -q -O - | grep 'form id="ff"' | sed -e 's/.*action="\(.*\)"\s.*/\1/')

	if [ -n "$link" ] 
	then
		link=$(wget --post-data "dl.start=Free" $link -q -O -)


		if [  -n "$(echo "$link" | grep "Please wait until the download is completed")" ]
		then
			echo "Sciągasz inne pliki."
			exit
		elif [  -n "$(echo "$link" | grep "You have reached the download limit for free-users. Would you like more?")" ]
		then
			minuty=$(echo "$link" | grep "Instant download access! Or try again in about" | sed -e "s/.*about \([0-9]*\) minutes.*/\1/")
			echo "Przekroczyłeś limit ściagania, musisz odczekać około $minuty minut"
			
			minuty=$[$minuty*60+30]	
			
			odliczanie $minuty
			
			pobierz $1
		else
			czas=$(echo "$link" | grep "var c" | sed -e "s/var c=\([0-9]*\);.*/\1/")

			odliczanie $czas

			link=$(echo "$link" | grep 'form name="dlf"'| sed -e 's/.*action="\(.*\)"\s.*/\1/')
			wget --post-data "mirror=on" "$link"		
		fi	
					
	else
		echo -e "Nie udało się pobrać pliku: \n\t$1"
	fi


}

if [ "$1" = "-i" ] && [ -n "$2" ]
then
	for x in $(cat $2)
	do
		if [ -n "$x" ]
		then
			pobierz "$x"
		fi
	done
	
elif [ "$1" = "--help" ] || [ "$1" = "-h" ]
then
	echo -e "Użycie: rsget.sh [OPCJE]... [url]...\n"
	echo -e "\t--help\t\t\twyświetla pomoc"
	echo -e "\t-i ListaPlikow\t\tpobiera pliki z listy\n"
	
elif [ -n "$1" ]
then
	pobierz "$1"
	
fi
Mógłby ktoś ten skrypt odpowiednio przerobić ? aby działał tak jak napisałem na początku tematu?
Awatar użytkownika
moridin
Sędziwy Jeż
Sędziwy Jeż
Posty: 57
Rejestracja: 06 gru 2008, 15:21
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: [BASH]Rsget-odliczanie

Post autor: moridin »

Przerabiac nie za zbytnio mi sie chce;-P
Tutaj: http://scripts-zone.info/thread-28.html znajduje sie napisany ostatnio przeze mnie skrypt do pobierania z rs tyle ze w rubim a nie bashu. W podanej przez Ciebie sytuacji odczekuje 10 nie 60 sec aczkolwiek jest to zmiana tylko jednej cyferki...
Jezeli bedziesz chcial uzywac nie zapomnij zainstalowac pakietu ruby np w wersji 1.8.
May the Source Be With You!
[AMD Duron(tm) 999.348 MHz | 503.4 SDR | Gigabyte GeForce 7600 GS 512 DDR2] :-P
http://scripts-zone.info/
mag_dex
Piegowaty Guziec
Piegowaty Guziec
Posty: 22
Rejestracja: 16 lis 2006, 19:26
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

Odp: [BASH]Rsget-odliczanie

Post autor: mag_dex »

Jezeli macie Firefoxa polecam dodatek:
https://addons.mozilla.org/en-US/firefox/addon/8376
Radzi sobie z odczekiwaniem 900s, sciaga, odczekuje kolejne kilkanascie sekund i sciaga znowu. Bez problemowo! :)
Awatar użytkownika
Bolo92
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 03 cze 2007, 15:35
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [BASH]Rsget-odliczanie

Post autor: Bolo92 »

@moridin

Kod: Zaznacz cały

bolo@bolo-laptop:~$ ~/ruby.rb pobieranie.txt
Trying to download House.s03e19_by_nocka.part3.rar
/usr/lib/ruby/1.8/net/http.rb:560:in `initialize': Connection timed out - connect(2) (Errno::ETIMEDOUT)
	from /usr/lib/ruby/1.8/net/http.rb:560:in `open'
	from /usr/lib/ruby/1.8/net/http.rb:560:in `connect'
	from /usr/lib/ruby/1.8/timeout.rb:53:in `timeout'
	from /usr/lib/ruby/1.8/timeout.rb:93:in `timeout'
	from /usr/lib/ruby/1.8/net/http.rb:560:in `connect'
	from /usr/lib/ruby/1.8/net/http.rb:553:in `do_start'
	from /usr/lib/ruby/1.8/net/http.rb:542:in `start'
	from /usr/lib/ruby/1.8/net/http.rb:404:in `post_form'
	from /home/bolo/ruby.rb:61
	from /home/bolo/ruby.rb:42:in `each'
	from /home/bolo/ruby.rb:42
W czym problem ? jak chciałem zainstalować tego ruby to pisało, że już jest i to w najnowszej wersji.
Skryptowi nadałem chmod +x
Awatar użytkownika
moridin
Sędziwy Jeż
Sędziwy Jeż
Posty: 57
Rejestracja: 06 gru 2008, 15:21
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: [BASH]Rsget-odliczanie

Post autor: moridin »

Sprawdz czy linki w pliku maja poprawna forme, Errno::ETIMEDOUT znaczy ze strona wyswietlila 403 - forbidden...
Chodzi o to ze kazdy link MUSI sie zaczynac od http://
Pozniej skrypt poprawie zeby taki blad nie wyskakiwal.

EDIT:
Juz poprawione... Thx za info.
Pozdrawiam.
May the Source Be With You!
[AMD Duron(tm) 999.348 MHz | 503.4 SDR | Gigabyte GeForce 7600 GS 512 DDR2] :-P
http://scripts-zone.info/
Awatar użytkownika
Bolo92
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 03 cze 2007, 15:35
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [BASH]Rsget-odliczanie

Post autor: Bolo92 »

No jakoś działa :P Zaraz potestuję więcej możliwości pobierania(błędów i czy ładnie czeka).
Błąd który na razie zauważyłem to, że jeżeli pobierzemy plik i czeka te 15 to odlicza ale dajmy 14.9 i tak idzie do 14.0 i zamiast zmienić później na 13.9 to ma dalej 14.9 i tak ciągle, nie wiem jeszcze czy to błąd wyświetlania czy błąd w programie, ale niedługo się dowiem.
Co do tego http:// to linki mam tak zaczynające się i wcześniej nie działał, teraz to czyta.
Nie wiem czy to istnotne i czy to takie błędy mają być czy nie ale podaję treść.

Kod: Zaznacz cały

Trying to download House.s03e21_by_nocka.part1.rar
You've reached the download limit! Waiting 12.6 minutes...^C/home/bolo/ruby.rb:95:in `sleep': Interrupt
	from /home/bolo/ruby.rb:95
	from /home/bolo/ruby.rb:93:in `downto'
	from /home/bolo/ruby.rb:93
	from /home/bolo/ruby.rb:92:in `downto'
	from /home/bolo/ruby.rb:92
	from /home/bolo/ruby.rb:42:in `each'
	from /home/bolo/ruby.rb:42
Zauważ, że ja przerywałem działanie skryptu, sam nie stawał. Teraz nim pobieram i ściaga, jak pobierze to poczekam te 15min i czy program źle odlicza, czy źle czeka na plik.
P.S Ty w ogóle testowałeś działanie tego skryptu ? :D
Nawet się naściągałem przy 20% przerwało pobieranie, tylko nie wiem czy czynnik zewnętrzny czy skrypt, podaję treść błędu.

Kod: Zaznacz cały

20% [======>                                ] 20.477.616  39,7K/s  eta 21m 9s  ^C/home/bolo/ruby.rb:107:in ``': Interrupt
	from /home/bolo/ruby.rb:107
	from /home/bolo/ruby.rb:42:in `each'
	from /home/bolo/ruby.rb:42

bolo@bolo-laptop:~$ z
Acha i pytanko bo ja noobek na linuxie(z tydzień mam), jak zapisywać pliki w katalogu domowym ale folder Download ?
Awatar użytkownika
moridin
Sędziwy Jeż
Sędziwy Jeż
Posty: 57
Rejestracja: 06 gru 2008, 15:21
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: [BASH]Rsget-odliczanie

Post autor: moridin »

Dobra... po kolei...
Bolo92 pisze: Błąd który na razie zauważyłem to, że jeżeli pobierzemy plik i czeka te 15 to odlicza ale dajmy 14.9 i tak idzie do 14.0 i zamiast zmienić później na 13.9 to ma dalej 14.9 i tak ciągle, nie wiem jeszcze czy to błąd wyświetlania czy błąd w programie, ale niedługo się dowiem.
Prawdopodobnie zle cos wyswietla... U mnie bylo ok ale zaraz jeszcze popatrze.
EDIT: Masz racje byl drobny blad w kodzie, ze tak powiem chochlik drukarski:-P Poprawione.
Bolo92 pisze: Co do tego http:// to linki mam tak zaczynające się i wcześniej nie działał, teraz to czyta.
Dziwne:-P
Bolo92 pisze: Nie wiem czy to istnotne i czy to takie błędy mają być czy nie ale podaję treść.

Kod: Zaznacz cały

Trying to download House.s03e21_by_nocka.part1.rar
You've reached the download limit! Waiting 12.6 minutes...^C/home/bolo/ruby.rb:95:in `sleep': Interrupt
	from /home/bolo/ruby.rb:95
	from /home/bolo/ruby.rb:93:in `downto'
	from /home/bolo/ruby.rb:93
	from /home/bolo/ruby.rb:92:in `downto'
	from /home/bolo/ruby.rb:92
	from /home/bolo/ruby.rb:42:in `each'
	from /home/bolo/ruby.rb:42
To nie blad tylko przerwanie programu i pokazuje 'stack' w ktorym momencie przerwalo
Bolo92 pisze: Zauważ, że ja przerywałem działanie skryptu, sam nie stawał. Teraz nim pobieram i ściaga, jak pobierze to poczekam te 15min i czy program źle odlicza, czy źle czeka na plik.
To niestety specyfikacja servera. Po przerwaniu niestety trzeba odczekac 'wait tima' na to niestety rady nie ma...
Bolo92 pisze: P.S Ty w ogóle testowałeś działanie tego skryptu ? :D
Testowalem, testowalem;-) Sam z tego skryptu korzystam i u mnie działa niezle, wiadomo jednak ze w poczatkowej fazie rozwoju bledy sa nie uniknione...
Bolo92 pisze: Nawet się naściągałem przy 20% przerwało pobieranie, tylko nie wiem czy czynnik zewnętrzny czy skrypt, podaję treść błędu.

Kod: Zaznacz cały

20% [======>                                ] 20.477.616  39,7K/s  eta 21m 9s  ^C/home/bolo/ruby.rb:107:in ``': Interrupt
	from /home/bolo/ruby.rb:107
	from /home/bolo/ruby.rb:42:in `each'
	from /home/bolo/ruby.rb:42

bolo@bolo-laptop:~$ z
Napewno czynnik zewnetrzny... Moze chwilowe zerwanie polaczenia internetowego albo cos w ten desen.
EDIT: Widze jednak interrupt (^C) wiec przerwales dzialanie skryptu...
Bolo92 pisze: Acha i pytanko bo ja noobek na linuxie(z tydzień mam), jak zapisywać pliki w katalogu domowym ale folder Download ?
Wrzucasz skrypt i liste do katalogu download i z niego uruchamiasz. Skrypt sciaga pliki do katalogu w ktorym obecnie sie znajdujesz...

Zaraz jeszcze dokladniej popatrze.
Pozdrawiam.
May the Source Be With You!
[AMD Duron(tm) 999.348 MHz | 503.4 SDR | Gigabyte GeForce 7600 GS 512 DDR2] :-P
http://scripts-zone.info/
Awatar użytkownika
Bolo92
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 03 cze 2007, 15:35
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [BASH]Rsget-odliczanie

Post autor: Bolo92 »

Co do skryptu to już ładnie czeka-dzięki za poprawkę.
Jeśli zauważę jakieś błędy to napiszę na PW/GG.
Awatar użytkownika
moridin
Sędziwy Jeż
Sędziwy Jeż
Posty: 57
Rejestracja: 06 gru 2008, 15:21
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: [BASH]Rsget-odliczanie

Post autor: moridin »

Wszelkie uwagi mile widziane;-)
Pozdrawiam.
May the Source Be With You!
[AMD Duron(tm) 999.348 MHz | 503.4 SDR | Gigabyte GeForce 7600 GS 512 DDR2] :-P
http://scripts-zone.info/
Awatar użytkownika
rafaloo
Wytworny Kaczor
Wytworny Kaczor
Posty: 349
Rejestracja: 05 kwie 2008, 22:14
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86_64

Odp: [BASH]Rsget-odliczanie

Post autor: rafaloo »

widzę iż nie jest to konto premium wiec moge zaproponowac USDownloader u mnie pod wine działa idealnie :)
@moridin ale twój sposób chętnie wypróbuje :)
Problemy rozwiązujemy na forum nie na PW. Niech inni na tym skorzystają.
Inny OS Gentoo/Debian/*BSD
Awatar użytkownika
Bolo92
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 03 cze 2007, 15:35
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [BASH]Rsget-odliczanie

Post autor: Bolo92 »

Z tym, że jakbym chciał program to JDwonloader :P A mi chodzi o skrypt(mało pobiera z RAM i procka-raczej) :] Ponieważ planuję zakupić/pożyczyć historię komputerów(coś z minimum 64mb RAM i jakimś tam prockiem koło 300MHz+ postawić okrojonego Debiana(instalacja minimalna, reszte pobrać co potrzebne. Wrzucić tam FTPa i żeby też pobierał, do tego jakby dało radę to kontroler dysków i zakupić Samsung F1-640GB :D
Awatar użytkownika
moridin
Sędziwy Jeż
Sędziwy Jeż
Posty: 57
Rejestracja: 06 gru 2008, 15:21
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: [BASH]Rsget-odliczanie

Post autor: moridin »

Jednak co skrypt to skrypt;-)
U mnie na mojej kosmicznej maszynie (opis w sygnaturze) zżera niecały 1% procka i ramu. Wycieków żadnych nie zauważyłem (bo niby gdzie?) więc powinien przy takich wymaganiach móc chodzić na okrągło. Za to mogą występować błędy - ale z takowymi się do mnie zgłaszać proszę (sposób dowolny) a będę na bieżąco poprawiać:-)

PS: Bez dynamicznego ip chyba nie ma co sobie głowy tym zawracać i lepiej zapłacić te 3 dychy/mc chyba że naprawdę nam się nie spieszy;-)
May the Source Be With You!
[AMD Duron(tm) 999.348 MHz | 503.4 SDR | Gigabyte GeForce 7600 GS 512 DDR2] :-P
http://scripts-zone.info/
Awatar użytkownika
Bolo92
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 03 cze 2007, 15:35
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [BASH]Rsget-odliczanie

Post autor: Bolo92 »

No jak ktoś robi kopię zapasową Internetu to warto może i te 30zł zapłacić, ale jak był limit 500GB/mc bodajże.
Teraz 2.66GB na dzień(mam dostęp do RS premium) bo kolegi, wcześniej pobierałem na premium(limit 500GB/mc), ale teraz to bym mu tylko blokował(jeszcze z bratem dzieli konto). Te 2.66GB/dzień to ja pobiorę 2x tyle przez te 24h na free, wolałem jak był limit 512kbit bo w nocy limit znikał i przy włączeniu sobie na routerze(współadministrator) 4Mbit to zdzierałem na prawdę pokaźnę sumy danych.
Więc aktualnie dla mnie łatwiej na free pobierać(mogę mieć 5 różnych adresów IP jak chcę) i tylko akurat teraz pobieram non stop(Dr House), do drobnych plików na szybko używam właśnie konta premium kolegi.
A tak w ogóle to moridin tę karte graficzną chyba w spadku dostałeś(mimo iż to DDR2 to jakieś 2 stówy kosztuje nówka), a na tym procku i RAMie na pewno nie da się jej wykorzystać.
&quot pisze:PS: Bez dynamicznego ip chyba nie ma co sobie głowy tym zawracać i lepiej zapłacić te 3 dychy/mc chyba że naprawdę nam się nie spieszy
Z tym bym się spierał :D Ponieważ programem to można, ale ręcznie bym w życiu nie pobierał tego-tak jak to robiła większość znajomych rok temu...
Awatar użytkownika
moridin
Sędziwy Jeż
Sędziwy Jeż
Posty: 57
Rejestracja: 06 gru 2008, 15:21
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: [BASH]Rsget-odliczanie

Post autor: moridin »

Bolo92 pisze: A tak w ogóle to moridin tę karte graficzną chyba w spadku dostałeś(mimo iż to DDR2 to jakieś 2 stówy kosztuje nówka), a na tym procku i RAMie na pewno nie da się jej wykorzystać.
Da sie da, przeciez korzystam:-P Teraz 2 stowki jak kupowalem stala 4;-P
May the Source Be With You!
[AMD Duron(tm) 999.348 MHz | 503.4 SDR | Gigabyte GeForce 7600 GS 512 DDR2] :-P
http://scripts-zone.info/
Awatar użytkownika
Bolo92
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 03 cze 2007, 15:35
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [BASH]Rsget-odliczanie

Post autor: Bolo92 »

Wykorzystać to by się dało każdą ;p pod AGP najmocniejszy to chyba jakiś Radeon HD3xxxx jest ;p ale i tej w pełni nie wykorzystasz na takich słabych podzespołach.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Bing [Bot] i 16 gości