Yadda ake saukar da jerin abubuwan da kuka fi so ta atomatik

A wani sakon, munyi magana akan Torrent Episode Downloader (Ted), Kyakkyawan shirin da aka rubuta a cikin Java wanda ke ba mu damar ƙara jerin abubuwan da muke so kuma zazzage su ta atomatik yayin da sababbin surori suka fito.

Hanyar da aka bayyana a cikin wannan post ita ce madadin TED, wanda da yawa daga cikinku tabbas zaku sami sha'awa..

Lura: Kafin mu fara, yana da kyau a ce akwai wasu hanyoyin don cimma sakamako iri ɗaya. Oneaya daga cikin hanyoyin da za a yi wannan shine ta amfani da TED, amma kuma akwai wasu abokan cinikin da suka zo tare da tallafin RSS (wanda ke sa komai ya zama da sauƙi). Hakanan, akwai wasu rubutun (kwatankwacin wanda aka nuna a ƙasa) waɗanda suke yin hakan (kuma ma mafi kyau)… Ina tunanin, misali, na FlexRSS.

Hanyar ta ƙunshi ƙirƙirar aikin da aka tsara wanda ke gudanar da rubutun Python kowane lokaci sau da yawa. Wannan rubutun yana saukar da koguna ta hanyar RSS. Yawancin rukunin yanar gizo masu saukar da raɗaɗi suna ba da izinin wannan zaɓi, mafi shahararren mutum ezRSS. Amfanin amfani da RSS don saukar da raƙuman ruwa shine cewa yana baka damar "biyan kuɗi" da kuma saukar da magudanar jerin da kuka fi so yayin da sabbin surori suka bayyana. Kamar dai lokacin da kuka yi rijista zuwa shafi ko abincin labarai.

Matakan da za a bi

1.- Shigar da kunshin bikin-kyau.

sudo apt-samun shigar python-beautifulsoup

2.- Bude editan rubutun da kake so. Kwafi lambar mai zuwa a ciki kuma adana fayil ɗin tare da suna mai zuwa: ~ / bin / tormon.py

#! / usr / bin / env Python

shigo da urllib2, urlparse
daga urllib2 shigo da HTTPError, URLError
daga BeautifulSoup shigo da BeautifulSoup
shigo da ku
shigo da kayan aiki

__ amfani __ = '' '
tormon.py -O ~ / gwajin / tormon -u "http: //rss.feed"
'' ''

Babban aji (abu):
    '' ''
    tormon yana duba abincin RSS don sabbin rafuka. Lokacin da ta sami sabon .toci, to
    zazzage shi zuwa takamaiman kundin fitarwa, inda (mai yiwuwa) saka idanu
    torrent shirin zai sauke daidai fayil.    
    '' ''
    def parse_options (kai):
        amfani = 'amfani:% prog [zaɓuɓɓuka]' + __ amfani__
        parser = optparse.OptionParser (amfani = amfani)
        parser.add_option (
            '-O', '--output_dir', dest = 'fitarwa_dir',
            taimaka = 'kundin adireshi wanda aka sami sabon raƙuman ruwa',
            metavar = 'DIR')
        parser.add_option (
            '-f', '-filetype', dest = 'fayil ɗin rubutu',
            aiki = 'ƙara',
            tsoho = [],
            taimaka = 'nau'ikan fayil masu yarda',
            metavar = 'nau'in')
        parser.add_option (
            '-d', '--downloaded_torrents', dest = 'sauke_torrents',
            tsoho = os.path.expanduser ('~ / .downloaded_torrents'),
            taimako = 'log na riga an saukar da raƙuman ruwa',
            metavar = 'FILE')
        parser.add_option (
            '-e', '--error_log', dest = 'error_log',
            taimaka = 'log na torrents tormon kasa sauke',
            metavar = 'FILE')
        parser.add_option (
            '-b', '-batch', dest = 'tsari',
            taimaka = 'fayil dauke da jerin rss feed URL',
            metavar = 'FILE')
        parser.add_option (
            '-u', '--url', dest = 'url',
            aiki = 'ƙara',
            tsoho = [],
            taimaka = 'url na abincin rss',
            metavar = 'URL')
        parser.add_option (
            '-m', '- mark_all_downloaded', dest = 'mark_all_downloaded',
            aiki = 'store_true',
            tsoho = searya,
            taimako = "yiwa alama duka koguna kamar yadda aka riga aka sauke")
        parser.add_option (
            '-M', '- match_by_filename', dest = 'wasan_by_filename',
            aiki = 'store_true',
            tsoho = searya,
            help = "gane fayilolin da aka zazzage ta sunan fayil, ba URL ba. Daidaita da URL shine tsoho.")        
        (self.opt, args) = parser.parse_args ()
        idan kai.opt.batch:
            don layi a bude (self.opt.batch, 'r'):
                layi = layi.strip ()
                idan layi ne ba layi ba. farawa ('#'):
                    self.opt.url.append (layi)
        in ba kai ba.opt.output_dir:
            self.opt.output_dir = os.path.expanduser ('~ / Desktop')
        in ba kai ba.opt.filetype:
            self.opt.filetype = ['. torrent'] idan ba kai ba.opt.error_log:
            self.opt.error_log = kai.opt.downloaded_torrents + '. kurakurai'
        gwada:
            os.makedirs (self.opt.output_dir)
        banda OSError:
            idan ba os.path.exists (self.opt.output_dir):
                bugawa ('azabar ta kasa kirkirar shugabanci% s'% self.opt.output_dir)
                fita (1)
    def load_list_of_already_downloaded_torrents (kai):
        gwada:
            self.downloaded = bude (self.opt.downloaded_torrents, 'r'). karanta (). raba ()
        sai dai IOError:
            self.downloaded = [] gwada:
            self.errors = bude (self.opt.error_log, 'r'). karanta (). raba ()
        sai dai IOError:
            kanikanci = [] def update_downloaded (kai, url):
        son.downloaded.append (url)
        gwada:
            kanikanci.remove (url)
        sai ueimar Kuskure:
            wuce        
    def download_torrent (kai, url):
        gwada:
            sock = urllib2.urlopen (url)
        banda (HTTPEnanna kuskure, URLError):
            # bugawa ('tormon ya kasa sauke% s'% url)
            idan url ba cikin son kai ba.
                kai.kasan.append (url)
        wani:
            filename = sunan.url2filename (url)
            target_file = os.path.join (self.opt.output_dir, filename)
            Buga ('Ana zazzage% s'% target_file)
            abun ciki = sock.read ()
            sock.kusa ()
            fh = bude (target_file, 'w')
            fh.write (abun ciki)
            fh.kusa ()
            saukakke_dage (url)
    suna url2filename (kai, url):
        dawo da os.path.basename (urlparse.urlparse (url) [2])
    def ya_been_downloaded (kai, url):
        idan self.opt.match_by_filename:
            filename = sunan.url2filename (url)
            dawo (sunan filen a cikin [self.url2filename (mahada) don mahada a cikin kai.downloaded])
        wani:
            dawo (url a cikin kai.dakke)
    def parse_rss_feed (kai):
        don url a cikin kai.opt.url:
            buga ('RSS feed:% s'% url)
            gwada:
                sock = urllib2.urlopen (url)
            banda (HTTPEnanna kuskure, URLError):
                Fitar ('tormon ya kasa sauke% s'% url)
            wani:
                abun ciki = sock.read ()
                sock.kusa ()
                miya = BeautifulSoup (abun ciki)
                links = ([link.nextSibling don haɗi a cikin miya.findAll ('mahada')] +
                       [mahada ['href'] don mahada a miya.findAll ('a')] +
                       [mahada ['url'] don hanyar haɗi a cikin miya.findAll ('kafofin watsa labarai: abun ciki')])
                don haɗi a cikin hanyoyin:
                    idan (kowane ([link.lower (). yana ƙarewa (ƙarewa)
                             don ƙarewa a cikin kai.opt.filetype])
                        kuma ba kai bane.ya_been_downloaded (mahada)):
                        idan kai.opt.mark_all_downloaded:
                            buga ('Alamar% s azanda aka zazzage'% mahada)
                            self.update_downloaded (mahada)
                        wani:
                            self.download_torrent (mahada)
    def save_list_of_already_downloaded_torrents (kai):
        fh = bude (self.opt.downloaded_torrents, 'w')
        Fh.write ('cikin. shiga (kai tsaye))
        fh.kusa ()
        fh = bude (self.opt.error_log, 'w')
        fh.write ('n'.join (masu mulkin kansu))
        fh.kusa ()
    def __init __ (kai):
        syeda_naqvi ()        
        saukowar_ list_of_already_downloaded_torrents ()
        gwada:
            syeda_naqvi ()
        banda faifan maɓalli
            wuce
        a karshe:
            self.save_list_of_already_downloaded_torrents ()
idan __name __ == '__ babba__':
    Babban ()

3.- Bada shi aiwatar da izini.

chmod + x ~ / bin / azabar.py

4.- Duba cewa komai yana aiki daidai.

tormon.py -O ~ / torrents / -u "http: //rss.feed"

Inda yace ~ / rafuka /, dole ne ka maye gurbinsa da hanyar da kake son adana raƙuman da aka sauke. Ka tuna cewa za a sami fayiloli da yawa .torrent.

Inda aka rubuta "http: //rss.feed", dole ne ku maye gurbin shi da adireshin RSS na jerin abubuwan da kuka fi so. Yadda ake samun sa? Da kyau idan kuna son amfani ezRSS, Na je babban shafi na rubuta sunan jerin. Babban jerin zasu bayyana tare da sakamakon. Idan kana son tsaftace bincikenka (kwanan wata, inganci ko mutumin da ya yage bidiyon), zaka iya yin hakan ta hanyar jagorantarka da misalai waɗanda aka buga a sarari a shafin. Da zarar kuna da sakamakon da kuke nema, danna danna mahaɗin da ya faɗi Binciken RSS hakan ya bayyana kusa da maɓallin lemun mai alamar halayen RSS. Kwafi mahaɗin kuma liƙa shi yana maye gurbin http://rss.feed na misali.

Wasu ƙarin bayanan don tuna:

  • Idan aka tsallake -O siga, za a sauke fayilolin .torrent zuwa Desktop.
  • Idan kuna yin umarni iri ɗaya nan da nan bayan haka, bai kamata ta zazzage kowane sabon kwarara ba, sai dai idan an ƙara sabon rafi a cikin RSS.
  • Wannan umarnin yana ƙirƙirar babban fayil inda za'a iya adana raƙuman ruwa idan babu.
  • Jerin URLs na nasarar sauke rafuka za a adana cikin ~ / .downloaded_torrents.
  • Don saka idanu fiye da 1 RSS feed, zaku iya amfani da -u siga. Misali: tormon.py -u "http: //rss.feed1" -u "http: //rss.feed2"

5.- Idan komai yana aiki daidai, zaku iya ƙara rubutun azaman aikin jadawalin crontab.

crontab -e

Wannan umarnin zai bude editan rubutu.

Manna lambar mai zuwa don ta kasance a farkon fayil ɗin:

PATH = / sbin: / bin: / usr / sbin: / usr / bin: / home / USER / bin
MAILTO = MAI AMFANI

Canja Mai amfani da sunan mai amfani.

Manna lambar mai zuwa a wani wuri a ƙasa HANYA =…

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

Wannan zai gudana rubutun kowane minti 15. Tabbas, zaku iya canza shi don dacewa da bukatunku. Idan ya zo ga jerin talabijin, yana da kyau a gudanar da shi sau ɗaya a mako. Kar ka manta da karanta post ɗinmu na baya wanda muke bayani mataki-mataki yadda ake kara ayyuka zuwa crontab.

Don gudu kowace Lahadi a 10 AM:

00 10 * * 0 tormon.py -u "http: //rss.feed"
Lura: kar a manta da maye gurbin sigogin da aka wuce zuwa azaba.py tare da wadanda suka dace da bukatunku. Aƙalla, a cikin umarnin da ke sama, lallai ne ku maye gurbin URL ɗin ciyarwar RSS.

Don gamawa, tabbatar cewa akwai layin wofi a ƙarshen fayil ɗin crontab. Ban san dalili ba amma yana buƙatar crontab don komai yayi aiki daidai.

Adana fayil ɗin kuma fita daga editan rubutu.

Lura: idan har an girka wakili na tura sakon e-mail, kamar su exim4, layin MAILTO = USER zai gaya ma crontab ya turo maka sakamakon aiwatar da tormon.py a cikin imel.


7 comments, bar naka

Bar tsokaci

Your email address ba za a buga. Bukata filayen suna alama da *

*

*

  1. Wanda ke da alhakin bayanan: Miguel Ángel Gatón
  2. Manufar bayanan: Sarrafa SPAM, sarrafa sharhi.
  3. Halacci: Yarda da yarda
  4. Sadarwar bayanan: Ba za a sanar da wasu bayanan ga wasu kamfanoni ba sai ta hanyar wajibcin doka.
  5. Ajiye bayanai: Bayanin yanar gizo wanda Occentus Networks (EU) suka dauki nauyi
  6. Hakkoki: A kowane lokaci zaka iyakance, dawo da share bayanan ka.

  1.   jakeukalane m

    To sa'a na san wasu Turanci. Na yi shi tare da YaRSS. Duba ko yana aiki.

  2.   jakeukalane m

    Ee sanyi. amma babu wanda yayi bayanin yadda ake amfani da FlexRSS. A shafinka komai yayi kyau amma ban sami hanyar da zan kara shi zuwa ambaliyar ba ... suma sunce ambaliyar tana zuwa da daya ta hanyar da bata dace ba kuma ba gaskiya bane.

    gaisuwa

  3.   Miquel Mayol da Tur m

    Qbittorrent da sauransu suna da tsarin tsara abubuwa. Zai yi kyau ayi bayanin yadda kowannensu yake aiki .. Yawancin lokaci nakanyi bayanin microtorrent na MS WOS da Qbittorrent na Linux. A cikin masu lalata akwai koyawa, amma tabbas zaku tara yawan ziyarce-ziyarce idan kunyi bidiyo tare da kowane shahararren shirin kwarara, ƙara misali EZ

  4.   Bari muyi amfani da Linux m

    Na gode Miquel! Zan yi la'akari da shi, kamar duk maganganunku da shawarwarinku!
    Na aiko muku da runguma! Bulus.

  5.   Ruwa m

    Anan ga ma'ajin ajiya wanda ya ƙunshi wannan shirin:
    https://launchpad.net/~lopeztobal/+archive/maths
    via: http://linuxmusica.com/

  6.   sharik m

    Dakatar da wa'azin amfani da kwaya kuma yada amfani da tsarin aiki!

  7.   Bari muyi amfani da Linux m

    Hehe ...