Commit Graph

153 Commits

Author SHA1 Message Date
Daniel García Moreno
bea4915317 Translation support and initial spanish translation
Added translation support based on the Fractal i18n. To do this I've
added the gettext-rs crate dep. I'm using my own fork because the
official gettext-rs release includes the gettext source files and that
increase the distribution package a lot and for distribution with
flatkap we don't need to build gettext, the lib is in the gnome sdk. So
this gettext-rs fork is the same, but removing the not needed gettext
source files.

The i18n.rs file adds some useful functions to translate strings. These
functions wraps the original gettext and adds more functionality, to be
able to translate compound strings, something that's not supported by
the gettext function.

The 'i18n' function works like the gettext, receives a plain string
without params.

The 'i18n_f' function receives a string with "{}" and a ref to an array
of &str with substitutions for the "{}" in the original string. The
substitution is done by order.

The 'i18n_k' function receives a string with "{named}" and a ref to an
array of (&str, &str) with substitutions for the "{named}" in the
original string. The substitution is done by name, where the first &str
in the tuple is the name and the second the string to use for the
replace.

This mod also include ni18n variants of the three functions for plural
and singular translations.

I've also created the spanish translation.

See #61

https://gitlab.gnome.org/World/podcasts/issues/61
2018-08-02 15:24:19 +02:00
Jordan Petridis
838320785e
Replace SendCell with fragile.
SendCell is depricated now and its advised to use the Fragile
crate instead.

https://github.com/sdroege/send-cell/issues/5
2018-07-28 19:46:01 +03:00
Jordan Petridis
91bea85519
Update dependancies. 2018-07-28 19:15:26 +03:00
Jordan Petridis
04c68ba013
Initial massive renaming. 2018-07-25 03:26:35 +03:00
Jordan Petridis
6aa931c866
Update deps. 2018-07-24 09:28:25 +03:00
Jordan Petridis
8fb5c16bce
Upgrade crossbeam-channel. 2018-06-26 23:37:06 +03:00
Jordan Petridis
f4551ddf3a
Update deps. 2018-06-26 23:37:02 +03:00
Zander Brown
09973a6a56 Initial playback
... and not a lot more. Hit play and the podcast will play, press play on something else and that will play instead
2018-06-23 22:45:09 +00:00
Jordan Petridis
d53865d81b
Update deps. 2018-06-07 16:14:40 +03:00
Jordan Petridis
7becfd8adb
Commit Updated Cargo.lock.
This was part of a9feed56fe but
forgot to commit it.
2018-06-07 15:47:41 +03:00
Jordan Petridis
f9e85155a8
Remove unused dependancy. 2018-06-02 21:13:30 +03:00
Jordan Petridis
7115eb573c
Downgrade Diesel to 1.2.x
disel_migrations 1.3 triggeres some clippy lints atm.
2018-05-29 18:16:57 +03:00
Jordan Petridis
9a2f51b48d
Update deps. 2018-05-28 22:06:07 +03:00
Jordan Petridis
4d77281249
Update deps. 2018-05-19 12:17:55 +03:00
Jordan Petridis
f9b34bbd50
h-data: Initial implementation of an OPML parser and importer.
This is not really compiant with the OPML spec and there
does not seem to be an OPML crate sadly. There are edge-cases
that are not handled but will only be addressed if a problem is reported.
2018-05-10 18:17:19 +03:00
Jordan Petridis
d4d89a56e9
Revert "Update deps."
This reverts commit f19ad133c6.

There was dependancy conflitct that was not caught locally due to caching.
2018-04-29 20:15:44 +03:00
Jordan Petridis
f19ad133c6
Update deps. 2018-04-29 19:57:32 +03:00
Jordan Petridis
09359a8df3
Update deps and bump rss crate.
My PR for Channelinto_items() went through and a new rss
release in is already available!
2018-04-19 08:07:02 +03:00
Jordan Petridis
18820202d7
gitlabci: Add needed ENV vars.
abc8fb988f uses an feature of rayon
that's behind a compile time flag.
2018-04-18 07:06:17 +03:00
Jordan Petridis
abc8fb988f
Pipeline: Dispatch feed indexing to the rayon threadpool. 2018-04-18 05:06:02 +03:00
Jordan Petridis
3c7ba8c9d9
Feed: Convert index_channel_items to a Future/Steam impl. 2018-04-18 02:49:21 +03:00
Jordan Petridis
049418c2f5
Feed: clean up clunky impl of indexing episodes. 2018-04-17 12:05:10 +03:00
Jordan Petridis
74fb8dc75c
Update deps. 2018-04-12 05:06:33 +03:00
Jordan Petridis
701b759ba2 EpisodesListBox: Add each widget lazyly. 2018-04-10 16:57:08 +00: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
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
e07e35110d Use pretty assertions! 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
c338802329
Update deps. 2018-03-30 11:49:54 +03:00
Jordan Petridis
1af06f2e0d
Neaw gtk-rs release, yay! 2018-03-19 06:34:28 +02:00
Jordan Petridis
3a0fb4bdec
Upgrade dependancies. 2018-03-14 04:07:44 +02:00
Jordan Petridis
1bdd2f2f5b
Merge branch 'master' into state-machines-experiements 2018-03-12 22:10:14 +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
2a6e0b0e07
Merge branch 'master' into state-machines-experiements 2018-02-22 12:14:55 +00:00
Jordan Petridis
c61938ba62
Update dependancies. 2018-02-20 06:19:05 +00:00
Jordan Petridis
3a9a2f4033
EpisdoeWidget: Use take_mut crate to allow for a better api.
Currently it's required that you take mut self in order to manipulate
the internal state machines. This would not allow passing an Arc/Rc to
a callback since A/Rc<T> only derefs to &T and not T.

The take_mut crate allows the retrieval of ownership if you have a &mut refference
and as long you return T again. So Arc<Mutex<Machine> could work with
callbacks and embed Nested state machies without copying.
2018-02-10 03:15:12 +02:00
Jordan Petridis
e77b0a84c7
Update dependancies. 2018-02-08 17:03:26 +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
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
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
8095919bbe
This sort of works? 2018-01-23 10:12:32 +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
b3c4de320b
Remove dead dependancies. 2018-01-20 07:41:09 +02:00
Jordan Petridis
b92ba7be76
Switch from libtest to criterion.rs for benchmarks. 2018-01-19 14:32:43 +02:00
Jordan Petridis
93372a30d0
1.21 Gigawatts. Remove non-future indexing loop.
Tried to have a seperate futures loop but it's too confusign having
too write a Trait2, functon2, etc version of everything and keep it together.

Futures are functional sort of, so the synchronous versioun can be removed.
It still needs a ton of work though to be ready, or even get near the perf
of of the sync+rayon version.
2018-01-18 11:38:24 +02:00
Jordan Petridis
1031315cdd
Getting somewhere? 2018-01-14 06:37:47 +02:00
Jordan Petridis
e4d77a6ba4
Cleanup the id() method mess of the diesel models. 2018-01-13 07:46:56 +02:00
Jordan Petridis
8e367b7e86
Dont ask me how this is working. 2018-01-12 08:50:16 +02:00
Jordan Petridis
13ba2762ad
Move the download manager to the gtk crate. 2018-01-05 22:02:06 +02:00
Jordan Petridis
e9dd297bf3
Merge branch 'master' into 33-downloader-re-work 2018-01-05 21:43:41 +02:00
Jordan Petridis
eafad35860
Upgrade diesel to 1.0.0 and update rest dependancies. 2018-01-05 19:57:11 +02:00
Jordan Petridis
b32f448957
When downloading an episode, set it's title to rowid instead of it's title. 2018-01-01 16:36:15 +02:00
Jordan Petridis
e42353e03f
cargo update 2018-01-01 00:46:31 +02:00
Jordan Petridis
a3cd76dbf8
hammond-downloader: Use glob Insead of hardcoded file extensions. 2017-12-31 03:59:48 +02:00
Jordan Petridis
1d78ab7c42
Cargo upgrade. 2017-12-28 23:19:36 +02:00
Jordan Petridis
378b8609aa
EpisodeWidget: Change the byte unit based on the size. Closes #18. 2017-12-21 21:31:25 +02:00
Jordan Petridis
e416bca963
Implemented a pixbuf cache mechanism.
Since gdk_pixbuf::Pixbuf is refference counted and every episode,
use the cover of the Podcast Feed/Show, We can only create a Pixbuf
cover per show and pass around the Rc pointer.

GObjects do not implement Send trait, so SendCell is a way around that.
Also lazy_static requires Sync trait, so that's what the mutexes are.
2017-12-21 17:36:07 +02:00
Jordan Petridis
0ac78fcff1
Added date label into EpisodeWidget. 2017-12-14 18:03:37 +02:00
Jordan Petridis
d5d55d4ef3
Update dependancies. 2017-12-12 16:51:24 +02:00
Jordan Petridis
999a2a1fc1
Strip whitespace during parsing. 2017-12-09 10:22:09 +02:00
Jordan Petridis
c07d240532
Sanitize html during feed parsing. 2017-12-07 06:38:31 +02:00
Jordan Petridis
8e6cc4d2f2
Remove custom builders in favor of derive_builder crate. 2017-12-05 09:10:02 +02:00
Jordan Petridis
74a1aae168
Upgraded diesel to 0.99 and switched from the git master into crated.io.
Also did a cargo upgrade of all the dependancies.
Notable upgrades are r2d2, lazystatic 1.0, loggerv 0.6 and rss 1.2
2017-12-02 01:39:28 +02:00
Jordan Petridis
9e03aaae27
Upgrade gtk-rs crates. 2017-11-26 21:25:46 +02:00
Jordan Petridis
7eff93ecf1
Remove rand from the downloader. 2017-11-26 03:47:43 +02:00
Jordan Petridis
7be0b5bbf8
Added a url cleanr. Closes #4. 2017-11-20 22:06:29 +02:00
Jordan Petridis
55442529a8
Initial switch to using r2d2. 2017-11-19 22:06:10 +02:00
Jordan Petridis
052988a2b1
Update dependancies. 2017-11-19 18:14:56 +02:00
Jordan Petridis
494761beaf
Removed id function from diesel models.
It's automaticly declared upon derive identifiable,
And there's no need to overwrite it.
2017-11-18 15:23:40 +02:00
Jordan Petridis
a286014a62
Refactored indexing functions of the Diesel models. 2017-11-14 17:56:28 +02:00
Jordan Petridis
03637903c6
Update dependancies. 2017-11-14 13:06:09 +02:00
Jordan Petridis
1fbacad8b9
Updated rayon. 2017-11-10 11:42:11 +02:00
Jordan Petridis
d3beb30f00
Closed #5. Proper guessing of the file extension from the mime-type. 2017-11-10 11:35:58 +02:00
Jordan Petridis
07c1395c29
Cleanup of downloader module. 2017-11-09 17:47:38 +02:00
Jordan Petridis
8c5cdf75a7
Cleaned up a bit the downloader moduel and added some unit tests. 2017-11-08 20:22:07 +02:00
Jordan Petridis
4e6ed416ee
Disabled http refers. 2017-11-07 10:28:04 +02:00
Jordan Petridis
944156d6fe
#6 Switched to using the safe api for GResource. 2017-11-06 14:56:59 +02:00
Jordan Petridis
60a3b39339
Initial implementation of #6 Gresource support. 2017-11-06 12:19:10 +02:00
Jordan Petridis
36271afcdd
Error types cleanup. 2017-11-05 15:36:54 +02:00
Jordan Petridis
7a1b272d9e
Removed code duplication and combined refresh_feed and refresh_db. 2017-11-04 13:36:25 +02:00
Jordan Petridis
7e8f39119d
Moved banner.png from assets into hammond-gtk/gtk 2017-11-04 11:28:10 +02:00
Jordan Petridis
0e6b6b2cce
Update dependancies. 2017-11-01 10:54:36 +02:00
Jordan Petridis
ac80ab04d4
Added the ability to mark episodes of a Podcast as watched/played. 2017-10-30 13:02:35 +02:00
Jordan Petridis
eb8fdb2edb
Implemented a downloaded/watched cleaner. 2017-10-28 06:57:32 +03:00
Jordan Petridis
f79ccdcecd
Updated dependancies and minor readme and todo fixes. 2017-10-24 09:00:50 +03:00
Jordan Petridis
e2a06fc074
Removed ListStore entirely. 2017-10-24 00:25:48 +03:00
Jordan Petridis
14484f6128
Removed hammond-cli crate, as it not longer needed. 2017-10-22 09:12:12 +03:00
Jordan Petridis
74715292b3
Updated reqwest depencancy. 2017-10-20 05:10:14 +03:00
Jordan Petridis
ff31ad668f
Overall impromvment into episode_widget.
Parse html into plain text for the episode widget.
Implement on per episode/child description evaluation.
Minor episode_widget tweaks.
2017-10-20 04:51:02 +03:00
Jordan Petridis
80f0f138f3
Wired playbutton to use xdg-open for the files. 2017-10-18 03:13:16 +03:00
Jordan Petridis
5ef27d1072
Updated dependancies. 2017-10-16 05:03:48 +03:00
Jordan Petridis
f25ce64e34
Initial split into workspaces in order to be more flexible. 2017-10-04 22:41:17 +03:00