Commit Graph
100 Commits
Author SHA1 Message Date
Jordan Petridis e2a1762af4 EpisodeWidget: Use refference counting intead of unnecessary clones.
Pass owenership of EpisodeWidgetQuery and use Atomic Ref counting
to pass to the callbacks. This should avoid extra allocations.
2018-02-07 18:40:22 +02:00
Jordan Petridis 07c1a9a0e9 Fix private field visibility of stacks. 2018-02-07 07:11:40 +02:00
Jordan Petridis 31bd75ae45 Minor Arc changes. 2018-02-07 07:02:24 +02:00
Jordan Petridis 67af85e347 Hammond-gtk: Use Atomic Refference counting to reduce cloning of Podcast. 2018-02-07 06:28:16 +02:00
Jordan Petridis df02054b29 Hammond-gtk: Change the privacy of the widgets module. 2018-02-07 05:47:58 +02:00
Jordan Petridis 0cdd48ac1e Hammond-gtk: Change the privacy of the views module. 2018-02-07 05:37:07 +02:00
Jordan Petridis bdda596806 Hammond-gtk: Inital split of content.rs into stacks module. 2018-02-07 05:33:29 +02:00
Jordan Petridis 8cbae4050e Merge branch '40-gtk-unwrap-cleanup' into 'master'
Resolve "Clean up the unwraps in the Gtk Client."

Closes #40

See merge request alatiera/Hammond!17
2018-02-07 02:12:11 +00:00
Jordan Petridis d3696fc5ec Minor Error messages wording changes. 2018-02-07 03:52:21 +02:00
Jordan Petridis 2d33606251 Hammond-gtk: Stack, Content constructors return Results now.
Constructors now proxy underlying errors that migth occur during initialazation.
I think that's about the last unwraps in the main thread.
2018-02-07 03:17:37 +02:00
Jordan Petridis 89564996df ShowStack: Convert rest methods to return Result<T, Error>. 2018-02-07 01:19:07 +02:00
Jordan Petridis e196a6c905 ShowStack: update_widget methods now return Result<T, Error>. 2018-02-07 00:55:43 +02:00
Jordan Petridis 7eb038b899 EpisodesStack: Refactor update method to return a Result<T, Error>. 2018-02-07 00:31:04 +02:00
Jordan Petridis 1c84f0d721 hammond-gtk::manager: Switch the add function to return a Result<(), Error>. 2018-02-06 22:03:17 +02:00
Jordan Petridis ab519a54d3 Headerbar: Use Result<T, failure::Error> wherever possible. 2018-02-06 21:32:21 +02:00
Jordan Petridis 7ed1cd8b26 hammond-gtk: Change utils::get_pixbuf_from_path function to return a Result. 2018-02-06 20:56:55 +02:00
Jordan Petridis c6e426cbac Downloader: Change cache_image function to return Result<T, DownlaoderError> instead of Option<T>. 2018-02-06 20:14:03 +02:00
Jordan Petridis d3f279374a ShowWidget: Refactor to return Result<T, Error> wherever possible. 2018-02-06 02:47:39 +02:00
Jordan Petridis 0dc16dab9a EpisodeWidget: Refactor to return Result<T, Error> wherever possible. 2018-02-06 02:31:53 +02:00
Jordan Petridis ed5ff16598 Downloader: clean a bit downloader::get_episode function. 2018-02-06 02:00:32 +02:00
Jordan Petridis c1ecdbda52 Merge branch '39-failure-libs-migration' into 'master'
Resolve "Migrate Error-Handling to Failure crate."

Closes #39

See merge request alatiera/Hammond!16
2018-02-05 19:16:11 +00:00
Jordan Petridis d3472b3205 hammond-data: Deny Unused. 2018-02-05 20:51:34 +02:00
Jordan Petridis 5cd3dff1d4 Downloader: Switch to returning Downloader::Error instead of failure::Error. 2018-02-05 20:41:45 +02:00
Jordan Petridis 4d1168803c Dbquerries: Remove Result type allias. 2018-02-05 19:43:26 +02:00
Jordan Petridis 7eec01a52e Minor rename of DataError::Bail. 2018-02-05 19:05:40 +02:00
Jordan Petridis 44ebe46f10 Replace last bail! invocations. 2018-02-05 19:00:31 +02:00
Jordan Petridis 008f57bec4 Create a ParseEpisodeError and replace bail! invocations. 2018-02-05 18:51:21 +02:00
Jordan Petridis d0ae5a4198 Typo fix. 2018-02-05 18:33:12 +02:00
Jordan Petridis 064c2b4be0 Start creating custom errors instead of using bail! macro. 2018-02-05 18:25:56 +02:00
Jordan Petridis 34d7391363 Make a counterfeit rss Error. 2018-02-05 16:37:50 +02:00
Jordan Petridis e84e7df3f1 Remove unwrap call. 2018-02-05 15:59:34 +02:00
Jordan Petridis 8ba9f928d6 Switch to using DataError instead of failure::Error. 2018-02-05 02:43:56 +02:00
Jordan Petridis 435ce05ac7 Add rest of the From impls for the Error Type. 2018-02-05 01:53:01 +02:00
Jordan Petridis ede4c21e30 Merge the Errors into a single Enum. 2018-02-05 01:39:50 +02:00
Jordan Petridis 0892fe26ba Manually implement From Trait for the DatabaseError. 2018-02-05 01:20:01 +02:00
Jordan Petridis 1085d468b9 cargo fmt 2018-02-04 18:45:19 +02:00
Jordan Petridis 8f0a63fdb7 Downloader: Make the Error type public. 2018-02-04 17:46:01 +02:00
Jordan Petridis de43cae015 Switch rest stuff of data/downloader to Failure Crate. 2018-02-04 17:36:27 +02:00
Jordan Petridis f9f015a211 Hammond-data: switch database module to use Failure. 2018-02-04 16:33:10 +02:00
Jordan Petridis 3874235074 Readme: Add a note about being able to built with Gnome-Builder. 2018-02-04 02:03:47 +02:00
Jordan Petridis 1888539a97 Rename assets folder to screenshots, and improve the build system. 2018-02-04 01:34:34 +02:00
Jordan Petridis d131c279b9 Add batch indexing fallback.
If an RSS feed triggered a unique constrains violation, none of it's
items would be indexed resulting in a Podcast without episodes.

This adds a fallback that indexes each item individually if the batch index fails.
2018-02-03 16:02:42 +02:00
Jordan Petridis 92d01ec51a Feed: enchance get_stuff unit test. 2018-02-03 15:55:26 +02:00
Jordan Petridis 97c65c8bd1 Add a download test for Steal the Stars podcast to spot #10 reggressions. 2018-02-03 15:43:00 +02:00
Jordan Petridis e8ae0b0251 Thats a hack, a terrible one, but without it the user
would have to manually click refresh if the user that was added
happen to redirect somewhere else.

The problem is in the hammond-data/src/models/source.rs
fn request_constructor. It has to do with futures and lifetimes
and I am not sure how to tackle it yet.
2018-02-03 00:06:02 +02:00
Jordan Petridis f1f248fa40 Merge branch 'master' into 'master'
Issue 10 - Infinite Redirect Fix

See merge request alatiera/Hammond!15
2018-02-02 16:12:46 +00:00
Jordan Petridis 80fd4e9fc5 Source: Set Etag and last modified to None upon redirect. 2018-02-01 19:35:35 +02:00
Jordan Petridis 7b62ef203d Source: Pass owenership around instead of &mut, cause futures. 2018-02-01 15:55:19 +02:00
Jordan Petridis 2f062afb07 Clippy suggestions 2018-01-29 19:09:53 +02:00
Jordan Petridis 817d5d9cf7 Fix meson config to build each time. 2018-01-29 18:17:02 +02:00
Jordan Petridis a2cf2357c6 Add about a basic about dialog. 2018-01-29 18:02:24 +02:00
Jordan Petridis 815639fe5f Add an order by tittle asc clasuse to the Podcast query. Address #34. 2018-01-29 12:30:13 +02:00
Jordan Petridis b1c3b4f9cc Pipeline: Fetch sources without etag support fist as they are more likely to need parsing. 2018-01-29 12:20:21 +02:00
Jordan Petridis 332a439b7a hammond-data: Factor out save method of diesel models into a Trait. 2018-01-28 22:09:06 +02:00
Jordan Petridis fb5264c479 NewSource: Rename into_source -> to_source and take reffence &self instead. 2018-01-27 18:34:03 +02:00
Jordan Petridis a3705d424b NewSource: Remove Insert implemantation and replace it with a insert_or_ignore method. 2018-01-27 18:09:40 +02:00
Jordan Petridis a4660a0700 Headerbar: Do not allow insertion of duplicate urls. 2018-01-27 14:40:51 +02:00
Jordan Petridis 77a52bdc8c hammond-data: Add a source_exists query. 2018-01-27 14:23:19 +02:00
Jordan Petridis 18e55e23ee Headerbar: Do not allow insertion of invalid urls. 2018-01-27 14:11:02 +02:00
Jordan Petridis d14973cf0d Use num_cpus instead of hardcoding the number of threads for dns look_up.
In the next hyper_tls relase it should be possible to use the existing
cpu_pool executor.
2018-01-27 11:08:57 +02:00
Jordan Petridis 120d494280 Update hyper and futures. 2018-01-27 09:45:25 +02:00
Jordan Petridis 8c0e3221cb refresh_feed: remove code duplication. 2018-01-26 19:29:45 +02:00
Jordan Petridis 5e1d1e557f GtkApplication: Add an action for showing the headerbar_update_indicator. 2018-01-26 19:15:07 +02:00
Jordan Petridis a7e3b1b99e GtkApplication: Headbar and Content constructors now return Self instead of Arc<Self>. 2018-01-26 19:05:19 +02:00
Jordan Petridis 1e722e0d58 Merge branch 'futuristic-pipeline' into 'master'
Futuristic pipeline

See merge request alatiera/Hammond!14
2018-01-26 16:33:46 +00:00
Jordan Petridis 39aa86157b Switch rest of the tests to point to the internet archive urls. 2018-01-26 17:25:35 +02:00
Jordan Petridis df85a4ea9e Pipeline: avoid panicking by checking the lenght and returning an error. 2018-01-26 14:17:43 +02:00
Jordan Petridis 2912bad110 Pipeline: Split the pipeline from the cpu-pool and the tokio-core. 2018-01-26 13:34:04 +02:00
Jordan Petridis a57fdef01d Merge branch 'patch-1' into 'master'
Added Flatpak building instructions

See merge request alatiera/Hammond!13
2018-01-25 19:42:45 +00:00
Jordan Petridis b370af35d4 Feed: Add a bunch of tests. 2018-01-24 18:42:33 +02:00
Jordan Petridis d6817aaa1f Parser: pass an rss::ItunesExtension to instead of an rss::Item. 2018-01-24 15:42:08 +02:00
Jordan Petridis 5da002fe6d Use map_err(From::from) instead of ? into Ok() wrapping pattern. 2018-01-24 15:27:36 +02:00
Jordan Petridis 0e16f0acb0 NewEpisode: rename into_episode -> to_episode, change its signature and add unit test. 2018-01-24 14:31:33 +02:00
Jordan Petridis d5a7fa9de8 NewEpisode: Add index method unit test. 2018-01-24 12:11:49 +02:00
Jordan Petridis 9274aba849 NewEpisode: Add update method unit test. 2018-01-24 11:22:03 +02:00
Jordan Petridis 457e43978f Pipeline: Fix a panic if the list of futures was 0. 2018-01-23 19:07:11 +02:00
Jordan Petridis f9096e5fac Pipeline: Print the error right away instead of waiting till all futures complete. 2018-01-23 18:18:56 +02:00
Jordan Petridis e74a2df27f Source: On Http 301 response, update Source.uri . 2018-01-23 16:43:02 +02:00
Jordan Petridis 1c4138c166 Benches: Remove dead stuff. 2018-01-23 13:24:08 +02:00
Jordan Petridis 050fe9c52b Pipeline: offload more stuff to the threadpool. 2018-01-23 11:43:37 +02:00
Jordan Petridis a8c49049dd Fix flatpak permission. 2018-01-23 10:40:14 +02:00
Jordan Petridis 8095919bbe This sort of works? 2018-01-23 10:12:32 +02:00
Jordan Petridis f7f6087d70 NewPodcast: On update unit test assert .id and .source_id fields stay the same. 2018-01-22 21:09:06 +02:00
Jordan Petridis ea75d50053 NewEpisode: Add insert unit test. 2018-01-22 17:25:23 +02:00
Jordan Petridis 44d7a4e222 NewEpisodeMinimal: Add unit test for into_new_episode method. 2018-01-22 15:49:58 +02:00
Jordan Petridis 2d6f34fa4d NewEpisode: Clean up tests a bit. 2018-01-22 15:34:57 +02:00
Jordan Petridis d231cc165f Fix batch indexing. 2018-01-22 14:51:31 +02:00
Jordan Petridis c2d5b5ded0 Flatpak: Remove the notification portal since its not going to be used any time soon. 2018-01-22 12:23:23 +02:00
Jordan Petridis 7bd361fbbb Upgrade dependancies. 2018-01-22 11:47:17 +02:00
Jordan Petridis 66e816fc5f Upgrade Diesel to 1.1 2018-01-22 11:22:01 +02:00
Jordan Petridis 20f36a67a0 Upgrade log and loggerv. 2018-01-21 15:22:13 +02:00
Jordan Petridis eb75e68b72 Fix benchmarks. 2018-01-21 14:52:21 +02:00
Jordan Petridis dc9a28c0c7 Remove xml files. 2018-01-21 14:49:54 +02:00
Jordan Petridis 843feabf25 NewEpisode: Move the parsing tests, delete old xml files. 2018-01-21 13:35:35 +02:00
Jordan Petridis 937bd61d5e NewPodcast: Add unit test for the to_podcast() method. 2018-01-21 12:17:47 +02:00
Jordan Petridis 4ee5888b7f NewPodcast: Rename into_podcast method -> to_podcast since it now does not take owenership. 2018-01-21 11:04:15 +02:00
Jordan Petridis 73eeb1b545 NewPodcast: Add NewPodcast.index unit test. 2018-01-21 10:04:53 +02:00
Jordan Petridis 16bbfb5478 NewPodcast: Add (lackign) NewPodcast.update unit test. 2018-01-21 09:35:48 +02:00
Jordan Petridis 410657c98b NewPodcast: Remove the boilerplate on the unit tests. 2018-01-21 08:57:50 +02:00
Jordan Petridis 1625f773c2 hammond-data: Fix PartialEq implementations, add NewPodcast.insert unit test. 2018-01-21 08:39:50 +02:00