Grycek / ChomikUploader

Script for uploading files on www.chomikuj.pl
35 stars 16 forks source link

Logowanie i wysyłanie udaje się raz na kilka prób. #23

Open micdudk opened 4 years ago

micdudk commented 4 years ago

Czy skrypt ma jeszcze wsparcie? Próbuję uploadować pliki, niestety raz na jakiś czas uda mi się wysłać coś małego, poza tym cały czas ten sam błąd.

Logowanie Traceback (most recent call last): File "/usr/local/bin/chomik", line 6, in <module> import chomikuploader.main File "/usr/local/lib/python2.7/dist-packages/chomikuploader/main.py", line 71, in <module> u = uploader.Uploader(login, password, debug = debug) File "/usr/local/lib/python2.7/dist-packages/chomikuploader/uploader.py", line 84, in __init__ if not self.chomik.login(self.user, self.password): File "/usr/local/lib/python2.7/dist-packages/chomikuploader/chomikbox.py", line 214, in login self.get_dir_list() File "/usr/local/lib/python2.7/dist-packages/chomikuploader/chomikbox.py", line 285, in get_dir_list resp = self.send(header) File "/usr/local/lib/python2.7/dist-packages/chomikuploader/chomikbox.py", line 189, in send tmp = sock.recv(kRespSize) socket.timeout: timed out

4meters commented 3 years ago

Problem z logowaniem wynika najprawdobniej z tego jak działają sockety w pythonie, nie bardzo da się coś zrobić z tym że ten błąd się pojawia, bo nie da się ustawić flagi PSH w pakiecie TCP, a tej flagi używa oficjalny klient przy komunikacji z serwerem, przez to że tej flagi brakuje czasami serwer nie odpowiada. Znalazłem jednak sposób na ten problem, wrzuciłem do kodu na wysyłanie pętlę, która po przekroczeniu czasu ustawionego w glob_timeout ponawia próbę wysyłania. Na ten moment to rozwiązanie u mnie sprawuje się bardzo dobrze, wcześniej nie mogłem momentami w ogóle ze skryptu korzystać, bo nie dało rady się zalogować, albo pliki się nie wysyłały wszystkie a teraz działa dość stabilnie. Jak znajdę chwilę czasu to wrzucę to na githuba swojego, a potem zrobię pull requesta, może Grycek zaakceptuje

gregory1972 commented 3 years ago

Witam Dzięki 4meters za poprawkę. Rozwiązanie które wprowadziłeś z pętlą sprawuje się wyśmienicie. 👍 :)