Now fully supports podcasts, fixed #81.

This commit is contained in:
Martin Rotter 2015-04-16 07:18:14 +02:00
parent 8c1414c3df
commit 6ee189d012
11 changed files with 45 additions and 26 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<skin version="0.4"> <skin version="0.5">
<name>greeen</name> <name>greeen</name>
<author> <author>
<name>Martin Rotter</name> <name>Martin Rotter</name>
<email>rotter.martinos@gmail.com</email> <email>rotter.martinos@gmail.com</email>
</author> </author>
<style></style> <style></style>
<markup_wrapper>PGh0bWw+DQogIDxoZWFkPg0KICAgIDxzdHlsZT4gICANCiAgICAgIGJvZHkgeyAgICAgDQogICAgICAgIG1hcmdpbjogMHB4Ow0KICAgICAgICBwYWRkaW5nOiAwcHg7DQogICAgICB9DQogICAgDQogICAgICBwcmUgew0KICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7DQogICAgICB9DQoNCiAgICAgIC5oZWFkZXJ0ZXh0IHsNCiAgICAgICAgZm9udC1zaXplOiAyMHB4Ow0KICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Ow0KICAgICAgfQ0KDQogICAgICAuaGVhZGVyIHsNCiAgICAgICAgZm9udC1zaXplOiAxN3B4Ow0KICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAlLHJnYmEoODQsIDEzMiwgNTMsIDEpKSwgY29sb3Itc3RvcCgxMDAlLHJnYmEoODQsIDE0MCwgNTMsIDEpKSk7DQogICAgICAgIHBhZGRpbmc6IDZweDsNCiAgICAgICAgbWFyZ2luOiAwcHggYXV0bzsNCiAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgICBib3JkZXI6IDAuNXB4IHNvbGlkIGJsYWNrOw0KICAgICAgfQ0KDQogICAgICAuaGVhZGVyIGEgew0KICAgICAgICBjb2xvcjogd2hpdGU7DQogICAgICB9DQoNCiAgICAgIC5jb250ZW50IHsNCiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGdyYXk7DQogICAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgICAgbWFyZ2luOiAwcHggYXV0bzsNCiAgICAgICAgcGFkZGluZzogNnB4Ow0KICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgLmNvbnRhaW5lciB7DQogICAgICAgIGZvbnQtZmFtaWx5OiAiVHJlYnVjaGV0IE1TIiwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0KICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBncmF5Ow0KICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDJweDsNCiAgICAgICAgbWFyZ2luOiAxMHB4Ow0KICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDJweCAycHggOHB4IDBweCByZ2JhKDUwLCA1MCwgNTAsIDAuNjIpOw0KICAgICAgfQ0KICAgIDwvc3R5bGU+DQogICAgPHRpdGxlPg0KICAgICAgJTENCiAgICA8L3RpdGxlPg0KICA8L2hlYWQ+DQogIDxib2R5Pg0KICAgICUyDQogIDwvYm9keT4NCjwvaHRtbD4=</markup_wrapper> <markup_wrapper>PGh0bWw+DQogIDxoZWFkPg0KICAgIDxzdHlsZT4gICANCiAgICAgIGJvZHkgeyAgICAgDQogICAgICAgIG1hcmdpbjogMHB4Ow0KICAgICAgICBwYWRkaW5nOiAwcHg7DQogICAgICB9DQogICAgDQogICAgICBwcmUgew0KICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7DQogICAgICB9DQoNCiAgICAgIC5oZWFkZXJ0ZXh0IHsNCiAgICAgICAgZm9udC1zaXplOiAyMHB4Ow0KICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Ow0KICAgICAgfQ0KDQogICAgICAuaGVhZGVyIHsNCiAgICAgICAgZm9udC1zaXplOiAxN3B4Ow0KICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAlLHJnYmEoODQsIDEzMiwgNTMsIDEpKSwgY29sb3Itc3RvcCgxMDAlLHJnYmEoODQsIDE0MCwgNTMsIDEpKSk7DQogICAgICAgIHBhZGRpbmc6IDZweDsNCiAgICAgICAgbWFyZ2luOiAwcHggYXV0bzsNCiAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgICBib3JkZXI6IDAuNXB4IHNvbGlkIGJsYWNrOw0KICAgICAgfQ0KDQogICAgICAuaGVhZGVyIGEgew0KICAgICAgICBjb2xvcjogd2hpdGU7DQogICAgICB9DQogICAgICANCiAgICAgIC5oZWFkZXIgLmVuY2xvc3VyZSB7DQogICAgICAgIGNvbG9yOiBibGFjazsNCiAgICAgIH0NCg0KICAgICAgLmNvbnRlbnQgew0KICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgZ3JheTsNCiAgICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgICBtYXJnaW46IDBweCBhdXRvOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4Ow0KICAgICAgfQ0KICAgICAgDQogICAgICAuY29udGFpbmVyIHsNCiAgICAgICAgZm9udC1mYW1pbHk6ICJUcmVidWNoZXQgTVMiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyYXk7DQogICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgICAgICBtYXJnaW46IDEwcHg7DQogICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDJweCA4cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC42Mik7DQogICAgICB9DQogICAgPC9zdHlsZT4NCiAgICA8dGl0bGU+DQogICAgICAlMQ0KICAgIDwvdGl0bGU+DQogIDwvaGVhZD4NCiAgPGJvZHk+DQogICAgJTINCiAgPC9ib2R5Pg0KPC9odG1sPg==</markup_wrapper>
<markup>ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJ0ZXh0Ij4NCiAgICAgICAgICAlMQ0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgJTIgKCU1KQ0KICAgICAgICA8YnI+DQogICAgICAgIDxhIGhyZWY9IiUzIj4NCiAgICAgICAgICAlMw0KICAgICAgICA8L2E+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPg0KICAgICAgICAlNCANCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg==</markup> <markup>PGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+DQogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlcnRleHQiPg0KICAgICAgICAgICUxDQogICAgICAgIDwvZGl2Pg0KICAgICAgICAlMiAoJTUpDQogICAgICAgIDxicj4NCiAgICAgICAgPGEgaHJlZj0iJTMiPiUzPC9hPg0KICAgICAgICAlNg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4NCiAgICAgICAgJTQgDQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4=</markup>
<markup_enclosure>PGEgY2xhc3M9ImVuY2xvc3VyZSIgaHJlZj0iJTMiPiUzPC9hPg==</markup_enclosure>
<data>LyoNCiAqIEluc3BpcmVkIGJ5IFF1aXRlUlNTICJncmVlbiIgc2tpbi4NCiAqIENvcHlyaWdodCAoQykgPD0gMjAxMyBieSBRdWl0ZVJTUyB0ZWFtDQogKiBDb3B5cmlnaHQgKEMpIDIwMTQgYnkgTWFydGluIFJvdHRlciA8cm90dGVyLm1hcnRpbm9zQGdtYWlsLmNvbT4NCiAqLw0KICANClFUcmVlVmlldzo6YnJhbmNoOmhhcy1zaWJsaW5nczohYWRqb2lucy1pdGVtICB7DQogIGJvcmRlci1pbWFnZTogdXJsKHFzcy9kdW1teS5wbmcpIDA7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOmhhcy1zaWJsaW5nczphZGpvaW5zLWl0ZW0gew0KICBib3JkZXItaW1hZ2U6IHVybChxc3MvZHVtbXkucG5nKSAwOw0KfQ0KDQpRVHJlZVZpZXc6OmJyYW5jaDohaGFzLWNoaWxkcmVuOiFoYXMtc2libGluZ3M6YWRqb2lucy1pdGVtICB7DQogIGJvcmRlci1pbWFnZTogdXJsKHFzcy9kdW1teS5wbmcpIDA7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOmhhcy1jaGlsZHJlbjohaGFzLXNpYmxpbmdzOmNsb3NlZCwNClFUcmVlVmlldzo6YnJhbmNoOmNsb3NlZDpoYXMtY2hpbGRyZW46aGFzLXNpYmxpbmdzICB7DQogIGJvcmRlci1pbWFnZTogbm9uZTsNCiAgaW1hZ2U6IHVybChxc3MvYnJhbmNoLWNsb3NlZC5wbmcpOw0KfQ0KDQpRVHJlZVZpZXc6OmJyYW5jaDpvcGVuOmhhcy1jaGlsZHJlbjohaGFzLXNpYmxpbmdzLA0KUVRyZWVWaWV3OjpicmFuY2g6b3BlbjpoYXMtY2hpbGRyZW46aGFzLXNpYmxpbmdzICB7DQogIGJvcmRlci1pbWFnZTogbm9uZTsNCiAgaW1hZ2U6IHVybChxc3MvYnJhbmNoLW9wZW4ucG5nKTsNCn0NCg0KUVRyZWVWaWV3OjppdGVtIHsNCiAgcGFkZGluZzogMXB4IDFweCAxcHggMXB4Ow0KfSANCg0KUVRyZWVWaWV3W2hpZGVUcmVlPSJ0cnVlIl06OmJyYW5jaDohaGFzLWNobGlkcmVuOmhhc1NpYmxpbmdzIHsNCiAgYm9yZGVyLWltYWdlOiBub25lOw0KICBpbWFnZTogbm9uZTsNCn0NCg0KUVN0YXR1c0Jhcjo6aXRlbSB7DQogIGJvcmRlcjogbm9uZTsNCn0NCg0KV2ViQnJvd3NlciBRUHJvZ3Jlc3NCYXIgew0KICBib3JkZXI6IDFweCBzb2xpZCAjQTVBNUE1Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIGJvcmRlci1sZWZ0OiBub25lOw0KICBib3JkZXItcmlnaHQ6IG5vbmU7DQogIGJhY2tncm91bmQ6IHFsaW5lYXJncmFkaWVudCh4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjAgI2Y0ZjRmNCwgc3RvcDowLjQgI0VDRUNFQyBzdG9wOjAuNSAjREVERURFLCBzdG9wOjEgI2Y0ZjRmNCk7DQp9DQoNCldlYkJyb3dzZXIgUVByb2dyZXNzQmFyOjpjaHVuayB7DQogIGJhY2tncm91bmQ6IHFsaW5lYXJncmFkaWVudCh4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjAgIzkwRTg5MCwgc3RvcDowLjQgIzdDRDA3Qywgc3RvcDowLjUgIzYwQzA2MCwgc3RvcDoxICM2MEQwNjApOw0KICB3aWR0aDogMXB4Ow0KfQ0KDQpRTWVudUJhciB7DQogIGJhY2tncm91bmQ6IHFsaW5lYXJncmFkaWVudCh4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjAgI2UwZWVlMCwgc3RvcDowLjQgI2Q4ZWVkOCwgc3RvcDowLjUgI2NjZWVjYywgc3RvcDoxICNlMGVlZTApOw0KICBjb2xvcjogIzAwMDAwMDsNCiAgcGFkZGluZzogMXB4Ow0KfQ0KDQpRTWVudUJhcjo6aXRlbSB7DQogIHBhZGRpbmc6IDNweCA2cHg7DQogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KfQ0KDQpRTWVudUJhcjo6aXRlbTpzZWxlY3RlZCB7DQogIGJvcmRlcjogMXB4IHNvbGlkICM4NGNjODQ7DQogIGJhY2tncm91bmQ6IHFsaW5lYXJncmFkaWVudCh4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjAgI2U5ZmZlOSwgc3RvcDowLjQgI2UxZWVlMSwgc3RvcDowLjUgI2Q5ZWVkOSwgc3RvcDoxICNlOWZmZTkpOw0KfQ0KDQpRTWVudUJhcjo6aXRlbTpwcmVzc2VkIHsNCiAgYm9yZGVyOiAxcHggc29saWQgIzM0YWEzNDsNCiAgYm9yZGVyLWJvdHRvbTogbm9uZTsNCiAgYmFja2dyb3VuZDogcWxpbmVhcmdyYWRpZW50KHgxOjAsIHkxOjAsIHgyOjAsIHkyOjEsIHN0b3A6MCAjN2FjYzdhLCBzdG9wOjAuNCAjNzBjODcwLCBzdG9wOjAuNSAjNjBjNDYwLCBzdG9wOjEgIzdhY2M3YSk7DQogIGNvbG9yOiB3aGl0ZTsNCn0=</data> <data>LyoNCiAqIEluc3BpcmVkIGJ5IFF1aXRlUlNTICJncmVlbiIgc2tpbi4NCiAqIENvcHlyaWdodCAoQykgPD0gMjAxMyBieSBRdWl0ZVJTUyB0ZWFtDQogKiBDb3B5cmlnaHQgKEMpIDIwMTQgYnkgTWFydGluIFJvdHRlciA8cm90dGVyLm1hcnRpbm9zQGdtYWlsLmNvbT4NCiAqLw0KICANClFUcmVlVmlldzo6YnJhbmNoOmhhcy1zaWJsaW5nczohYWRqb2lucy1pdGVtICB7DQogIGJvcmRlci1pbWFnZTogdXJsKHFzcy9kdW1teS5wbmcpIDA7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOmhhcy1zaWJsaW5nczphZGpvaW5zLWl0ZW0gew0KICBib3JkZXItaW1hZ2U6IHVybChxc3MvZHVtbXkucG5nKSAwOw0KfQ0KDQpRVHJlZVZpZXc6OmJyYW5jaDohaGFzLWNoaWxkcmVuOiFoYXMtc2libGluZ3M6YWRqb2lucy1pdGVtICB7DQogIGJvcmRlci1pbWFnZTogdXJsKHFzcy9kdW1teS5wbmcpIDA7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOmhhcy1jaGlsZHJlbjohaGFzLXNpYmxpbmdzOmNsb3NlZCwNClFUcmVlVmlldzo6YnJhbmNoOmNsb3NlZDpoYXMtY2hpbGRyZW46aGFzLXNpYmxpbmdzICB7DQogIGJvcmRlci1pbWFnZTogbm9uZTsNCiAgaW1hZ2U6IHVybChxc3MvYnJhbmNoLWNsb3NlZC5wbmcpOw0KfQ0KDQpRVHJlZVZpZXc6OmJyYW5jaDpvcGVuOmhhcy1jaGlsZHJlbjohaGFzLXNpYmxpbmdzLA0KUVRyZWVWaWV3OjpicmFuY2g6b3BlbjpoYXMtY2hpbGRyZW46aGFzLXNpYmxpbmdzICB7DQogIGJvcmRlci1pbWFnZTogbm9uZTsNCiAgaW1hZ2U6IHVybChxc3MvYnJhbmNoLW9wZW4ucG5nKTsNCn0NCg0KUVRyZWVWaWV3OjppdGVtIHsNCiAgcGFkZGluZzogMXB4IDFweCAxcHggMXB4Ow0KfSANCg0KUVRyZWVWaWV3W2hpZGVUcmVlPSJ0cnVlIl06OmJyYW5jaDohaGFzLWNobGlkcmVuOmhhc1NpYmxpbmdzIHsNCiAgYm9yZGVyLWltYWdlOiBub25lOw0KICBpbWFnZTogbm9uZTsNCn0NCg0KUVN0YXR1c0Jhcjo6aXRlbSB7DQogIGJvcmRlcjogbm9uZTsNCn0NCg0KV2ViQnJvd3NlciBRUHJvZ3Jlc3NCYXIgew0KICBib3JkZXI6IDFweCBzb2xpZCAjQTVBNUE1Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogIGJvcmRlci1sZWZ0OiBub25lOw0KICBib3JkZXItcmlnaHQ6IG5vbmU7DQogIGJhY2tncm91bmQ6IHFsaW5lYXJncmFkaWVudCh4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjAgI2Y0ZjRmNCwgc3RvcDowLjQgI0VDRUNFQyBzdG9wOjAuNSAjREVERURFLCBzdG9wOjEgI2Y0ZjRmNCk7DQp9DQoNCldlYkJyb3dzZXIgUVByb2dyZXNzQmFyOjpjaHVuayB7DQogIGJhY2tncm91bmQ6IHFsaW5lYXJncmFkaWVudCh4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjAgIzkwRTg5MCwgc3RvcDowLjQgIzdDRDA3Qywgc3RvcDowLjUgIzYwQzA2MCwgc3RvcDoxICM2MEQwNjApOw0KICB3aWR0aDogMXB4Ow0KfQ0KDQpRTWVudUJhciB7DQogIGJhY2tncm91bmQ6IHFsaW5lYXJncmFkaWVudCh4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjAgI2UwZWVlMCwgc3RvcDowLjQgI2Q4ZWVkOCwgc3RvcDowLjUgI2NjZWVjYywgc3RvcDoxICNlMGVlZTApOw0KICBjb2xvcjogIzAwMDAwMDsNCiAgcGFkZGluZzogMXB4Ow0KfQ0KDQpRTWVudUJhcjo6aXRlbSB7DQogIHBhZGRpbmc6IDNweCA2cHg7DQogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KfQ0KDQpRTWVudUJhcjo6aXRlbTpzZWxlY3RlZCB7DQogIGJvcmRlcjogMXB4IHNvbGlkICM4NGNjODQ7DQogIGJhY2tncm91bmQ6IHFsaW5lYXJncmFkaWVudCh4MTowLCB5MTowLCB4MjowLCB5MjoxLCBzdG9wOjAgI2U5ZmZlOSwgc3RvcDowLjQgI2UxZWVlMSwgc3RvcDowLjUgI2Q5ZWVkOSwgc3RvcDoxICNlOWZmZTkpOw0KfQ0KDQpRTWVudUJhcjo6aXRlbTpwcmVzc2VkIHsNCiAgYm9yZGVyOiAxcHggc29saWQgIzM0YWEzNDsNCiAgYm9yZGVyLWJvdHRvbTogbm9uZTsNCiAgYmFja2dyb3VuZDogcWxpbmVhcmdyYWRpZW50KHgxOjAsIHkxOjAsIHgyOjAsIHkyOjEsIHN0b3A6MCAjN2FjYzdhLCBzdG9wOjAuNCAjNzBjODcwLCBzdG9wOjAuNSAjNjBjNDYwLCBzdG9wOjEgIzdhY2M3YSk7DQogIGNvbG9yOiB3aGl0ZTsNCn0=</data>
</skin> </skin>

File diff suppressed because one or more lines are too long

View file

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<skin version="0.13"> <skin version="0.14">
<name>vergilius</name> <name>vergilius</name>
<author> <author>
<name>Martin Rotter</name> <name>Martin Rotter</name>
<email>rotter.martinos@gmail.com</email> <email>rotter.martinos@gmail.com</email>
</author> </author>
<style/> <style/>
<markup_wrapper>PGh0bWw+DQogIDxoZWFkPg0KICAgIDxzdHlsZT4NCiAgICAgIGJvZHkgew0KICAgICAgICBtYXJnaW46IDBweDsNCiAgICAgICAgcGFkZGluZzogMHB4Ow0KICAgICAgfQ0KICAgIA0KICAgICAgcHJlIHsNCiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICAgICAgfQ0KDQogICAgICAuaGVhZGVydGV4dCB7DQogICAgICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlciB7DQogICAgICAgIGZvbnQtc2l6ZTogMTdweDsNCiAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSxyZ2JhKDk5LDEzNSwyMjksMSkpLCBjb2xvci1zdG9wKDEwMCUscmdiYSg2NCwxMDksMjM2LDEpKSk7DQogICAgICAgIHBhZGRpbmc6IDZweDsNCiAgICAgICAgbWFyZ2luOiAwcHggYXV0bzsNCiAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgICBib3JkZXI6IDAuNXB4IHNvbGlkIGJsYWNrOw0KICAgICAgfQ0KDQogICAgICAuaGVhZGVyIGEgew0KICAgICAgICBjb2xvcjogd2hpdGU7DQogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsNCiAgICAgIH0NCg0KICAgICAgLmNvbnRlbnQgew0KICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgZ3JheTsNCiAgICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgICBtYXJnaW46IDBweCBhdXRvOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4Ow0KICAgICAgfQ0KICAgICAgDQogICAgICAuY29udGFpbmVyIHsNCiAgICAgICAgZm9udC1mYW1pbHk6ICJUcmVidWNoZXQgTVMiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyYXk7DQogICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgICAgICBtYXJnaW46IDEwcHg7DQogICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDJweCAxNnB4IDBweCByZ2JhKDUwLCA1MCwgNTAsIDAuNjIpOw0KICAgICAgfQ0KICAgIDwvc3R5bGU+DQogICAgPHRpdGxlPg0KICAgICAgJTENCiAgICA8L3RpdGxlPg0KICA8L2hlYWQ+DQogIDxib2R5Pg0KICAgICUyDQogIDwvYm9keT4NCjwvaHRtbD4=</markup_wrapper> <markup_wrapper>PGh0bWw+DQogIDxoZWFkPg0KICAgIDxzdHlsZT4NCiAgICAgIGJvZHkgew0KICAgICAgICBtYXJnaW46IDBweDsNCiAgICAgICAgcGFkZGluZzogMHB4Ow0KICAgICAgfQ0KICAgIA0KICAgICAgcHJlIHsNCiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICAgICAgfQ0KDQogICAgICAuaGVhZGVydGV4dCB7DQogICAgICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgIH0NCg0KICAgICAgLmhlYWRlciB7DQogICAgICAgIGZvbnQtc2l6ZTogMTdweDsNCiAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSxyZ2JhKDk5LDEzNSwyMjksMSkpLCBjb2xvci1zdG9wKDEwMCUscmdiYSg2NCwxMDksMjM2LDEpKSk7DQogICAgICAgIHBhZGRpbmc6IDZweDsNCiAgICAgICAgbWFyZ2luOiAwcHggYXV0bzsNCiAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgICBib3JkZXI6IDAuNXB4IHNvbGlkIGJsYWNrOw0KICAgICAgfQ0KDQogICAgICAuaGVhZGVyIGEgew0KICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgICAgIGNvbG9yOiB3aGl0ZTsNCiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOw0KICAgICAgfQ0KICAgICAgDQogICAgICAuaGVhZGVyIC5lbmNsb3N1cmUgew0KICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7DQogICAgICAgIGNvbG9yOiBibGFjazsNCiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOw0KICAgICAgfQ0KICAgICAgDQogICAgICAuZW5jbG9zdXJlOmhvdmVyLCAuaGVhZGVyIGE6aG92ZXIgew0KICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCiAgICAgIH0NCg0KICAgICAgLmNvbnRlbnQgew0KICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgZ3JheTsNCiAgICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgICBtYXJnaW46IDBweCBhdXRvOw0KICAgICAgICBwYWRkaW5nOiA2cHg7DQogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4Ow0KICAgICAgfQ0KICAgICAgDQogICAgICAuY29udGFpbmVyIHsNCiAgICAgICAgZm9udC1mYW1pbHk6ICJUcmVidWNoZXQgTVMiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyYXk7DQogICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgICAgICBtYXJnaW46IDEwcHg7DQogICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDJweCAxNnB4IDBweCByZ2JhKDUwLCA1MCwgNTAsIDAuNjIpOw0KICAgICAgfQ0KICAgIDwvc3R5bGU+DQogICAgPHRpdGxlPg0KICAgICAgJTENCiAgICA8L3RpdGxlPg0KICA8L2hlYWQ+DQogIDxib2R5Pg0KICAgICUyDQogIDwvYm9keT4NCjwvaHRtbD4=</markup_wrapper>
<markup>ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJ0ZXh0Ij4NCiAgICAgICAgICAlMQ0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgJTIgKCU1KQ0KICAgICAgICA8YnI+DQogICAgICAgIDxhIGhyZWY9IiUzIj4NCiAgICAgICAgICAlMw0KICAgICAgICA8L2E+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPg0KICAgICAgICAlNCANCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg==</markup> <markup>PGRpdiBjbGFzcz0iY29udGFpbmVyIj4NCiAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+DQogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlcnRleHQiPg0KICAgICAgICAgICUxDQogICAgICAgIDwvZGl2Pg0KICAgICAgICAlMiAoJTUpDQogICAgICAgIDxicj4NCiAgICAgICAgPGEgaHJlZj0iJTMiPiUzPC9hPg0KICAgICAgICAlNg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4NCiAgICAgICAgJTQgDQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4=</markup>
<markup_enclosure>PGEgY2xhc3M9ImVuY2xvc3VyZSIgaHJlZj0iJTMiPiUzPC9hPg==</markup_enclosure>
<data>UVRyZWVWaWV3OjpicmFuY2g6aGFzLXNpYmxpbmdzOiFhZGpvaW5zLWl0ZW0gIHsNCiAgYm9yZGVyLWltYWdlOiB1cmwocXNzL2R1bW15LnBuZykgMDsNCn0NCg0KUVRyZWVWaWV3OjpicmFuY2g6aGFzLXNpYmxpbmdzOmFkam9pbnMtaXRlbSB7DQogIGJvcmRlci1pbWFnZTogdXJsKHFzcy9kdW1teS5wbmcpIDA7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOiFoYXMtY2hpbGRyZW46IWhhcy1zaWJsaW5nczphZGpvaW5zLWl0ZW0gIHsNCiAgYm9yZGVyLWltYWdlOiB1cmwocXNzL2R1bW15LnBuZykgMDsNCn0NCg0KUVRyZWVWaWV3OjpicmFuY2g6aGFzLWNoaWxkcmVuOiFoYXMtc2libGluZ3M6Y2xvc2VkLA0KUVRyZWVWaWV3OjpicmFuY2g6Y2xvc2VkOmhhcy1jaGlsZHJlbjpoYXMtc2libGluZ3MgIHsNCiAgYm9yZGVyLWltYWdlOiBub25lOw0KICBpbWFnZTogdXJsKHFzcy9icmFuY2gtY2xvc2VkLnBuZyk7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOm9wZW46aGFzLWNoaWxkcmVuOiFoYXMtc2libGluZ3MsDQpRVHJlZVZpZXc6OmJyYW5jaDpvcGVuOmhhcy1jaGlsZHJlbjpoYXMtc2libGluZ3MgIHsNCiAgYm9yZGVyLWltYWdlOiBub25lOw0KICBpbWFnZTogdXJsKHFzcy9icmFuY2gtb3Blbi5wbmcpOw0KfQ0KDQpRVHJlZVZpZXc6Oml0ZW0gew0KICBwYWRkaW5nOiAxcHggMXB4IDFweCAxcHg7DQp9IA0KDQpRVHJlZVZpZXdbaGlkZVRyZWU9InRydWUiXTo6YnJhbmNoOiFoYXMtY2hsaWRyZW46aGFzU2libGluZ3Mgew0KICBib3JkZXItaW1hZ2U6IG5vbmU7DQogIGltYWdlOiBub25lOw0KfQ0KDQpRU3RhdHVzQmFyOjppdGVtIHsNCiAgYm9yZGVyOiBub25lOw0KfQ==</data> <data>UVRyZWVWaWV3OjpicmFuY2g6aGFzLXNpYmxpbmdzOiFhZGpvaW5zLWl0ZW0gIHsNCiAgYm9yZGVyLWltYWdlOiB1cmwocXNzL2R1bW15LnBuZykgMDsNCn0NCg0KUVRyZWVWaWV3OjpicmFuY2g6aGFzLXNpYmxpbmdzOmFkam9pbnMtaXRlbSB7DQogIGJvcmRlci1pbWFnZTogdXJsKHFzcy9kdW1teS5wbmcpIDA7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOiFoYXMtY2hpbGRyZW46IWhhcy1zaWJsaW5nczphZGpvaW5zLWl0ZW0gIHsNCiAgYm9yZGVyLWltYWdlOiB1cmwocXNzL2R1bW15LnBuZykgMDsNCn0NCg0KUVRyZWVWaWV3OjpicmFuY2g6aGFzLWNoaWxkcmVuOiFoYXMtc2libGluZ3M6Y2xvc2VkLA0KUVRyZWVWaWV3OjpicmFuY2g6Y2xvc2VkOmhhcy1jaGlsZHJlbjpoYXMtc2libGluZ3MgIHsNCiAgYm9yZGVyLWltYWdlOiBub25lOw0KICBpbWFnZTogdXJsKHFzcy9icmFuY2gtY2xvc2VkLnBuZyk7DQp9DQoNClFUcmVlVmlldzo6YnJhbmNoOm9wZW46aGFzLWNoaWxkcmVuOiFoYXMtc2libGluZ3MsDQpRVHJlZVZpZXc6OmJyYW5jaDpvcGVuOmhhcy1jaGlsZHJlbjpoYXMtc2libGluZ3MgIHsNCiAgYm9yZGVyLWltYWdlOiBub25lOw0KICBpbWFnZTogdXJsKHFzcy9icmFuY2gtb3Blbi5wbmcpOw0KfQ0KDQpRVHJlZVZpZXc6Oml0ZW0gew0KICBwYWRkaW5nOiAxcHggMXB4IDFweCAxcHg7DQp9IA0KDQpRVHJlZVZpZXdbaGlkZVRyZWU9InRydWUiXTo6YnJhbmNoOiFoYXMtY2hsaWRyZW46aGFzU2libGluZ3Mgew0KICBib3JkZXItaW1hZ2U6IG5vbmU7DQogIGltYWdlOiBub25lOw0KfQ0KDQpRU3RhdHVzQmFyOjppdGVtIHsNCiAgYm9yZGVyOiBub25lOw0KfQ==</data>
</skin> </skin>

View file

@ -9,6 +9,7 @@ Fixed:
Added: Added:
<ul> <ul>
<li>Better format for logged messages. Logging to file is possible via "rssguard 2> log.txt" command.</li> <li>Better format for logged messages. Logging to file is possible via "rssguard 2> log.txt" command.</li>
<li>Full support for podcasts (issue #81). Supports RSS 2.0 podcasts and ATOM 1.0 podcasts. In ATOM, RSS Guard is able to fetch multiple podcasts per message. Podcasts are displayed as additional URL addresses in message preview panel.</li>
</ul> </ul>
Changed: Changed:

View file

@ -234,6 +234,11 @@ QList<Message> ParsingFactory::parseAsRSS20(const QString &data) {
// Deal with link and author. // Deal with link and author.
new_message.m_url = message_item.namedItem("link").toElement().text(); new_message.m_url = message_item.namedItem("link").toElement().text();
if (new_message.m_url.isEmpty() && !new_message.m_enclosures.isEmpty()) {
new_message.m_url = new_message.m_enclosures.first();
}
new_message.m_author = message_item.namedItem("author").toElement().text(); new_message.m_author = message_item.namedItem("author").toElement().text();
if (new_message.m_author.isEmpty()) { if (new_message.m_author.isEmpty()) {

View file

@ -144,6 +144,10 @@ Skin SkinFactory::skinInfo(const QString &skin_name, bool *ok) {
skin.m_layoutMarkup = skin_node.namedItem("markup").toElement().text(); skin.m_layoutMarkup = skin_node.namedItem("markup").toElement().text();
skin.m_layoutMarkup = QByteArray::fromBase64(skin.m_layoutMarkup.toLocal8Bit()); skin.m_layoutMarkup = QByteArray::fromBase64(skin.m_layoutMarkup.toLocal8Bit());
// Obtain enclosure hyperlink wrapper.
skin.m_enclosureMarkup = skin_node.namedItem("markup_enclosure").toElement().text();
skin.m_enclosureMarkup = QByteArray::fromBase64(skin.m_enclosureMarkup.toLocal8Bit());
// Obtain other information. // Obtain other information.
skin.m_baseName = QString(skin_name).replace(QDir::separator(), '/'); skin.m_baseName = QString(skin_name).replace(QDir::separator(), '/');

View file

@ -34,6 +34,7 @@ struct Skin {
QString m_rawData; QString m_rawData;
QString m_layoutMarkupWrapper; QString m_layoutMarkupWrapper;
QString m_layoutMarkup; QString m_layoutMarkup;
QString m_enclosureMarkup;
}; };
Q_DECLARE_METATYPE(Skin) Q_DECLARE_METATYPE(Skin)
@ -51,13 +52,8 @@ class SkinFactory : public QObject {
// Loads skin name from settings and sets it as active. // Loads skin name from settings and sets it as active.
void loadCurrentSkin(); void loadCurrentSkin();
// Returns contents of current layout markup. inline Skin currentSkin() const {
inline QString currentMarkup() { return m_currentSkin;
return m_currentSkin.m_layoutMarkup;
}
inline QString currentMarkupLayout() {
return m_currentSkin.m_layoutMarkupWrapper;
} }
// Returns the name of the skin, that should be activated // Returns the name of the skin, that should be activated

View file

@ -213,12 +213,21 @@ void WebBrowser::navigateToUrl(const QUrl &url) {
} }
void WebBrowser::navigateToMessages(const QList<Message> &messages) { void WebBrowser::navigateToMessages(const QList<Message> &messages) {
SkinFactory *factory = qApp->skins(); Skin skin = qApp->skins()->currentSkin();
QString messages_layout; QString messages_layout;
QString single_message_layout = factory->currentMarkup(); QString single_message_layout = skin.m_layoutMarkup;
foreach (const Message &message, messages) { foreach (const Message &message, messages) {
QString enclosures = message.m_enclosures.join("</br>"); QString enclosures;
foreach (const QString &enclosure, message.m_enclosures) {
enclosures += skin.m_enclosureMarkup.arg(enclosure);
enclosures += "<br>";
}
if (!enclosures.isEmpty()) {
enclosures = enclosures.prepend("<br>");
}
// TODO: upravit skiny aby brali další argument // TODO: upravit skiny aby brali další argument
@ -228,13 +237,11 @@ void WebBrowser::navigateToMessages(const QList<Message> &messages) {
message.m_author), message.m_author),
message.m_url, message.m_url,
message.m_contents, message.m_contents,
message.m_created.toString(Qt::DefaultLocaleShortDate))); message.m_created.toString(Qt::DefaultLocaleShortDate),
enclosures));
} }
QString layout_wrapper = factory->currentMarkupLayout().arg(messages.size() == 1 ? QString layout_wrapper = skin.m_layoutMarkupWrapper.arg(messages.size() == 1 ? messages.at(0).m_title : tr("Newspaper view"), messages_layout);
messages.at(0).m_title :
tr("Newspaper view"),
messages_layout);
m_webView->setHtml(layout_wrapper, QUrl(INTERNAL_URL_NEWSPAPER)); m_webView->setHtml(layout_wrapper, QUrl(INTERNAL_URL_NEWSPAPER));
emit iconChanged(m_index, qApp->icons()->fromTheme("item-newspaper")); emit iconChanged(m_index, qApp->icons()->fromTheme("item-newspaper"));