Page 1 of 11 123 ... LastLast
Results 1 to 15 of 156

Thread: pyLoad - менеджер закачек

  1. #1

    Exclamation pyLoad - менеджер закачек

    Коллеги, хочу обратить ваше внимание на проект pyLoad, который может быть заинтересует пользователей Download Engine или ADOS в качестве альтернативы. В русскоязычной ветке форума pyLoad вовсе не упоминается, однако в дойч-ветке обсуждение растянулось на 18 страниц. Основные преимущества этого менеджера закачек:
    • низкое потребление ресурсов. Субъективно несколько тяжелее DE, но куда легче ADOS'а. При скачивании на скорости 20МБит/c загрузка CPU ~50%. В режиме ожидания загрузка CPU ~1,5%
    • поддерживает крупнейшие файлохостинги, причём умеет распознавать капчи и подставлять премиум логины при необходимости,
    • сам обновляет себя и свои плагины (automagically ;-) и достаточно динамично развивается,
    • не нуждается в установке отдельного web-сервера, хотя спокойно интегрируется с имеющимися,
    • имеет русифицированный WEB-интерфейс, перевод на русский язык осуществляли VicSer и я, если найдёте какие-то ляпы перевода - скажите.
    • полностью написан на питоне, если приглядеться, прогресс-бары на скриншоте ползут в реальном времени



    1. Установка:
    Пакет доступен в репозитории Entware. Установите его:
    Code:
    $ opkg install pyload
    2. Конфигурирование:
    Code:
    $ /opt/bin/python /opt/share/python/pyload/pyLoadCore.py --configdir=/opt/etc/pyload
    Будут заданы ряд вопросов по желаемой конфигурации. Все ответы очевидны, но если вконец запутаетесь, в приложении смотрите пример. В дальнейшем любые параметры конфигурации можно будет менять в web-интерфейсе.
    Для того, чтобы pyLoad стартовал сам при перезагрузки роутера необходимо создать скрипт /opt/etc/init.d/S80pyLoad следующего содержания:
    Code:
    #!/bin/sh
    PATH=/opt/usr/sbin:/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin
    
    start() {
            echo "starting pyLoad"
            /opt/bin/python /opt/share/python/pyload/pyLoadCore.py --configdir=/opt/etc/pyload --daemon
            }
    
    stop() {
            echo "stopping pyLoad"
            /opt/bin/python /opt/share/python/pyload/pyLoadCore.py --configdir=/opt/etc/pyload --quit
            }
    
    status() {
            echo "pyLoad PID is..."
            /opt/bin/python /opt/share/python/pyload/pyLoadCore.py --configdir=/opt/etc/pyload --status
            }
    
    case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            sleep 5
            start
            ;;
        status)
            status
            ;;
        *)
            echo "Usage: $0 (start|stop|restart|status)"
            exit 1
            ;;
    esac
    
    exit 0
    и сделать этот скрипт исполняемым:
    Code:
    $ chmod +x /opt/etc/init.d/S80pyLoad
    3. Использование: наберите в браузере 192.168.1.1:8000, где 192.168.1.1 - ip-адрес роутера.
    Attached Files Attached Files
    Last edited by ryzhov_al; 30-03-2012 at 21:15. Reason: Пакет добавлен в новый репозиторий

  2. #2
    Quote Originally Posted by ryzhov_al View Post
    3. Использование: наберите в браузере 192.168.1.1:8000, где 192.168.1.1 - ip-адрес роутера.
    Что-то не пашет. Настраивал на встроенный веб-сервер, порт оставил по умолчанию, htop в процессах показывает screen -dms python PyLoadCore.py
    Куда еще поглядеть?

  3. Code:
    iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
    а про порт то никто и не вспомнил

    качалка хорошая, взял на вооружение
    WNR3500L + 1.9.2.7-rtn

  4. #4
    Не помогло. Впрочем, хотелось бы перенести веб-интерфейс на существующий веб-сервер.

  5. #5
    VicSer, вижу твою активность по локализации интерфейса pyLoad. Здорово.

  6. #6
    Join Date
    May 2010
    Location
    Moscow, Izmailovo
    Posts
    416
    Quote Originally Posted by ryzhov_al View Post
    VicSer, вижу твою активность по локализации интерфейса pyLoad. Здорово.
    Есть такое. На родном то языке - оно как-то приятнее.
    1. WL500gp v1 (1.9.2.7-10) -> RT-N16 (1.9.2.7-rtn-r3849) -> RT-AC66U (3.0.0.4.374.4422)
    2. RT-N16 (1.9.2.7-rtn-r3893) -> RT-AC66U (3.0.0.4.374.979) -> RT-AC68U (3.0.0.4.374.4422) + WD TV Live Hub/Gen3
    3. RT-N15U (1.9.2.7-rtn-r3926) + RT-N12C1 (7.1.1.1.32)

  7. #7
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by Zyxmon View Post
    ryzhov_al Ну это не топовый, в моем понимании. Проблема в отутвии исходников прошивки и родного тулчейна с uClibc. А железка занятная.
    Offtopic: И охота вам поддерживать очередных воров (нарушителей GPL)? А железки самые обыкновенные - аналоги RT-N13U, RT-N56

  8. #8
    Quote Originally Posted by lly View Post
    Offtopic: И охота вам поддерживать очередных воров (нарушителей GPL)? А железки самые обыкновенные - аналоги RT-N13U, RT-N56
    Будем надеятся, что со временем ZyXEL все выложит. Пока нужного на ftp://opensource.zyxel.com/ нет. Есть для других роутеров на Ralink RT305x. Для NBG-417N и NBG4115. Старший кинетик, который на руках, это скорее NBG4215.

  9. #9
    Локализация интерфейса закончена. При желании прошу пробежаться по переводу воизбежании появления явных ляпов перед коммитом в дистрибутив.

  10. #10
    Join Date
    Mar 2011
    Location
    UA
    Posts
    222
    Ну так, а когда russian webgui появится, а то сейчас на каком-то понятно, но явно не родном, наверное англицком
    И еще, есть де нить описалово как плагины (hosters) делать?

  11. #11
    Quote Originally Posted by voidshah View Post
    Ну так, а когда russian webgui появится, а то сейчас на каком-то понятно, но явно не родном, наверное англицком
    На сайте pyLoad указано когда. Как раз на англицком.
    Quote Originally Posted by voidshah View Post
    И еще, есть де нить описалово как плагины (hosters) делать?
    Там же, в форуме. На англицком или немчине.

  12. #12
    Решил попробовать поставить pyLoad на другое устройство WD My Book World II похожее системой на wl500w и так же пакеты Optware устанавливаются в папку /opt . Установка командой "ipkg install файл" не получилась... Распаковал вручную, там оказалось, что установка скачивает необходимые файлы с сайта http://get.pyload.org/get/src/ в папку /opt/share - в общем сделал все так же. Запустил /opt/etc/init.d/S90pyload start - запустилось.
    Набираю python /opt/share/pyload/pyLoadCore.py -s
    Ответ:
    python: can't load library 'libpython2.5.so.1.0'
    До этого не удалось установить tesseract-ocr , в этом дело?

  13. #13
    Quote Originally Posted by ryzhov_al View Post
    На сайте pyLoad указано когда. Как раз на англицком.
    А не могли бы уточнить, на сайте не нашёл информации, ни как скачать, ни как установить русский язык. Увидел только что вроде как переведеноео на 100%
    ASUS RT-N16 :: Dune MAX :: Acer Aspire 5673

  14. #14
    Join Date
    Mar 2011
    Location
    UA
    Posts
    222
    как понял, пока никак. выйдет с новым билдом.

  15. #15
    Join Date
    Mar 2011
    Location
    UA
    Posts
    222

    Exclamation Плагин для Letitbit

    Вот накидал плаг для Letitbit (без преум-аккаунта!)

    Сохранить как Letitbit.py
    Кинуть в /opt/share/pyload/module/plugins/hoster
    Рестартануть pyLoad:
    Code:
    $ /opt/etc/init.d/S90pyload stop
    $ /opt/etc/init.d/S90pyload start
    Сам плаг:
    PHP Code:
    # -*- coding: utf-8 -*-

    import re
    from module
    .utils import parseFileSize
    from module
    .plugins.Hoster import Hoster

    class Letitbit (Hoster):
        
    __name__ "Letitbit"
        
    __type__ "hoster"
        
    __pattern__ r"http://letitbit.net/*"
        
    __version__ "0.1"
        
    __description__ """LetItbit.Net Download Hoster"""
        
    __author_name__ = ("voidshah")
        
    __author_mail__ = ("none")

        
    def setup(self):
            
    self.resumeDownload True
            self
    .html None
            self
    .wantReconnect False
            self
    .multiDL False

        def process
    (selfpyfile):
            
    self.html self.load(pyfile.urlcookies=True)
            
    self.log.info(pyfile.url)
            if 
    "File Not Found" in self.html:
                
    self.offline()
            
    pyfile.name re.search('<form method=\"post\"\s+action=\"/download.php\?uid=.+?&name=(.+?)&page',self.html).group(1)
            
    self.log.info(pyfile.name)
            
    url1 re.search('<form id=\"ifree_form\"\s+action=\"(.+?)\"\s+method=\"post\">',self.html).group(1)
            
    url1 'http://letitbit.net'+url1

            ouid5 
    re.search('<input type=\"hidden\" name=\"uid5\" value=\"(.+?)\" />',self.html).group(1)
            
    ouid re.search('<input type=\"hidden\" name=\"uid\" value=\"(.+?)\" />',self.html).group(1)
            
    oname re.search('<input type=\"hidden\" name=\"name\" value=\"(.+?)\" />',self.html).group(1)
            
    opin re.search('<input type=\"hidden\" name=\"pin\" value=\"(.+?)\" />',self.html).group(1)
            
    orealuid re.search('<input type=\"hidden\" name=\"realuid\" value=\"(.+?)\" />',self.html).group(1)
            
    orealname re.search('<input type=\"hidden\" name=\"realname\" value=\"(.+?)\" />',self.html).group(1)
            
    ohost re.search('<input type=\"hidden\" name=\"host\" value=\"(.+?)\" />',self.html).group(1)
            
    ossserver re.search('<input type=\"hidden\" name=\"ssserver\" value=\"(.+?)\" />',self.html).group(1)
            
    osssize re.search('<input type=\"hidden\" name=\"sssize\" value=\"(.+?)\" />',self.html).group(1)
            
    odir re.search('<input type=\"hidden\" name=\"dir\" value=\"(.+?)\" />',self.html).group(1)
            
    ooptiondir re.search('<input type=\"hidden\" name=\"optiondir\" value=\"(.+?)\" />',self.html).group(1)
            
    olsarrserverra re.search('<input type=\"hidden\" name=\"lsarrserverra\" value=\"(.+?)\" />',self.html).group(1)
            
    omd5crypt re.search('<input type=\"hidden\" name=\"md5crypt\" value=\"(.+?)\" />',self.html).group(1)
            
    orealuid_free re.search('<input type=\"hidden\" name=\"realuid_free\" value=\"(.+?)\" />',self.html).group(1)
            
    osubmit_way_selection2 re.search('<input style=\"width:100%; text-align:center\" value=\"(.+?)\" title=\".+?\" type=\"submit\" name=\"submit_way_selection2\" />',self.html).group(1)

            
    pyfile.size parseFileSize(osssize)

            
    self.html None
            postv
    ={"uid5" ouid5"uid" ouid"name" oname"pin" opin,
                  
    "realuid" orealuid"realname" orealname"host" ohost,
                  
    "ssserver" ossserver"sssize" osssize"dir" odir,
                  
    "optiondir" ooptiondir"lsarrserverra" olsarrserverra,
                  
    "md5crypt" omd5crypt"realuid_free" orealuid_free,
                  
    "submit_way_selection2"osubmit_way_selection2}
            
    self.html self.load(url1post=postv cookies=True)#utf8=True
            
    url2 re.search(r'<form action="(.+?)" method="post".+?">',self.html).group(1)

            
    ouid re.search('<input type=\"hidden\" name=\"uid\" value=\"(.+?)\" />',self.html).group(1)
            
    opin re.search('<input type=\"hidden\" name=\"pin\" value=\"(.+?)\" />',self.html).group(1)
            
    omd5crypt re.search('<input type=\"hidden\" name=\"md5crypt\" value=\"(.+?)\" />',self.html).group(1)

            
    self.html self.load(url2,post={"pin" opin"md5crypt" omd5crypt,"uid" ouid}, cookies=True)

            
    needwait =re.search(r'<div id="stopwatch" class="label">',self.html)
            if 
    needwait:
                
    wt re.search(r'<br/><span id="seconds" style="font-size:18px">(.+?)</span> seconds'self.html).group(1)
                
    self.log.info("wait="+wt)
                
    wait_time int(wt)+2
                self
    .setWait(wait_time)
                
    self.wait()
                
    url3 re.search(r'http://(.+?)/.+?',url2).group(1)
                
    ajax re.search(r'http://.+?/(.*)',url2).group(1)
                
    url3 "http://"+url3+"/ajax/"+ajax

                self
    .html self.load(url3post={"":""}, ref=Truecookies=True)

                
    link self.html
                self
    .log.info("link="+link)
                
    self.download(link)



Page 1 of 11 123 ... LastLast

Similar Threads

  1. Менеджер закачек с веб-мордой на основе aria2
    By ABATAPA in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 60
    Last Post: 29-12-2014, 11:10
  2. Еще раз про rTorrent и web-морду к нему.
    By Novik in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 3395
    Last Post: 18-11-2014, 14:02
  3. [HowTo] install pyLoad
    By !gm in forum WL-500gP Tutorials
    Replies: 4
    Last Post: 22-06-2011, 20:06
  4. pyLoad! .. OpenSource Downloader fьr ASUS WL500gP ?
    By smiith in forum German Discussion - Deutsch (DE)
    Replies: 1
    Last Post: 20-07-2009, 02:46

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •