Mokhoa oa ho jarolla lihlooho tseo u li ratang ka boiketsetso

Ketsahalong e 'ngoe, re buile ka Mofuputsi oa Lenaneo la Torrent (TED), lenaneo le letle haholo le ngotsoeng Java le re lumellang ho eketsa letoto la lihlooho tseo re li ratang le ho li jarolla ka boiketsetso ha likhaolo tse ncha li tsoa.

Mokhoa o hlalositsoeng posong ena ke o mong ho fapana le TED, oo bongata ba lona le ka o fumanang oa bo thahasella..

Tlhokomeliso: Pele re qala, ho bonahala ho le bohlale ho re ho na le mekhoa e meng ea ho fihlela litholoana tse tšoanang. Tsela e 'ngoe ea ho etsa sena ke ka ho sebelisa TED, empa ho boetse ho na le bareki ba molapo o phoroselang ba tlang le tšehetso ea RSS (e etsang hore tsohle li be bonolo haholo). Hape, ho na le mengolo e meng (e ts'oanang le e bonts'itsoeng ka tlase) e etsang se ts'oanang (ebile e betere le ho feta)… Ke nahana, ka mohlala, ea FlexRSS.

Mokhoa ona o kenyelletsa ho theha mosebetsi o hlophisitsoeng o sebelisang python script khafetsa. Sengoloa sena se jarolla melapo e phoroselang ka RSS. Libaka tse ngata tsa download tsa toropo li lumella khetho ena, e tummeng ka ho fetisisa EA-KHALE. Monyetla oa ho sebelisa RSS ho jarolla melapo e phoroselang ke hore e o lumella ho "ingolisa" le ho jarolla melapo e phoroselang ea lethathamo la hau leo ​​o le ratang ha likhaolo tse ncha li hlaha. Joalo feela ha u ingolisa ho blog kapa fepa ka litaba.

Mehato e lokelang ho lateloa

1.- Kenya sephutheloana sopho e ntle ea python.

Sudo apt-get kenya python-beautifulsoup

2.- Bula mohlophisi oa mongolo oo u o ratang haholo. Kopitsa khoutu e latelang ho eona ebe u boloka faele ka lebitso le latelang: ~ / bin / tormon.py

#! / usr / bin / env python

import urllib2, urlparse
ho tloha urllib2 import HTTPError, URLError
ho tloha BeautifulSoup ho kenya BeautifulSoup
kenya o
import optparse

__sejoe __ = `` '
tormon.py -O ~ / test / tormon -u "http: //rss.feed"
'' '

sehlopha sa Main (ntho):
    '' '
    tormon e lekola phepelo ea rss bakeng sa melapo e phoroselang e ncha. Ha e fumana new .torrent, ho
    ee jarollele bukaneng e hlahisitsoeng ea tlhahiso, moo (mohlomong) ho lekolang
    Lenaneo la molapo o phoroselang le tla jarolla faele e tsamaellanang.    
    '' '
    def parse_options (ho intša):
        tšebeliso = 'ts'ebeliso:% prog [likhetho]' + __ tšebeliso__
        OptionParser (tšebeliso = tšebeliso)
        moruti.add_option (
            '-O', '--output_dir', dest = 'tlhahiso_dir',
            thuso = 'sesebelisoa moo ho bolokiloeng melapo e phoroselang e ncha',
            metavar = 'DIR')
        moruti.add_option (
            '-f', '--filetype', dest = 'filetype',
            ketso = 'hlomathisa',
            default = [],
            thuso = 'mefuta ea lifaele tse amohelehang',
            metavar = 'Mofuta')
        moruti.add_option (
            '-d', '- e jarollotsoeng_torrents', dest = 'download_torrents',
            kamehla = os.path.expanduser ('~ / .downloaded_torrents'),
            thuso = 'log ea melapo e phoroselang e seng e ntse e jarollotsoe',
            metavar = 'FILE')
        moruti.add_option (
            '-e', '--error_log', dest = 'phoso_log',
            thuso = 'log ea likhohola e hlotsoe ho jarolla',
            metavar = 'FILE')
        moruti.add_option (
            '-b', '- sehlopha', dest = 'batch',
            thuso = 'faele e nang le lenane la li-urls tsa fepa ea rss',
            metavar = 'FILE')
        moruti.add_option (
            '-u', '--url', qetello = 'url',
            ketso = 'hlomathisa',
            default = [],
            thuso = 'url ea fepa ea rss',
            metavar = 'URL')
        moruti.add_option (
            '-m', '- mark_all_downloaded', dest = 'mark_all_downloaded',
            ketso = 'lebenkele la' nete ',
            default = Bohata,
            thuso = "tšoaea melapo eohle e phoroselang joalo ka ha e se e jarollotsoe")
        moruti.add_option (
            '-M', '- match_by_filename', dest = 'match_by_filename',
            ketso = 'lebenkele la' nete ',
            default = Bohata,
            thuso = "hlokomela lifaele tse jarollotsoeng ka filename, eseng URL. Ho bapisa URL ke ntho ea mantlha.")        
        (self.opt, args) = parser.parse_args ()
        haeba self.opt.batch:
            bakeng sa mohala o bulehileng (self.opt.batch, 'r'):
                line = line.strip ()
                haeba line eseng line.startswith ('#'):
                    self.opt.url.append (mola)
        haeba e se self.opt.output_dir:
            boithuto.opt.output_dir = os.path.expanduser ('~ / Desktop')
        haeba ho se joalo.
            self.opt.filetype = ['. torrent'] haeba e se self.opt.error_log:
            self.opt.error_log = self.opt.downloaded_torrents + '. liphoso'
        leka:
            Tlotlisang (self.opt.output_dir)
        ntle le OSError:
            haeba e se os.path.exists (self.opt.output_dir):
                print ('tormon e hlotsoe ho etsa directory% s'% self.opt.output_dir)
                tsoa (1)
    def load_list_of_already_downloaded_torrents (ho intša):
        leka:
            self.downloaded = open (self.opt.downloaded_torrents, 'r'). bala (). arola ()
        ntle le IOError:
            self.downloaded = [] leka:
            self.errors = bulehileng (self.opt.error_log, 'r'). bala (). arola ()
        ntle le IOError:
            self.errors = [] def update_downloaded (self, url):
        boithati.downloaded.append (url)
        leka:
            boipheliso.remove (url)
        ntle le ValueError:
            fetisa        
    def download_torrent (self, url):
        leka:
            sesepa = urllib2.urlopen (url)
        ntle le (HTTPError, URLError):
            # print ('sefefo se hlotsoe ho jarolla% s'% url)
            haeba url e sa iketsetse.
                iketsetse.appors (url)
        ho seng joalo:
            filename = self.url2filename (url)
            target_file = os.path.join (self.opt.output_dir, filename)
            printa ('Khoasolla% s'% target_file)
            dikahare = sock.read ()
            lehlohonolo ()
            fh = bulehileng (target_file, 'w')
            ngola (dikahare)
            koala ()
            boithati.update_downloaded (url)
    def url2filename (self, url):
        khutlisa os.path.basename (urlparse.urlparse (url) [2])
    def has_been_downloaded (self, url):
        haeba self.opt.match_by_filename:
            filename = self.url2filename (url)
            khutla (filename ho [self.url2filename (linki) bakeng sa khokahano ho self.downloaded])
        ho seng joalo:
            khutla (url in self.downloaded)
    def parse_rss_feed (ho intša):
        bakeng sa url ho self.opt.url:
            hatisa ('RSS feed:% s'% url)
            leka:
                sesepa = urllib2.urlopen (url)
            ntle le (HTTPError, URLError):
                print ('tormon e hlotsoe ho jarolla% s'% url)
            ho seng joalo:
                dikahare = sock.read ()
                lehlohonolo ()
                sopho = BeautifulSoup (dikahare)
                li-link = ([link.nextSibling for link in soup.findAll ('link')] +
                       [link ['href'] bakeng sa khokahano ho sopho.findAll ('a')] +
                       [link ['url'] bakeng sa sehokela sa soup.findAll ('media: content')])
                bakeng sa sehokela sa lihokela:
                    haeba (leha e le efe ([link.lower (). e qetella ka (e qetella)
                             bakeng sa ho iphelisa. self.opt.filetype])
                        eseng ea hau. has_been_downloaded (link)):
                        haeba self.opt.mark_all_downloaded:
                            printa ('Ho tšoaea% s e le download'% link)
                            self.update_downloaded (link tsa)
                        ho seng joalo:
                            selekane.download_torrent (link tsa)
    def save_list_of_already_downloaded_torrents (ka bowena):
        fh = bulehileng (self.opt.downloaded_torrents, 'w')
        fh.write ('n'.join (self.downloaded))
        koala ()
        fh = bulehileng (self.opt.error_log, 'w')
        ngola ('n'.join (self.errors))
        koala ()
    hlalosa __init __ (u ithata):
        boithatelokgopela ()        
        self.load_list_of_already_downloaded_torrents ()
        leka:
            kholofelo_tshepelo ()
        ntle le KeyboardInterrupt:
            fetisa
        qetellong:
            bolokile.list_list_of_already_downloaded_torrents ()
haeba __name __ == '__ ka sehloohong__':
    Main ()

3.- E fane ka tumello.

chmod + x ~ / bin / tormon.py

4.- Lekola hore tsohle li sebetsa hantle.

tormon.py -O ~ / melapo e phoroselang / -u "http: //rss.feed"

E reng ~ / melapo e phoroselang /, o tlameha ho e nkela sebaka ka tsela eo o batlang ho boloka melapo e phoroselang e jarollotsoeng. Hopola hore ho tla ba le lifaele tse ngata tsa .torrent.

Moo e reng "http: //rss.feed", o tlameha ho e nkela sebaka ka URL ea RSS feed ea lethathamo la hau leo ​​u le ratang. U ka e fumana joang? Hantle haeba o batla ho e sebelisa EA-KHALE, Ke ile ka ea leqepheng le ka sehloohong mme ka ngola lebitso la letoto la lihlooho. Lenane le leholo le tla hlaha ka liphetho. Haeba u batla ho ntlafatsa patlo ea hau (ho sefa letsatsi, boleng kapa motho ea haholotseng video), u ka e etsa ka ho u tataisa ka mehlala e phatlalalitsoeng ka ho hlaka leqepheng leo. Ha u se u fumane liphetho tseo u li batlang, tlanya ka ho le letona ho sehokela se reng Patlo ea RSS e thehiloeng lipatlisisong e hlahang pela konopo ea lamunu e khetholloang ke liphepelo tsa RSS. Kopitsa sehokela ebe o se beha sebakeng sa http://rss.feed ea mohlala.

Lintlha tse ling tse lokelang ho hopoloa:

  • Haeba -O parameter e tlosoa, lifaele tsa .torrent li tla kopitsoa ho Desktop.
  • Haeba u sebelisa taelo e tšoanang hanghang kamora moo, ha ea lokela ho jarolla molapo o phoroselang o mocha, ntle le haeba molapo o mocha o kentsoe phepelong ea RSS.
  • Taelo ena e theha foldara moo melapo e phoroselang e tla bolokoa haeba e le sieo.
  • Lethathamo la li-URL tsa melatsoana e jarollotsoeng ka katleho li tla bolokoa ho ~ / .downloaded_torrents.
  • Ho hlokomela phepelo e fetang 1 ea RSS, o ka sebelisa -u parameter. Mohlala: tormon.py -u "http: //rss.feed1" -u "http: //rss.feed2"

5.- Haeba ntho e ngoe le e ngoe e sebetsa hantle, o ka eketsa sengoloa e le mosebetsi o hlophisitsoeng oa crontab.

crontab -e

Taelo ena e tla bula mohlophisi oa mongolo.

Tšoaea khoutu e latelang e le qalong ea faele:

PATH = / sbin: / bin: / usr / sbin: / usr / bin: / home / USER / bin
MAILTO = SEBELISA

Fetoha MOTSOALI ka lebitso la hau la mosebelisi.

Tšoaea khoutu e latelang kae kapa kae ka tlase TSELA =…

* / 15 * * * * tormon.py -u "http: //rss.feed"

Sena se tla tsamaisa sengoloa metsotso e meng le e meng e 15. Ehlile, o ka e fetola hore e lumellane le litlhoko tsa hau. Ha ho tluoa letotong la thelevishene, ho ka ba bohlale ho e bapala hang ka beke. Se ke la lebala ho bala poso ea rona e fetileng moo re hlalosang mohato ka mohato mokhoa oa ho kenyelletsa mesebetsi ho crontab.

Ho e tsamaisa Sontaha se seng le se seng ka 10 AM:

00 10 * * 0 tormon.py -u "http: //rss.feed"

Tlhokomeliso: se ke oa lebala ho nkela meeli e fetisitsoeng ho sefefo.py le tse lumellanang le litlhoko tsa hau. Bonyane, taelong e kaholimo, o tla tlameha ho nka sebaka sa URL ea phepelo ea RSS.

Ho qeta, etsa bonnete ba hore ho na le mohala o se nang letho qetellong ea faele ea crontab. Ha ke tsebe hore na hobaneng empa ke tlhoko ea crontab hore ntho e ngoe le e ngoe e sebetse hantle.

Boloka faele ebe u tsoa mohlophisi oa mongolo.

Tlhokomeliso: haeba u kentse moemeli oa phetisetso ea mangolo, joalo ka exim4, mohala MAILTO = USER o tla joetsa crontab ho u romella liphetho tsa ho bolaoa ha tormon.py ka lengolo tsoibila.


Litaba tsa sengoloa sena li latela melao-motheo ea rona ea melao ea boitšoaro ea bongoli. Ho tlaleha phoso tlanya mona.

Maikutlo a 7, siea ea hau

Siea maikutlo a hau

aterese ya hao ya imeile ke ke ho phatlalatswa. masimo a hlokahala a tšoailoe ka *

*

*

  1. E ikarabella bakeng sa data: Miguel Ángel Gatón
  2. Morero oa data: Laola SPAM, tsamaiso ea maikutlo.
  3. Molao: Tumello ea hau
  4. Puisano ea data: Lintlha li ke ke tsa tsebisoa batho ba boraro ntle le ka tlamo ea molao.
  5. Polokelo ea data: Database e hapiloeng ke Occentus Networks (EU)
  6. Litokelo: Nako efe kapa efe o ka fokotsa, oa hlaphoheloa mme oa hlakola tlhaiso-leseling ea hau.

  1.   Jakeukalane a re

    Ka lehlohonolo ke tseba Senyesemane. Ke e entse ka YaRSS. Bona hore na ea sebetsa.

  2.   Jakeukalane a re

    Ho lokile. empa ha ho motho ea hlalosang mokhoa oa ho sebelisa FlexRSS. Leqepheng la hau kaofela ho monate haholo empa ha ke so fumane mokhoa oa ho e eketsa ho moroallo ... ba boetse ba re Moroallo o tla ka o le mong mme ha se 'nete.

    litumeliso

  3.   Miquel Mayol ke Tur a re

    Qbittorrent le ba bang ba na le lits'ebetso tsa ho hlophisa tse iketselitsoeng. Ho ka ba molemo ho hlalosa hore na e 'ngoe le e' ngoe ea tsona e sebetsa joang.Ka tloaelo ke hlalosa microtorrent ea MS WOS le Qbittorrent bakeng sa Linux. Ho spoiler ho ne ho e-na le thupelo, empa ka sebele u tla bokella maeto a mangata haeba u etsa livideo ka lenaneo le leng le le leng le tsebahalang la molapo o phoroselang, u eketsa ka mohlala EZ

  4.   Ha re sebeliseng Linux a re

    Ke leboha Miquel! Ke tla e ela hloko, joalo ka maikutlo le litlhahiso tsohle tsa hau!
    Ke u haka haholo! Pauluse.

  5.   Leoatle la leoatle a re

    Sebaka sa polokelo se nang le lenaneo lena ke sena:
    https://launchpad.net/~lopeztobal/+archive/maths
    ka tsela: http://linuxmusica.com/

  6.   Sharik a re

    Khaotsa ho paka ka ts'ebeliso ea lithollo 'me u phatlalatse tšebeliso ea sistimi e sebetsang!

  7.   Ha re sebeliseng Linux a re

    Hehe ...