Gisteren dan eindelijk
FlexGet aan de praat gekregen en het werkt nu perfect. Het uitzoeken ging niet zonder slag of stoot door de gebrekkige (verouderde)
installatie OpenWRT-tutorial op FlexGet.
Uiteindelijk herbegonnen met een verse factory-install van Ultraman's chunky build r35864.
Even een opsomming van de gevolgde procedure om Flexget werkende te krijgen:
Alvorens je start met de installatie zorg ervoor dat je gebruik maakt van een extroot want er zullen een heel pak files uitgepakt worden en gecompileerd. Misschien ook best een swap file/partition activeren voor de zekerheid want het is een intens proces.
Je kan nakijken ofdat je swapfile werkt met:
code:
1
2
3
4
5
| root@OpenWrt:~# free
total used free shared buffers
Mem: 29256 18056 11200 0 228
-/+ buffers: 17828 11428
Swap: 524284 3188 521096 |
Natuurlijk heb je ook een downloadmanager nodig, begin eerst met
transmission te configureren.
Benodigde software Flexget voorbereiding:- opkg install python python-sqlite3 pyyaml
- opkg install python-sqlite
- opkg install python-expat
- opkg install python-openssl
- opkg install distribute
Dan een
rebootje.
Vervolgens pip installeren: (meer info over
pip)
code:
(kan zijn dat hiertussen een reboot nodig is, ben niet meer zeker.)
Installatie FlexGet waarbij de packages worden uitgepakt in de tmp folder van de extroot (in mijn geval /overlay/tmp), je kan dit best even nakijken via ftp in die folder:
code:
1
| pip install flexget -b /overlay/tmp |
Neem een tas koffie want dit gaat wel even duren.
Je zal zien dat een hele boel files worden uitgepakt, gecompileerd en uiteindelijk
bij python (/overlay/usr/lib/python2.7/site-packages) toegevoegd.
Indien de installatie ergens onverwacht stopt: IOError's: CRC check failed, End of file...; dan heeft het meestal te maken met dat de extroot niet juist aangesproken wordt.
Uiteindelijk krijg je bij een succesvolle installatie het bericht:
Succesfully installed [lijst van de packages]
De installatie verificatie:code:
1
2
3
| root@OpenWrt:~# flexget -V
1.0.3391
You are on the latest release. |
(om plaats uit te sparen kan je de uitgepakte bestanden in de /overlay/tmp folder verwijderen)
Aanmaken map .flexget en config.yml:
Meer info over de opmaak, belangrijk!!!
in de rootmap een nieuwe map aanmaken: .flexget
(schrijftoegang geven 777)
met daarin een config.yml file:
code:
1
| root@OpenWrt:~/.flexget# cat>config.yml |
Ik gebruik hierbij een reeds gefilterde feed x264 hdtv formaat, je kan desnoods zelf 'quality' restricties opzetten (merk op het gebruik van telkens 2 spaces en geen tabs):
code:
1
2
3
4
| series:
- My Favorite Show
- Another Good Show:
quality: 720p |
1ste voorbeeld config.yml file: (verwijder de //notities)
(
nadeel: traag door het constant zoeken naar reeds gedownloadde shows, uitwerking duurt 15-20min)
code:
1
2
3
4
5
6
7
8
9
10
11
| tasks:
RSS feed task:
rss: http://showrss.karmorra.info/rss.php.. //je kan zelf een rss feed aanmaken en in welk formaat x264 of 720
series: //welke shows je uit de feed wil halen
- Breaking Hat
- Family Buy
- Game of Phones
exists_series: //nakijken ofdat de show niet reeds binnengehaald is
- /mnt/shares/TV_Shows/
- /mnt/shares/transmission/done/
download: /mnt/shares/transmission/watchdir/ |
2de voorbeeld config.yml file:
Deze config werkt met het aanmaken van een database van reeds gedownloadde shows en gaat daar op voort. Werkt veel sneller dan de 1ste config (5-6 min) en deze werkwijze is dan ook aangeraden. Het mooie van deze config, is dat na het dl de shows automatisch worden verplaatst naar de juiste mappen. (in dit formaat 'Serie/Serie Season X')
aanmaken van de database gebeurt manueel:code:
1
| flexget --task seed_series_db --disable-advancement --learn |
config.yml
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| presets:
# NOTE!! This preset cannot have any other configuration or else it will affect our sort-series.
# Also, you must use series groups, so that we can turn off filtering with the parse_only option in our sort feed.
tv-series:
series:
agroup:
- Breaking Hat
- Family Buy
- Game of Phones
tasks:
download-rss:
rss: http://showrss.karmorra.info/rss.php?user_id=...
preset:
- tv-series
download: /mnt/shares/transmission/watchdir/
sort-series:
find:
path: /mnt/shares/transmission/done/
regexp: '.*\.(avi|mkv|mp4)$'
recursive: yes
seen: local
preset: tv-series
# NOTE: You must set the parse_only option for all of the series groups you have configured in your preset.
# This option prevents the series plugin from accepting or rejecting anything in this feed.
series:
settings:
agroup:
parse_only: yes
# Ignore samples
regexp:
reject:
- sample
# With the require_field and accept_all plugins, we accept anything that the series plugin has successfully parsed.
require_field: series_name
accept_all: yes
move:
to: /mnt/shares/TV_Shows/{{series_name}}/{{series_name}} Season {{series_season|pad(2)}}
seed_series_db:
# The find plugin will find all of your existing episodes
find:
regexp: .*(avi|mkv|mp4)$
path: /mnt/shares/TV_Shows/
recursive: yes
preset: tv-series
# We use the manual plugin so that this task only runs when explicitly called
manual: yes |
Nakijken van config.yml op fouten:code:
1
2
| root@OpenWrt:~# flexget --check
2013-05-08 18:52 INFO task RSS feed task Task 'RSS feed task' passed |
Indien er fouten zijn, krijg je informatie waar ze te zoeken.
quote:
Always use (multiples of) 2 spaces and never use tab-key!
Simulatie met aanmaak van db files:code:
Op het einde wordt weergegeven welke RSS feeds aanvaard worden.
Als dit allemaal werkt, kan je een
crontab aanmaken:
even een andere editor installeren:
code:
1
| root@OpenWrt:~# opkg install nano |
en tijdelijk instellen:
code:
1
| root@OpenWrt:~# export EDITOR=nano |
(teruggaan naar vi editor: export EDITOR=vi)
In de documentatie wordt verwezen naar het 'which flexget' commando om het juiste path in de crontab te bepalen.
code:
1
2
| root@OpenWrt:~# which flexget
/usr/bin/flexget |
Dit werkt bij mij niet, het gebruikte path door de extroot is /overlay/usr/bin/flexget
Ik heb het nog eens nagekeken en het werkt blijkbaar wel met /usr/bin/flexget
code:
1
| root@OpenWrt:~# crontab -e |
code:
1
| 0 23,5,8 * * * /usr/bin/flexget --cron |
Er wordt een 'username' crontab aangemaakt dat je terugvindt in /etc/crontabs
Als alles goed loopt start deze cron om 23u,5u en om 8u, de feedsearch duurt bij mij met de 2de config.yml iets van een 5 a 6min, afhankelijk van de grootte vd RSS feed.
Laatste noot:
Mijn eerste installaties waren een beetje trial en error, veel problemen tegengekomen, vooral ivm met de extroot die ik eerst gebruikte. Opnieuw begonnen via deze tutorial
http://xathrya.web.id/blog/2012/12/16/openwrt-extroot/
Tot slot hoop ik dat ik geen essentiële onwaarheden beschreven heb, indien dit zo is, gelieve mij ASAP erop te wijzen
PS: om de load na te kijken, ben ik een interessant stukje software tegengekomen
code:
dask wijzigde deze reactie 12-05-2013 15:32 (17%)