Jordan Petridis
b74dbb74bb
h-data: Remove rel attributes from <a> tags when sanitizing html.
...
They are invalid in `pango` markup so theres no reason they
should are not needed. Also add some paranoid .trim() calls.
It returnes a &str slice so it's cheap.
2018-04-10 06:31:51 +03:00
Jordan Petridis
d332636dd4
Fix the fix that should have fixed the tests.
2018-04-06 19:36:52 +03:00
Jordan Petridis
32654f6cb2
Fix the tests.
2018-04-06 19:18:55 +03:00
Jordan Petridis
14a90e7138
Remove Futures_Cpupool.
...
The performance boost is not good enough to justify the
code complexity it add and the memory overhead of
yeat another threadpool.
We will start refactoring the whole pipeline implemantation
and might transition to either rayon-futures or tokio-runtime.
2018-04-06 18:18:03 +03:00
Jordan Petridis
dd2366a15e
Change the git url of the html2pango crate.
2018-04-05 20:44:28 +03:00
Jordan Petridis
370ba2d461
dlmanager: minor cleanup.
2018-04-04 21:36:23 +03:00
Jordan Petridis
ef655ef5e0
EpisodeWidget: Keep the widget's heigth contant. Fixes #57
2018-04-04 18:44:23 +03:00
Jordan Petridis
5cc550c830
NewEpisode: refactor a closure to that returned Option<T> to use .and_then instead.
2018-04-04 16:32:03 +03:00
Jordan Petridis
52cbe67756
NewEpisode: refactor another if else statement and document it.
2018-04-04 16:31:59 +03:00
Jordan Petridis
c910e0af40
NewPodcast: refactor an if else statement and document it.
2018-04-04 16:31:50 +03:00
Jordan Petridis
7a74534285
Merge branch '25-render-show-description' into 'master'
...
Resolve "Render link/bold/url attributes in ShowWidget description"
Closes #25
See merge request alatiera/hammond!30
2018-04-03 19:51:49 +00:00
Jordan Petridis
916775462d
Update changelog.
2018-04-03 19:42:13 +00:00
Jordan Petridis
3d98600126
h-data: Sanitize html during Podcast/Episode parsing.
2018-04-03 19:42:13 +00:00
Jordan Petridis
7ba834ee8d
Update deps now that we are at it.
2018-04-03 19:42:12 +00:00
Jordan Petridis
1c527cba03
Remove more commented out dead code.
2018-04-03 19:42:12 +00:00
Jordan Petridis
2d7ba7b246
h-data/source.rs: Reduce boilerplate.
2018-04-03 19:42:11 +00:00
Jordan Petridis
4ed70a8011
Rss::Error is now Send!
2018-04-03 19:42:11 +00:00
Jordan Petridis
7a3a148359
Remove more dead code.
2018-04-03 19:42:11 +00:00
Jordan Petridis
e07e35110d
Use pretty assertions!
2018-04-03 19:42:10 +00:00
Jordan Petridis
a463753c84
NewEpidode: Use parse rss.description instead of itunes.summary.
...
We can deal with(sort of) html now, so we should start indexing
the proper rss description. Also cleanup commented out code.
2018-04-03 19:42:10 +00:00
Jordan Petridis
a946ddfab1
html_to_pango: Switch to use the new library spawn from this.
...
Thanks to @danigm for spinning that part of fractal to a shared library.
2018-04-03 19:42:09 +00:00
Jordan Petridis
af1cb43bd6
NewPodcast: Prefer the rss.description attribute.
...
Since we can handle rendering html stuff by converting it to pango
we no longer need the text-only itunes summary attribure.
2018-04-03 19:42:09 +00:00
Jordan Petridis
935d61324f
ShowWidget: Convert html to pango markup and render it.
...
Instead of stipping all the html tags and just using the text
in the label we could *try* converting it to pango markup
which is a bit more flexible than plain text.
The code was copied from Fractal.
2018-04-03 19:42:08 +00:00
Jordan Petridis
10e016f2ea
update appdata.xml
2018-04-03 21:41:53 +03:00
Jordan Petridis
154655d571
Readme: Fix the dependancies listed to include rustc and cargo.
2018-04-03 20:49:30 +03:00
Jordan Petridis
491cd8f01c
cargo fmt
2018-03-30 17:24:38 +03:00
Jordan Petridis
2b711ff04c
Update .doap file
2018-03-30 16:47:09 +03:00
Jordan Petridis
07eadd2364
h-gtk/utils: Improve itunes resolver and add extra test cases.
2018-03-30 16:38:59 +03:00
Jordan Petridis
7086afe73d
h-gtk/utils: More refactor to improve formatting.
2018-03-30 15:33:19 +03:00
Jordan Petridis
f21398357b
h-gtk/utils: Refactor some mutex locks, improve formatting.
2018-03-30 14:39:30 +03:00
Jordan Petridis
c338802329
Update deps.
2018-03-30 11:49:54 +03:00
Jordan Petridis
c3076e748e
cargo fmt
2018-03-30 10:22:34 +03:00
Jordan Petridis
1595256c86
Use rayon to manage all the threads.
2018-03-30 09:31:25 +03:00
Jordan Petridis
0623592f75
Merge branch '7-async-image-loading' into 'master'
...
Resolve "Make image loading not blocking the programs execution."
Closes #7
See merge request alatiera/Hammond!29
2018-03-29 14:57:44 +00:00
Jordan Petridis
f2444f151c
h-gtk/utils: Re-work format_err! calls and improve formatting
2018-03-29 15:26:44 +03:00
Jordan Petridis
710a3f2552
Use SendCell::try_get instead of SendCell::into_inner
2018-03-29 15:19:13 +03:00
Jordan Petridis
6071c664e7
Update changelog
2018-03-29 13:32:57 +03:00
Jordan Petridis
e203815f4f
hammond-gtk/utils.rs: Use a hashset to keep track of cover downloads.
...
Use a HashSet to check if a download of a cover is already active. If
it is, schedule a callback that will try to set the image from the
cached pixbuf later.
2018-03-29 13:07:46 +03:00
Jordan Petridis
c3658080d3
Comment out a test.
2018-03-29 11:37:31 +03:00
Jordan Petridis
8703470010
h-gtk/utils: Use a threadpool to avoid spawning a million threads
2018-03-29 10:24:02 +03:00
Jordan Petridis
88cc7e6fec
Fix set_image_from_path test
2018-03-29 09:21:49 +03:00
Jordan Petridis
badcbc32c6
Implement async loading of the Show covers.
2018-03-28 22:41:45 +03:00
Jordan Petridis
daa8f15ce9
hammond-gtk::utils: change the signature of get_pixbug_from_path and rename it
...
Requires a gtk::Image as argument now, it sets the pixbuf to the
img directly instead of returning it.
New name is set_image_from_path.
This is ground work so we can later keep the image reference, and
use it to set the image with a callback.
2018-03-28 21:47:10 +03:00
Jordan Petridis
89ee174ded
Version bump.
2018-03-28 14:48:43 +03:00
Jordan Petridis
cc03c2407b
Merge branch '44-empty-show-widget' into 'master'
...
Resolve "Unpleasant ShowWidget behaviour if the show has no Episodes"
Closes #44
See merge request alatiera/Hammond!28
2018-03-28 11:25:35 +00:00
Jordan Petridis
89254025f3
Update changelog
2018-03-28 13:33:29 +03:00
Jordan Petridis
f693c986ec
Add an empty_show if Show has no episodes.
2018-03-28 13:24:26 +03:00
Jordan Petridis
3c7f3ecb56
NewPodcast: Fix Image parsing if Itunes ext is Some(None).
...
Instead of checking if the itunes img url was Some we were assuming
that if an itunes extension existed, it would have an image. That's
not always the case as it turns out there can be an Itunes Ext but
img still be None resulting to not falling back to the Rss image tag.
2018-03-28 12:08:41 +03:00
Jordan Petridis
ef3809ed25
Update about dialog.
2018-03-27 16:53:12 +03:00
Jordan Petridis
f5ddb7107e
Update changelog
2018-03-27 16:43:06 +03:00
Jordan Petridis
1d32018c02
Merge branch 'feature/persist-window-geometry' into 'master'
...
Issue #50 : Persist window geometry
See merge request alatiera/Hammond!25
2018-03-27 12:27:33 +00:00
Jordan Petridis
d525d1fe59
InAppNofitication: Make revealer field private, change show signature
...
Accept an overlay widget that the revealer will be attached to into
the show method. Thus revealer field no longer need to be public.
2018-03-27 12:01:53 +03:00
Jordan Petridis
bdc6264701
app.rs: Minor formatting improvments.
2018-03-27 11:50:31 +03:00
Jordan Petridis
7e2640e2d0
ShowWidget: When unsub notification expires, remove show from the ignore list.
...
This should not make any difference regarding the behaviour since
the Show id is eq to the sqlite rowid which means that even
if the same show was removed and readded it would have diff id.
2018-03-27 11:09:53 +03:00
Jordan Petridis
822a72efde
gitlabci: Enable the ubuntu/rust stable build, disable tests in flatpak
...
Due to meson not understanding cargo, it's actually faster to have
a separate build + test job than trying to compile the cargo
tests twice inside the flatpak enviroment
2018-03-27 10:04:02 +03:00
Jordan Petridis
192b13e393
Merge branch 'issue/52' into 'master'
...
Fix #52 : Double border around main window
Closes #52
See merge request alatiera/Hammond!24
2018-03-26 19:21:04 +00:00
Jordan Petridis
3d39638c99
Merge branch '36-add-undo-for-unsubscribing-from-shows' into 'master'
...
Resolve "Add "undo" for unsubscribing from shows"
Closes #36
See merge request alatiera/Hammond!27
2018-03-26 18:39:19 +00:00
Jordan Petridis
69e87d129a
ShowWidget: Hide shows from the Views when unsub is hit.
2018-03-26 14:34:54 +03:00
Jordan Petridis
f7a7510322
Implement the shared HashSet with the ignored Shows ids
2018-03-26 13:25:39 +03:00
Jordan Petridis
e9f2ba47f2
dbquerries: Add get_episodes and get_podcasts querries that can filters.
2018-03-26 12:46:13 +03:00
Jordan Petridis
b2c95e5a73
ShowWidget: display a notification before removing the show.
2018-03-26 10:57:44 +03:00
Jordan Petridis
482ed7c3c6
Update README
2018-03-26 10:11:43 +03:00
Jordan Petridis
e497f73316
gitlabci: run glib-compile-resources from the flatpak enviroment
2018-03-21 14:24:56 +02:00
Jordan Petridis
28965dc2b1
gitlabci: Disable normal builds now that tests can run on the flatpak one.
2018-03-19 12:00:53 +02:00
Jordan Petridis
5425ca35b3
Cleanup .gitignore a bit
2018-03-19 11:52:02 +02:00
Jordan Petridis
9f191d0ab8
gitlabci: Run cargo test inside the flatpak.
2018-03-19 11:33:45 +02:00
Jordan Petridis
c2a3ce5096
Why the hell you do not cache cargo.
2018-03-19 07:43:04 +02:00
Jordan Petridis
1af06f2e0d
Neaw gtk-rs release, yay!
2018-03-19 06:34:28 +02:00
Jordan Petridis
2f2f11b7bc
gitlabci: Fix flatpak issue building only master.
2018-03-18 17:03:16 +02:00
Jordan Petridis
260e6015a1
Merge branch 'issue/53' into 'master'
...
Fix #53 by setting the HTTP user agent string to the latest Firefox ESR.
Closes #53
See merge request alatiera/Hammond!26
2018-03-18 11:34:12 +00:00
Jordan Petridis
2457e95f0e
gitlabci: Improve caching
2018-03-18 05:59:35 +02:00
Jordan Petridis
327c907463
gitlabci: try to cache the flatpak build
2018-03-18 05:07:42 +02:00
Jordan Petridis
1b558d3b30
gitlabci: switch flatpak build to the custom image
2018-03-18 05:07:37 +02:00
Jordan Petridis
a0d55417cd
Merge branch 'feature/gsettings-integration' into 'master'
...
Integrate gsettings into application
See merge request alatiera/Hammond!23
2018-03-17 23:37:43 +00:00
Jordan Petridis
bc2da6e59e
gitlabci: add flatpak build and reformat tabs.
2018-03-18 00:31:15 +02:00
Jordan Petridis
a253d7ebf5
Merge branch 'feature/gsettings-schema' into 'master'
...
Added initial settings schema.
See merge request alatiera/Hammond!22
2018-03-16 20:05:19 +00:00
Jordan Petridis
93e15af209
Compress gresource ui files.
2018-03-16 21:29:54 +02:00
Jordan Petridis
9f3a5a13b3
EpisodeWidget: Some RefCell are not really necessary.
2018-03-16 20:11:17 +02:00
Jordan Petridis
3a0fb4bdec
Upgrade dependancies.
2018-03-14 04:07:44 +02:00
Jordan Petridis
8a460930c6
Update changelog.
2018-03-14 01:10:02 +02:00
Jordan Petridis
a11c4c9bd2
InAppNotification: Twek the margins around the text label.
2018-03-14 00:43:17 +02:00
Jordan Petridis
d4b98b5cb2
I hate everything that has to do with centering stuff.
2018-03-14 00:40:29 +02:00
Jordan Petridis
fdf3908494
This reverts cc052eb450
...
Turns out debian stable meson package is kinda old.
2018-03-13 07:23:43 +02:00
Jordan Petridis
cc052eb450
gitlabci: use meson to test the build instead of cargo.
2018-03-13 07:03:31 +02:00
Jordan Petridis
4535c3005d
Merge branch 'state-machines-experiements' into 'master'
...
EpisodeWidget as a state machine
See merge request alatiera/Hammond!18
2018-03-13 04:52:40 +00:00
Jordan Petridis
030fed6d12
EpisodeWidget: Just in case there was a deadlock.
2018-03-13 04:57:11 +02:00
Jordan Petridis
fc9579cd51
EpisodeWidget: Replace some Mutexs with RefCells.
...
The state machines are not send and the code is sequnecial.
We only need `&mut machine` refference to pass to `take_mut::take`
to change the state of the machine. In 2/3 cases we can even use
`.get_mut()` method and even avoid the dynamic borrow checks at
runtime. For the `TitleMachine` The only thing that will hold
a refference to it after initialization will be the play_button
callback. So it's justifiable to use `RefCell` insetead of a `Mutex`.
2018-03-13 04:44:06 +02:00
Jordan Petridis
74712b5410
EpisodeWidget: Remove unnecessary Arcs.
...
`DateMachine` and `DurationMachine` are only mutated during initialization
and thus do not need shared ownership.
`TitleMachine` is only mutated during initialization and after that only
the callback will keep holding a referrence to it. The `EpisodeWidget`s
get dropped after initialization. So it's justifiable to use `Rc<Mutex<T>>`
instead of `Arc`.
2018-03-13 03:47:46 +02:00
Jordan Petridis
05628a2529
Update changelog.
2018-03-12 22:32:52 +02:00
Jordan Petridis
1bdd2f2f5b
Merge branch 'master' into state-machines-experiements
2018-03-12 22:10:14 +02:00
Jordan Petridis
3af6e103aa
Merge branch '49-itunes-to-rss-resolver' into 'master'
...
Resolve "Itunes to RSS resolver."
Closes #49
See merge request alatiera/Hammond!20
2018-03-12 19:52:51 +00:00
Jordan Petridis
3dcc20ae86
Update changelog.
2018-03-12 21:14:12 +02:00
Jordan Petridis
8a18630ae5
Initial integration of the itunes resolver with the Add button.
2018-03-12 20:49:02 +02:00
Jordan Petridis
b87c331b12
Make the itunes_resolver functions inlined.
2018-03-12 07:28:09 +02:00
Jordan Petridis
9da2414e8b
Initial implementation of an itunes_to_rss url resolver. #49
2018-03-12 06:48:05 +02:00
Jordan Petridis
285291b2ed
Ignore tests that need access to the host system.
2018-03-12 03:35:07 +02:00
Jordan Petridis
dbbb4e589e
InAppNotification: Fix autohiding after the callback is executed.
2018-03-09 20:24:28 +02:00
Jordan Petridis
064879c4ce
InAppNotification: Remove reduntant Overlay.
2018-03-09 19:46:46 +02:00
Jordan Petridis
8614922213
InAppNotification: Change box margins.
2018-03-09 19:36:43 +02:00
Jordan Petridis
745ea0ca10
Flatpak: Add dconf permissions.
...
Required also in order to run the gtk+ inspecor.
2018-03-09 17:14:49 +02:00