TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
własny "get_right_by_Linux"... (ultra długie) , XTC 25/08/04 21:34 Idea jest dla ludzi którzy mają np. net rozdzielony serwerem linuxowym - i zastanawiają się co jeszcze mogą zrzucić na barki tej maszyny...
Mam wąziutkie łącze - więc sam wszystko staram się zlecać serwerowi - bo operacje trwają - więc na screenie chodzą sobie ftp'y bittorenty i ... wgety...
bo jak klikam na stronie np. na filmik (na funiaste.net choćby) to nie bardzo chce mi się czekać aż się ściągnie... ograniczenie do paru downloadów przeszkadza "naklikać naraz wiele linków"...
pewnie od razu myśl przychodzi "użyć getright'a lub innego flashget'a aby to sobie skolejkował" ...
i taka myśl mi przyświtała ...
System który opracowałem i uruchomiłem może posłużyć jednym - od razu jak jest - innym jako inspiracja do rozbudowy :)
Mam na moim kompie zmapowany folder po sambie udostępniony z serwera - jako dysk sieciowy (dostęny z każdego kompa w sieci) ... Pomyślałem sobie, żeby umieszczać na nim plik tekstowy - w którym wklejałbym linki, które następnie serwer by ściągał...
zrobiłem więc w tym celu skrypt powłoki - uruchamiany z cron'a - co minutę obecnie - sprawdzający czy "jest plik z linkami i jak jest - to ściągający po kolei pliki" ... jednocześnie jak zaczyna ściągać - oznajmia to "beep" (1raz) - i potem jak ściągnie plik z listy - to 2beep'y ...
oto treść tego skryptu:
#!/bin/bash
# skrypt auto download
# powinien byc wywolywany np. co 5 minut
# sprawdza czy ma nowe linki do downloadu
# jesli tak - sciaga je i po sciagnieciu
# informuje BEEPem...
# sciezki:
sources="/home/xtc/tank/xdwl/XDWL.TXT"
inuse="/home/xtc/tank/xdwl/In_progress.txt"
already="/home/xtc/tank/xdwl/x_downloaded.txt"
whereto="/home/xtc/tank/"
tempfile="/home/xtc/xdownlader_tempfile"
nameagent="Mozilla\/4\.0\ \(compatible\;\ MSIE\ 5\.5\;\ Windows\ NT\ 4\.0\)"
# sprawdzenie czy trwa przetwarzanie i czy jest plik z linkami
if [ -r ${sources} ]
then
if [ -r ${inuse} ]
then
exit 0;
else
touch ${inuse}
/home/xtc/beep 1
cd ${whereto}
cat ${sources} | tr -d '\15\32' > ${tempfile}
rm ${sources}
activelinks=`cat ${tempfile} | paste -s -d" "`
for _x in ${activelinks}
do
myreferer=`echo ${_x} | cut -f1,2,3 -d"/"`
wget -nc --referer="${myreferer}" --user-agent="${nameagent}" ${_x}
/home/xtc/beep 2
echo ${_x} >> ${already}
done
/home/xtc/beep 5
rm ${inuse}
fi
fi
______________
no i wszystko gra... wklejam linki do określonego pliku na zmapowanym dysku i serwer ściąga co trzeba i mnie informuje, że ściągnął... poza tym zawsze mogę podejrzeć czy jest w folderze na zmapowanym dysku plik "in_progress..." oznaczający, że ściąganie właśnie trwa (nowe linki nie będą przetwarzane)...
daleko temu do wygody getright'a...
co więc począć?
rozejrzeć się za rozszerzeniami menu kontekstowego IE...
Krótkie rozeznanie po necie i już wiemy, że trzeba klucz w rejestrze dodać:
_________
REGEDIT4
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\MenuExt]
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\MenuExt\Let Tytan get it!]
"Contexts"=dword:00000020
@="C:/windows/x_dwl.htm"
___________
gdzie oczywiście ścieżka C:/windows... to miejsce gdzie leży plik o nazwie x_dwl.htm zawierający skrypt ... oto treść pliku x_dwl.htm
___________
<SCRIPT>
var shell = new ActiveXObject("WScript.Shell");
shell.run("xecho \"" + external.menuArguments.document.parentWindow.event.srcElement.URL + "\" T:\\xdwl\\xdwl.txt");
</SCRIPT>
___________
po dopisaniu klucza w rejestrze w IE - po kliknięciu prawym klawiszem na link - pojawi się opcja nazwana tak jak jest nazwany klucz "Let Tytan get it!" (chyba nie trzeba tłumaczyć, że można tu wpisać co komu pasuje)...
skrypt wywołuje mój ultra prosty program - będący swoistym "echem" - którego inaczej nie idzie wywołać...
jest to exe napisany w C, który wywołany z dwoma parametrami spowoduje zapis treści 1-szego parametru do pliku którego ścieżka jest 2-gim parametrem...
(xecho.exe ma 18kb jak kto chce to wyślę)
... i co uzyskaliśmy?...
wygodę tego rodzaju, że klikamy prawym na linku w IE - wybierając "Let Tytan..." i więcej nas nic nie kłopocze...
serwer ściągnie to i poinformuje nas beep'em że "już skończył"... taki trick...
można oczywiście zamiast idiotycznie prostego xecho.exe wywoływać równie prosty interfejs okienkowy gdzie można by wybrać godzinę kiedy ma się ściągnąć (choćby z buttonów typu "teraz, jutro, za chwilę ;)" ) oraz jak kto ma w sieci stacje z XP/NT - wysłać posłańcem informację o tym, że pliki takie a takie się już ściągnęły...
co więcej - można dodać różnych użytkowników - dla każdego inna kolejka i folder docelowy ...
no możliwości jest wiele - ale myślę, że sam pomysł jest wart uwagi...Linux - a tu zaglądałeś? , kicior 25/08/04 22:30
http://www.krasu.ru/soft/chuchelo/- zwiódł Cię widzę tytuł posta... , XTC 25/08/04 22:47
jak przeczytasz to pojmiesz że o coś zupełnie innego mi chodzi...
dlatego celowo nie napisałem "get_right_for_linux" a "get_right_by_linux" ... w stylu "ściągnij linuxem windziarzu ;)"...Linux - nie zwiódł-przeczytałem , kicior 25/08/04 23:00
a dla mnie to trochę okręzna droga co wymyśliłeś-chyba wolałbym się normalnie sshować na server i tam coś robić niż polegać na windzie jako końcówce. w tym skrypcie jeszcze bym się jakoś zabezpieczył przed zanikiem komunikacji między twoją windą a serverem, bo to może powodować wysypkę albo co najmniej sianie errorami.- eee no... , XTC 25/08/04 23:11
nazywanie windy w tym momencie "końcówką" to gruba przesada...
nie ma też żadnego specjalnego "połączenia" o którym piszesz...
jeśli winda nie utworzy pliku na serwerze to ten niczego nie będzie ściągał i żadnymi errorami sypać nie będzie...
nikłe jest prawdopodobieństwo równoczesnego dopisania przez windę do kasowanego przez skrypt pliku... w praktyce mi się nie zdarzyło...
poza tym sshowanie się to już zupełnie inne podejście...
właśnie chciałem uniknąć ciągłego sshowania się aby jakiś kilkunastomegowy plik ściągnąć...
do większych to oczywiste - bo mam wgląd i kontrolę...
tak więc jedyny "brak komunikacji" to mogłoby być to, że zniknie udział sieciowy...
a na to raczej też nie mam co liczyć...
działa jak natura chciała...
/dorobię tylko "stop" - żeby kill'ował proces wget'a gdy się pojawi plik "stop" w trakcie gdy ściąga (warunek z wynikiem "1" na obecność pliku "in_progress")Linux - bardziej chodzi mi o moment, kiedy np wyłączysz kompa... , kicior 25/08/04 23:20
w momencie kiedy skrypt akurat odpalił wget-a. wtedy po pierwsze nie zaznaczy tego pliku jako ściągnięty, mimo, że go ściągnął, a po drugie nie usunie pliku lock-ującego.- otóż to!... , XTC 25/08/04 23:50
wgeta sobie odpali - bo linux to ściąga LOKALNIE u siebie...
ja na windzie mam dysk T: który jest folderem "/home/xtc/tank"
właśnie taka była idea całego przedsięwzięcia...
żeby móc w IE jednym kliknięciem myszy wskazać obiekt do ściągnięcia... po czym np. wybrać kolejne 50 obiektów (dręczyło mnie dosłownie ściąganie filmów właśnie z funiaste.net - bo wybierałem ręcznie ponieważ niektóre już znałem etc)...
i ta lista 50-ciu będzie realizowana...
ja mogę spokojnie wyłączyć kompa i pójść do pracy...
przychodzę - włączam kompa (windę) a tu na dysku "T:" mam już wszystko pościągane...
gdyby to linux dobierał się przez sieć do mojego HDD to rzecz jasna cała rozrywka nie miałaby sensu...
moje rozwiązanie ma jeszcze jedną zaletę - może go używać ktokolwiek - nie musi znać ssh i przepisywać z palca linków czy wklejać ...
po prostu klika i za chwilę / bądź na drugi dzień ;) ma na dysku "T:" pościągane wszystkie wybrane pliki...
przyszło mi do głowy jeszcze przed przystąpieniem do downloadu sortować linki pod względem unikalności aby wyeliminować wielokrotny download tego samego elementu...Linux
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|