Toisessa viestissä puhuimme Torrent-jaksojen latausohjelma (TED), erinomainen Java-ohjelmassa kirjoitettu ohjelma, jonka avulla voimme lisätä suosikkisarjamme ja ladata ne automaattisesti uusien lukujen ilmestyessä.
Tässä viestissä kuvattu menetelmä on vaihtoehto TED: lle, jota monet teistä todennäköisesti kiinnostavat.. |
Menetelmä koostuu ajoitetun tehtävän luomisesta, joka suorittaa python-komentosarjan niin usein. Tämä skripti lataa torrentit RSS: n kautta. Monet torrentin lataussivustot sallivat tämän vaihtoehdon, suosituin on ezRSS. RSS: n käytön etuna torrentien lataamisessa on, että sen avulla voit "tilata" ja ladata suosikkisarjasi torrentit uusien lukujen ilmestyessä. Aivan kuten tilatessasi blogin tai uutissyötteen.
Seuraavat vaiheet
1.- Asenna paketti python-kaunis keitto.
sudo apt-get asenna python-beautifulsoup
2.- Avaa suosikki tekstieditori. Kopioi seuraava koodi siihen ja tallenna tiedosto seuraavalla nimellä: ~ / bin / tormon.py
#! / usr / bin / env python
tuo urllib2, urlparse
tiedostosta urllib2 tuonti HTTPError, URLError
from BeautifulSoup tuo BeautifulSoup
tuonti os
tuo optparse
__käyttö __ = '' '
tormon.py -O ~ / test / tormon -u "http: //rss.feed"
'''
luokka Pää (esine):
'''
tormon tarkistaa RSS-syötteen uusien torrentien varalta. Kun se löytää uuden .torrent-tiedoston,
lataa sen määritettyyn lähtöhakemistoon, jossa (oletettavasti) valvonta
torrent-ohjelma lataa vastaavan tiedoston.
'''
def parse_options (itse):
käyttö = 'käyttö:% prog [vaihtoehdot]' + __ käyttö__
parser = optparse.OptionParser (käyttö = käyttö)
parser.add_option (
'-O', '--output_dir', dest = 'output_dir',
help = 'hakemisto, johon uudet torrentit tallennetaan',
metavar = 'DIR')
parser.add_option (
'-f', '--filetype', dest = 'tiedostotyyppi',
action = 'liitä',
oletus = [],
help = 'hyväksyttävät tiedostotyypit',
metavar = 'TYYPPI')
parser.add_option (
'-d', '--downloaded_torrents', dest = 'ladatut_torrentit',
oletus = os.path.expanduser ('~ / .downloaded_torrents'),
help = 'jo ladattujen torrentien loki',
metavar = 'TIEDOSTO')
parser.add_option (
'-e', '--error_log', dest = 'error_log',
help = 'torrent-lokin lataaminen tormonia epäonnistui',
metavar = 'TIEDOSTO')
parser.add_option (
'-b', '--batch', dest = 'erä',
help = 'tiedosto, joka sisältää luettelon rss-syötteen URL-osoitteista',
metavar = 'TIEDOSTO')
parser.add_option (
'-u', '--url', dest = 'url',
action = 'liitä',
oletus = [],
help = 'RSS-syötteen URL-osoite',
metavar = 'URL')
parser.add_option (
'-m', '- mark_all_downloaded', dest = 'mark_all_downloaded',
action = 'store_true',
oletus = väärä,
help = "merkitse kaikki torrentit ladatuiksi")
parser.add_option (
'-M', '- match_by_filename', dest = 'match_by_filename',
action = 'store_true',
oletus = väärä,
help = "tunnista ladatut tiedostot tiedostonimen, ei URL-osoitteen perusteella. Oletusarvoinen haku vastaa URL-osoitetta.")
(self.opt, args) = jäsennin.parse_args ()
jos itse.opt.erä:
avoimelle linjalle (itseop. erä, 'r'):
line = line.strip ()
jos viiva ja ei viiva. aloitusvaihe ('#'):
self.opt.url.append (rivi)
jos ei itse.opt.output_dir:
self.opt.output_dir = os.path.expanduser ('~ / Desktop')
ellei se ole itse. opt. tiedostotyyppi:
self.opt.filetype = ['. torrent'] ellei itse.opt.error_log:
self.opt.error_log = self.opt.downloaded_torrents + '. virheet'
yrittää:
os.makedirs (self.opt.output_dir)
paitsi OSError:
jos ei os.path.exists (self.opt.output_dir):
tulosta ('tormon ei luonut hakemistoa% s'% self.opt.output_dir)
poistua (1)
def load_list_of_already_downloaded_torrents (itse):
yrittää:
itse.lataus = avoin (itse.opt.lataus_torrentit, 'r'). lue (). jako ()
paitsi IOError:
self.downloaded = [] kokeile:
self.errors = open (self.opt.error_log, 'r'). read (). split ()
paitsi IOError:
self.errors = [] def update_downloaded (itse, URL):
self.downloaded.append (url)
yrittää:
self.errors.remove (url)
paitsi ValueError:
kulkea
def download_torrent (itse, URL):
yrittää:
sukka = urllib2.urlopen (url)
paitsi (HTTPError, URLError):
# print ('tormonin lataaminen epäonnistui% s'% url)
jos URL-osoite ei ole itse. virheissä:
self.errors.append (url)
else:
tiedostonimi = itse.url2tiedostonimi (URL)
target_file = os.path.join (self.opt.output_dir, tiedostonimi)
tulosta ('Ladataan% s'% target_file)
content = sukka.luku ()
sukka.sulje ()
fh = avoin (kohde_tiedosto, 'w')
fh.write (sisältö)
fh.close ()
self.update_downloaded (URL)
def url2filename (itse, URL):
palauta os.path.basename (urlparse.urlparse (url) [2])
def has_been_downloaded (self, url):
jos itse.opt.match_by_filename:
tiedostonimi = itse.url2tiedostonimi (URL)
return (tiedostonimi tiedostossa [itse.url2tiedostonimi (linkki) linkille itsestään.lataus])
else:
return (URL itse. ladattu)
def parse_rss_feed (itse):
URL-osoitteelle self.opt.url:
tulosta ('RSS-syöte:% s'% url)
yrittää:
sukka = urllib2.urlopen (url)
paitsi (HTTPError, URLError):
tulosta ('tormon ei onnistunut lataamaan% s'% url)
else:
content = sukka.luku ()
sukka.sulje ()
keitto = BeautifulSoup (sisältö)
links = ([link.nextSibling linkille keittossa.findAll ('linkki')] +
[link ['href'] linkille keitto.findAll ('a')] +
[linkki ['url'] linkille keitto.findAll ('media: sisältö')])
linkille linkeissä:
jos (mikä tahansa ([linkki.lower (). endswith (loppu)
päättyessä self.opt.filetype])
ja ei itse. has_been_downloaded (link)):
jos itse.opt.mark_all_downloaded:
tulosta ('Merkitään% s ladattavaksi'% link)
self.update_downloaded (linkki)
else:
self.download_torrent (linkki)
def save_list_of_already_downloaded_torrents (itse):
fh = auki (itse.opt.latattu_torrents, 'w')
fh.write ('n'.join (itse ladattu))
fh.close ()
fh = avoin (its.opt.error_log, 'w')
fh.write ('n'.join (itsevirheet))
fh.close ()
def __init __ (itse):
self.parse_options ()
self.load_list_of_already_downloaded_torrents ()
yrittää:
self.parse_rss_feed ()
paitsi KeyboardInrtrupt:
kulkea
lopuksi:
self.save_list_of_already_downloaded_torrents ()
jos __nimi __ == '__ main__':
Pää ()
3.- Myönnä sille suoritusoikeudet.
chmod + x ~ / bin / tormon.py
4.- Tarkista, että kaikki toimii hyvin.
tormon.py -O ~ / torrents / -u "http: //rss.feed"
Missä sanotaan ~ / torrentit /, sinun on korvattava se polulla, johon haluat tallentaa ladatut torrentit. Muista, että .torrent-tiedostoja on paljon.
Jos siinä lukee "http: //rss.feed", sinun on korvattava se suosikkisarjasi RSS-syötteen URL-osoitteella. Kuinka saada se? No, jos haluat käyttää ezRSS, Menin pääsivulle ja kirjoitin sarjan nimen. Tulosten mukana tulee valtava luettelo. Jos haluat tarkentaa hakua (suodattaa päivämäärä, laatu tai video kopioinut henkilö), voit tehdä sen ohjaamalla sinut esimerkkeihin, jotka on selvästi julkaistu tällä sivulla. Kun olet saanut etsimäsi tulokset, napsauta hiiren oikealla painikkeella linkkiä Hakupohjainen RSS-syöte joka näkyy RSS-syötteiden oranssin painikkeen vieressä. Kopioi linkki ja liitä se korvaamalla http://rss.feed esimerkistä.
Jotkut ylimääräiset tiedot pidettävä mielessä:
- Jos -O-parametri jätetään pois, .torrent-tiedostot ladataan työpöydälle.
- Jos suoritat saman komennon heti sen jälkeen, sen ei pitäisi ladata uutta torrentia, ellei uutta torrentia ole lisätty RSS-syötteeseen.
- Tämä komento luo kansion, johon torrentit tallennetaan, jos sitä ei ole olemassa.
- Luettelo onnistuneesti ladattujen torrentien URL-osoitteista tallennetaan hakemistoon ~ / .downloaded_torrents.
- Voit seurata useampaa kuin yhtä RSS-syötettä käyttämällä parametria -u. Esimerkki: tormon.py -u "http: //rss.feed1" -u "http: //rss.feed1"
5.- Jos kaikki toimii hyvin, voit lisätä komentosarjan crontab-ajoitetuksi tehtäväksi.
crontab -e
Tämä komento avaa tekstieditorin.
Liitä seuraava koodi siten, että se on tiedoston alussa:
PATH = / sbin: / bin: / usr / sbin: / usr / bin: / home / USER / bin
MAILTO = KÄYTTÄJÄ
Muuttaa USER käyttäjänimelläsi.
Liitä seuraava koodi jonnekin alapuolelle PATH =…
* / 15 * * * * tormon.py -u "http: //rss.feed"
Tämä suorittaa komentosarjan 15 minuutin välein. Toki, voit muuttaa sen tarpeidesi mukaan. Kun on kyse televisiosarjoista, saattaa olla järkevää suorittaa se kerran viikossa. Älä unohda lukea edellistä viestiämme, jossa selitämme askel askeleelta miten lisätä tehtäviä crontab.
Ajo joka sunnuntai klo 10:
00 10 * * 0 tormon.py -u "http: //rss.feed"
Viimeistele varmistamalla, että crontab-tiedoston lopussa on tyhjä rivi. En tiedä miksi, mutta kaikkien on toimittava kunnolla.
Tallenna tiedosto ja poistu tekstieditorista.
Huomaa: Jos sinulla on asennettuna sähköpostinsiirtoagentti, kuten exim4, rivi MAILTO = USER käskee crontabia lähettämään sinulle tormon.py-ohjelman suorituksen tulokset sähköpostitse. posti.
No onneksi osaan englantia. Tein sen YaRSS: n kanssa. Katso jos se toimii.
Kyllä siistiä. mutta kukaan ei selitä kuinka FlexRSS: ää käytetään. Sivullasi kaikki on erittäin mukavaa, mutta en ole löytänyt tapaa lisätä sitä vedenpaisumukseen ... he sanovat myös, että Deluge toimitetaan oletusarvoisesti, eikä se ole totta.
terveiset
Qbittorrentilla ja muilla on sisäänrakennetut ajoitusjärjestelmät. Olisi hyvä selittää, miten kukin niistä toimii. Selitän yleensä MS WOS: n mikrotorrentin ja Linux: n Qbittorrentin. Spoilerissa oli opetusohjelma, mutta varmasti saat paljon käyntejä, jos teet videoita jokaisen suositun torrent-ohjelman kanssa, lisäämällä esimerkiksi EZ
Kiitos Miquel! Otan sen huomioon, kuten kaikki kommenttisi ja ehdotuksesi!
Lähetän sinulle suuren halauksen! Paul.
Tässä on arkisto, joka sisältää tämän ohjelman:
https://launchpad.net/~lopeztobal/+archive/maths
kautta: http://linuxmusica.com/
Lopeta saarnaaminen ytimen käytöstä ja levitä käyttöjärjestelmän käyttöä!
Hah hah ...