Commit Graph

3319 Commits

Author SHA1 Message Date
auouymous 57045619d3 Also open dialog if xdg-open is not found when opening a folder. 2022-01-16 22:02:27 -07:00
Benedikt Wildenhain 34098c19fc
Open error dialog if user tries to use not-installed program
Currently trying to use default player (xdg-)open when it's not installed
will only cause messages on the console, which might not be visible to
the user. This PR creates an alert box in this case.

Fixes #1003.
2022-01-16 18:24:41 +01:00
Eric Le Lay 40fd34b14a
Merge pull request #1206 from auouymous/fix-1195
Fix shownotes for episodes that contain HTML comments.
2022-01-03 09:32:33 +01:00
auouymous 3938809dd5 Fix shownotes for episodes that contain HTML comments.
When html5lib is used, a function is returned for each comment in the
HTML. It should be safe to skip functions until something else is found
to use them that causes issues finding hyperlinks.

Fixes #1195.
2022-01-01 18:15:51 -07:00
Eric Le Lay b8065cadf7 fix 1190 ERROR: Could not create save_dir on windows
"C:\gpodder-xxx\config\Downloads" results in
scheme="c" and path="\gpodder-xxx\config\Downloads"
(not double backslash)
2021-11-28 22:02:12 +01:00
Eric Le Lay ec6b63960c
Merge pull request #1191 from gpodder/fix-1190-gio-windows
fix #1190 ERROR: Could not create save_dir on windows with gio
2021-11-06 16:12:11 +01:00
Eric Le Lay 00b421b929 fix #1190 ERROR: Could not create save_dir on windows with gio
util.new_gio_file returned a GDummyFile, where every operation failed,
in this case make_directory_with_parents.
2021-11-01 16:36:57 +01:00
Marcel Ackermann 2f42c11e59
remove unused import
closes https://github.com/gpodder/gpodder/issues/1187
2021-10-30 11:13:00 +02:00
auouymous 10e48a3ea5
Merge pull request #1174 from auouymous/fix-youtube-json
Improve Youtube initial player response regular expression.
2021-10-28 03:31:24 -07:00
auouymous ce99daf065
Merge pull request #1171 from auouymous/fix-1147
Fix youtube-dl re-download after a failed download
2021-10-28 03:27:56 -07:00
auouymous 5499658ee3
Merge pull request #1172 from tpikonen/stockless-episodeselector
Remove deprecated GTK features from episodeselector
2021-10-28 03:23:30 -07:00
Teemu Ikonen 5990e57a81 episodeselector: Add underline mnemonics to all buttons
Set use-underline on all buttons in gpodderepisodeselector.ui.

Add underscore mnemonics to the special 'gpodder-download' button and in
'remove-button' and 'ok-button' args of callers in main.py.
2021-10-18 15:30:54 +03:00
auouymous cae617701f Support youtube 'user' feed URLs in for_each_feed_pattern(). 2021-10-14 19:28:05 -06:00
auouymous 8a403d2783 Optimize get_youtube_id().
The watch URL is the most common and should be checked first. The swf
URL probably no longer works but can be kept for compatibility.
2021-10-14 19:19:12 -06:00
auouymous 6ced881d74 Improve Youtube initial player response regular expression.
The text may contain "};" patterns inside the initial player response.
And the non-greedy regex would fail to match the entire IPR, causing it
to fail during JSON decoding.
2021-10-13 21:58:24 -06:00
auouymous 8d0bfce460 Remove dead code in get_foreground_color(). 2021-10-13 15:34:26 -06:00
Teemu Ikonen ce66b5fa62 episodeselector: Remove GtkStock usage
* Rename gPodderEpisodeSelector constructor kwarg 'stock_ok_button'
   to 'ok_button'. Change callers in main.py to use it with text labels
   instead of Gtk.STOCK_* values
 * Set transient for parent widget
2021-10-12 23:14:14 +03:00
auouymous db2aa385d0 Cancel failed task before streaming.
livestream to be streamed, after realizing it was a livestream. This
however caused the youtube-dl extension to fail when downloading DRM
content after gpodder failed to download it, because the partial file
was missing.

This removes that fix and properly cancels the failed task before
streaming to remove the partial file.

Fixes #1147.
2021-10-11 20:11:18 -06:00
auouymous 263c4ad9fe Actually delete partial file when cancelling.
Calling run() with CANCELLED state only returns without performing any
work. The CANCELLING state actually deletes the partial file and
recycles the task.
2021-10-11 19:53:00 -06:00
Eric Le Lay 69e242184c
Merge pull request #1145 from auouymous/delay-window-position-restore
Delay restoring window position until after it has been shown.
2021-10-11 22:16:42 +02:00
Eric Le Lay 3aba6ddea5
Merge pull request #1156 from tpikonen/stockless-dialogs
Remove deprecated GTK features from simple dialogs
2021-10-09 18:06:01 +02:00
auouymous ab61a04d0c
Merge pull request #1161 from auouymous/paused-episode-icon
Paused episode icon
2021-10-05 18:48:25 -07:00
auouymous 9daca64e2e
Merge pull request #1160 from auouymous/use-icons-for-pausing-cancelling
Use icons when pausing or cancelling tasks.
2021-10-05 18:31:11 -07:00
Teemu Ikonen e8c6969abd gPodderExportToLocalFolder: Remove deprecated GTK stock items
gpodderexporttolocalfolder.ui:
 * Save with Glade 3.38.2
 * Replace GTK stock labels with text

exportlocal.py: Set transient for parent (was not set before)
2021-09-17 22:11:10 +03:00
Teemu Ikonen 6483059d41 gPodderConfigEditor: Remove deprecated GTK features
gpodderconfigeditor.ui:
 * Save with Glade 3.38.2, require GTK 3.16
 * Replace gtk-close with text label
 * Use Dialog internal action_area for Close button
 * Add underline accelerator for '_Show All'

configeditor.py: Set transient for parent
2021-09-17 22:11:10 +03:00
Teemu Ikonen 1ef54e3216 gPodderAddPodcast: Remove deprecated GTK stock items
gpodderaddpodcast.ui:
 * Save with Glade 3.38.2, require GTK 3.16
 * Set can-focus to True where needed
 * Replace GTK stock labels with text

addpodcast.py: Set transient for parent
2021-09-17 22:11:10 +03:00
Teemu Ikonen f1739d3212 gPodderWelcome: Remove deprecated GTK features
gpodderwelcome.ui:
 * Save with Glade 3.38.2
 * Replace gtk-cancel stock with text label
 * Replace padding with margins
 * Replace border-width with margins
 * Set can-focus to True on buttons

welcome.py: Set transient for parent
2021-09-17 22:11:10 +03:00
auouymous 6feb312936 Don't recycle failed or paused tasks. 2021-09-16 18:01:10 -06:00
auouymous d20fbbe8a0 Set a paused icon in episode list when an episode is paused. 2021-09-14 04:10:40 -06:00
auouymous d508a3df8d Show paused tasks in progress tab. 2021-09-14 03:34:27 -06:00
auouymous 65aa1c679a Use icons when pausing or cancelling tasks.
This avoids shifting the list left and then right for single tasks. It
also gives more feedback that the task is being paused or cancelled.
2021-09-14 02:40:17 -06:00
Mark Weaver ed5d18e1b0 fixes #1152 and an odd corner case (#1155)
* #1152: fix re-ordering downloads list

* fix downloading a task that's already been removed from the download list

* fix download/delete/download of the same episode

* fix pausing/cancelling sync tasks; clean up partially synchronised files

* fix cancelling a failed download

* make failed/paused/cancelled mutually exclusive so the code has less paths (and hopefully is easier to follow)
2021-09-14 00:53:15 -07:00
blushingpenguin c86c7412ae remove unused variables 2021-09-13 15:45:39 +01:00
Teemu Ikonen 2ded35705e
Preferences: Remove deprecated GTK features (#1154)
* gpodderpreferences.ui: Save with Glade 3.38.2

* gpodderpreferences.ui: Add tab label children

* gpodderpreferences.ui: Return notebook pages to correct order

* gpodderpreferences.ui: Use named icons, replace stock-ids

* gpodderpreferences.ui: Remove extra rows and columns from table_video

* gpodderpreferences.ui: Use traditional indicator for CheckButtons

* gpodderpreferences.ui: Set can-focus to True where appropriate

* gpodderpreferences.ui: Add border-width to mygpo_config

* gpodderpreferences.ui: Add margins around dialog ButtonBox

* gpodderpreferences.ui: Replace gtk-close stock label with text

* preferences.py: Set transient for parent

* podcastdirectory.py: Set transient for parent

This was accidentally removed in d9a0c7d15a.

* gpodderchannel.ui: Downgrade GTK requirement to 3.16

* README.md: Increase minimum GTK version to 3.16
2021-09-10 17:14:12 -07:00
auouymous 3d966b95b2
Merge pull request #1149 from blushingpenguin/queue
#1117, #1137: fixes for pause/resume/cancelling download tasks
2021-09-08 16:23:18 -07:00
auouymous 9d92e86bc1
Merge pull request #1141 from auouymous/delay-column-reorder
Delay episode treeview column reordering.
2021-08-31 22:03:40 -07:00
blushingpenguin 20b0ed3aae #1117, #1137: fix another lint issue 2021-08-31 14:43:55 +01:00
blushingpenguin 3c322b610a Merge branch 'master' into queue 2021-08-31 14:42:20 +01:00
blushingpenguin 723c052fc2 #1117, #1137: fix lint issue 2021-08-31 14:40:13 +01:00
blushingpenguin 8760b6d315 #1117, #1137: fix re-introduced race queuing tasks 2021-08-31 14:37:36 +01:00
blushingpenguin 68195acc00 #1117, #1137: fixes for pause/resume/cancelling download tasks 2021-08-30 15:45:20 +01:00
auouymous dd299bce25 Delay restoring window position until after it has been shown.
The window manager might not honor the move request until after the
window is shown. This can cause window contents to be rendered at
a shifted offset inside the window borders.
2021-08-28 02:59:46 -06:00
Thomas Perl 4310fdbf5e Gtk UI: Use a TextView for dialogs with multiple text lines 2021-08-28 09:06:01 +02:00
Thomas Perl 7a4afcc198 Gtk UI: Use secondary text in Gtk.MessageDialog for formatting 2021-08-28 09:02:24 +02:00
auouymous a8386049af Delay episode treeview column reordering.
Moving columns before shown can produce "Negative content height"
warnings for themes with vertical padding or borders on treeview header
buttons.
2021-08-26 05:34:16 -06:00
Eric Le Lay 9a3eda7d6b
Merge pull request #1130 from auouymous/youtube-duration
Query duration for youtube episodes when not using youtube-dl.
2021-08-18 14:11:07 +02:00
Eric Le Lay 78bff43731
Merge pull request #1131 from auouymous/move-scale_pixbuf-to-util
Move scale_pixbuf to util.py and apply #1107 refactoring.
2021-08-18 14:09:21 +02:00
Eric Le Lay 90d2112c76
Merge pull request #1108 from ollieparanoid/close-after-startup
bin/gpodder cli: add sections and --close-after-startup option
2021-08-18 14:06:49 +02:00
auouymous d0171a7c8c Allow distributions to disable the update check.
Fixes #1103.
2021-08-16 18:37:33 -06:00
Oliver Smith ec60a55c36
bin/gpodder: add --close-after-startup option
Add an option that helps with measuring / profiling startup performance.
2021-08-15 20:36:45 +02:00
auouymous 114f708c74 Move scale_pixbuf to util.py and apply #1107 refactoring. 2021-08-14 23:42:17 -06:00
auouymous bba167b811 Query duration for youtube episodes when not using youtube-dl.
The duration is not available in the youtube feed and requires a request
for each episode. It was set when downloading but the user had no way of
knowing how long an episode was before downloading it. Live streams do
not have a duration until they end, and remain blank until downloaded or
the next update.

This will increase the time it takes to update feeds, with new
subscriptions possibly taking 16x longer to update due to the 16
requests vs the previous single request. Updating existing feeds
will only have an additional request for each new episode.
2021-08-14 23:09:07 -06:00
Teemu Ikonen 360eea3e31 adaptive/preferences.py: Require correct versions of Gdk and Gtk 2021-08-14 19:45:17 +03:00
Teemu Ikonen 526d2128c8 Fix isort / make lint 2021-08-14 19:30:09 +03:00
Teemu Ikonen 3564eedd7d Revert "Swipe hack to fix libhandy behaviour"
This reverts commit 6b62e79f3f.

Nested swipeable containers seem to work better in libhandy 1.2.2.
2021-08-13 10:03:02 +03:00
Teemu Ikonen b8497500e4 Retire adaptive/podcastdirectory.py, patch desktop version 2021-08-12 19:50:38 +03:00
Teemu Ikonen 0bcc751051 Load menus.ui from ui/adaptive 2021-08-12 19:50:38 +03:00
Teemu Ikonen 9c9f526dbb Set ui_folder to adaptive in gPodder instance 2021-08-12 19:50:38 +03:00
Teemu Ikonen 14f3584902 Set ui_folder to adaptive in gPodderPreferences instances 2021-08-12 19:50:38 +03:00
Teemu Ikonen ec68adb1d2 Set ui_folder to adaptive in gPodderPodcastDirectory instances 2021-08-12 19:50:38 +03:00
Teemu Ikonen 8ba6122592 Set ui_folder to adaptive in gPodderEpisodeSelector instances 2021-08-12 19:50:38 +03:00
Teemu Ikonen 96a5a31af4 Partially revert "Show Progress button also when syncing to device"
This reverts commit b5b86da519 on the
part of syncui.py.

Remove start_cb, show the progress button on main.py.
2021-08-12 19:50:38 +03:00
Teemu Ikonen 37d93cd5e5 Unbreak Delete Podcasts dialog 2021-08-12 19:50:38 +03:00
Teemu Ikonen bf23ef88ad Remove new_episodes_forward button from episodeselector 2021-08-12 19:50:38 +03:00
Eric Le Lay 3f695b0e56
Merge pull request #1127 from auouymous/click-to-open-channel-settings
Double-click or press Enter to open channel settings.
2021-08-12 18:06:31 +02:00
auouymous c35c6aa887 Double-click or press Enter to open channel settings.
This provides similar behavior to opening shownotes for episodes.
2021-08-12 06:27:53 -06:00
Eric Le Lay f74eba2e72 fix #1099 folder not escaped when podcast renamed from dialog 2021-08-12 11:15:06 +02:00
Teemu Ikonen b2514bc8c1 Remove episode_list_forward button 2021-08-12 11:50:24 +03:00
Teemu Ikonen cdd573f93f Remove channel_list_forward button 2021-08-12 11:44:51 +03:00
Teemu Ikonen 5eee09ce49 Merge branch 'master' into dev-adaptive 2021-08-12 11:34:46 +03:00
Teemu Ikonen 52a02a9658 gPodderShownotesLabel: Make episode heading a clickable link 2021-08-12 11:33:26 +03:00
Teemu Ikonen 7003148ec8 Merge commit '0578ba503e2dd772b6bdfa4df90ce537ed7c481f' into dev-adaptive 2021-08-12 10:02:45 +03:00
Teemu Ikonen cfc65c6c0c gPodderShownotesLabel: Reset shownotes to top when changing episodes 2021-08-12 09:59:07 +03:00
Teemu Ikonen 7179478d27 Merge commit '7e6e6c002884813c35a33429565823acd40f2cdd' into dev-adaptive 2021-08-12 09:58:29 +03:00
Teemu Ikonen 994ad483b1 Add checkbutton_delete_deleted_episodes to adaptive preferences 2021-08-12 09:53:27 +03:00
Teemu Ikonen 446a9937bc Use set_download_list_state() in gPodderSyncUI done_cb() 2021-08-11 21:45:54 +03:00
Teemu Ikonen 03a915bbd4 Merge commit '99c46e89e3e2ceb88d0be140789c63419a5fef2c' into dev-adaptive 2021-08-11 20:43:51 +03:00
Eric Le Lay 71f8ee70b3
Merge pull request #1110 from gpodder/fix-missing-audio_webm
Fix missing extension when downloading youtube-dl format=worstaudio (audio/webm mimetype)
2021-08-11 18:20:42 +02:00
Eric Le Lay b034f3dc29
Merge pull request #1120 from tpikonen/version-plus
Allow '+' as a version number separator
2021-08-10 11:14:25 +02:00
Teemu Ikonen 5bbc920a01 Support PEP 440 local version label
Handle public and local version parts of __version__ in version
comparisons and when parsing __version_info__.
2021-08-06 19:54:24 +03:00
auouymous 5ec9b60e3c Add option to require control click to sort episodes.
This avoids accidental sorting when trying to select the top episode.

Requested by Fourhundred Thecat on mailing list, but is also an issue
I've run into many times.
2021-08-05 04:40:53 -06:00
Teemu Ikonen 93b0bf9c28 Set adaptive release version and date 2021-08-04 16:29:21 +03:00
Teemu Ikonen 6cf12077c8 Remove adaptive version of channel dialog 2021-08-04 15:08:28 +03:00
Teemu Ikonen 7b2a3840e5 Fix pycodestyle errors 2021-08-04 15:06:57 +03:00
Teemu Ikonen 84a68f9e47 Use gPodderChannel ui from gtk/ and code from desktop/ 2021-08-04 14:00:42 +03:00
Teemu Ikonen 33c84d450c BuilderWidget: Allow defining ui_folder per instance 2021-08-04 14:00:15 +03:00
Teemu Ikonen 609968811b Merge tag '3.10.21' into adaptive
gPodder 3.10.21 release
2021-08-04 13:57:04 +03:00
Teemu Ikonen 4a5ef8eb0b gPodderShownotesLabel: Support dict-based details_fmt 2021-08-04 13:21:44 +03:00
Teemu Ikonen c660fe9517 Merge commit '8dd8b6b2cd6b6c7a0a2ef26f9a7597fcd9976437' into adaptive 2021-08-04 13:14:50 +03:00
Teemu Ikonen 803cfc375d Use a string, not stock name for Delete episodes Delete button 2021-08-04 11:07:46 +03:00
auouymous 016cde21bb
Merge pull request #1115 from blushingpenguin/master
fix download limit, queued tasks having wrong icon
2021-07-31 18:48:44 -07:00
auouymous 91b73ca40e Import gi only in function that need it. 2021-07-31 08:05:51 -06:00
blushingpenguin 56291c0f6f #1111: fix download limit not being respected, add new tasks in the queued state so they render correctly in the ui 2021-07-31 08:23:23 +01:00
auouymous 776b9b850e Fix additional linting issues. 2021-07-29 18:10:26 -06:00
auouymous 3c2362ebe1
Merge pull request #1112 from auouymous/fix-1054-linting
Fix linting issues from #1054
2021-07-29 17:02:17 -07:00
Eric Le Lay efcdb905e8 fix last linting errors 2021-07-29 21:52:51 +02:00
Oliver Smith 9b6149b9f3
gtkui: properly scale cover/pill on hires displays
Fix the cover images and "pill" looking blurry on high resolution
displays. For example, when the adaptive version of gPodder is used with
Phosh on the PinePhone.

Get the scale parameter from the gtkTreeView object and pass it down to
the cover thumbnail size and to draw_text_pill. If the scaling is not 1,
then use the new draw_iconcell_scale() function to draw the pixbuf with
high resolution.
2021-07-29 20:58:57 +02:00
auouymous 106e2f4fcd Fix linting issues from #1054 2021-07-27 21:44:04 -06:00
Eric Le Lay 5e857fd52a Fix missing extension when downloading youtube-dl format=worstaudio
See #1099 for a repro feed
2021-07-27 19:07:26 +02:00
Eric Le Lay 8f9159ebc7
Merge pull request #1098 from auouymous/make-text-shownotes-title-clickable
Make the text shownotes title a clickable and copyable link.
2021-07-26 21:13:55 +02:00
Oliver Smith d8d68e19e2
gtkui: refactor resize_pixbuf_keep_ratio
Do all image size calculation before calling scale_simple, so it only
needs to be called once.

Add a debug log message, since scaling cover images actually takes some
time and it's good to know the target resolution. (On my PinePhone,
scaling these cover images delays startup significantly and thumbnails
are too small when the program is scaled in the Phosh UI).

While at it, return early if no resize is needed so the changed and
result variables can be removed.

Calling scale_simple twice happens with the previous code, if the height
of the source image is greater than max_image_side and greater than the
width. In that case, the resulting image has less quality since the
second scale_simple already works with a scaled down image and scaling
takes twice as long. In practice most podcasts have square artwork so
I assume this didn't have much of a practical effect. But I care about
the log message and figured this would be the most elegant way to add it.
2021-07-24 09:21:45 +02:00
Oliver Smith 71709769c4
gtkui: fix loading of cached thumbnails
Due to this bug, thumbnails did not get loaded from the sqlite database,
but instead were regenerated on each start. Depending on the device this
leads to significant startup slowdown (30 podcast -> ~20s slowdown on my
PinePhone).
2021-07-23 20:20:53 +02:00
Eric Le Lay 04d0ea26d7
Merge pull request #1094 from auouymous/create-html-description-when-empty
Create an html description when none provided.
2021-07-23 15:06:53 +02:00
Eric Le Lay 7e6e6c0028
Merge pull request #1093 from auouymous/scroll-shownotes-to-top
Reset shownotes to top when changing episodes.
2021-07-23 15:06:26 +02:00
Eric Le Lay 37c2e2ef8d
Merge pull request #1096 from auouymous/restore-window-maximize-state
Restore window maximize state.
2021-07-23 15:06:14 +02:00
Eric Le Lay 99c46e89e3
Merge pull request #1054 from blushingpenguin/master
use Gio for file system based device sync (allows mtp:// urls)
2021-07-23 15:04:59 +02:00
auouymous 3a4915ca7d prepare 3.10.21 release 2021-07-19 22:58:51 -06:00
auouymous 1dafe6e3d6 Fix link in channel dialog by connecting signal and opening website. 2021-07-18 20:17:17 -06:00
auouymous 39f5f55ef5 Save and restore channel dialog state. 2021-07-18 20:12:30 -06:00
auouymous a5bb8b6652
Merge pull request #1071 from tpikonen/narrow-channel-dialog
Narrow channel dialog
2021-07-18 18:59:31 -07:00
auouymous db651427ee Use util.urlopen instead of requests.get for youtube. 2021-07-18 04:52:01 -06:00
auouymous 75567e618b
Merge pull request #1092 from auouymous/fix-soundcloud-api
Fix soundcloud API change when adding new channels.
2021-07-18 03:35:25 -07:00
auouymous 3dd11edf2b Fix soundcloud API change when adding new channels.
The API no longer uses the username to query user info. This requires an
extra page fetch to find the user ID when adding new users.
2021-07-18 04:27:40 -06:00
auouymous 39b3f8eb04 Fix links in About dialog by connecting signal and opening website. 2021-07-17 22:09:34 -06:00
auouymous 0578ba503e Make the text shownotes title a clickable and copyable link. 2021-07-17 20:38:10 -06:00
auouymous 482a52cb79 Restore window maximize state. 2021-07-17 00:56:02 -06:00
auouymous b0ebfd5333 Create an html description when none provided.
The youtube-dl extension code is moved into gPodder to provide this
feature for all feeds lacking an html description. This enables
clickable links inside non-html descriptions. And if available, an image
tag for the episode art URL is prepended to the html description
(currently only available in html shownotes).
2021-07-16 21:03:38 -06:00
auouymous e9353588f3 Reset shownotes to top when changing episodes.
This prevents the title from being partially clipped when moving between
episodes after scrolling the shownotes for one of them.
2021-07-16 05:16:08 -06:00
blushingpenguin c9bbc4f799 fix deleting episodes deleted from device (skip_locked was removed in 62bb7efade) 2021-07-12 11:32:49 +01:00
blushingpenguin 874bd35c81 clean up temporary file 2021-07-12 10:52:43 +01:00
blushingpenguin 13fb6e68c9 workaround mtp devices possibly not having partial write capabilities 2021-07-12 07:39:57 +01:00
blushingpenguin e09f5aecad fix playlist sync 2021-07-11 19:52:34 +01:00
auouymous 7429bc1904
Merge pull request #1084 from auouymous/change-youtube-endpoint-order
Try new youtube endpoint first and fallback to the old endpoint.
2021-07-08 21:45:06 -07:00
auouymous 6e48992b31 Skip non-integer youtube formats. 2021-07-07 01:59:41 -06:00
auouymous d6dd5b62bf Try new youtube endpoint first and fallback to the old endpoint. 2021-07-06 21:07:47 -06:00
auouymous 14bf8b44b7 Fix issues with #1073 pull request. 2021-07-06 19:05:23 -06:00
auouymous 82d926bcdd
Merge pull request #1073 from 18928172992817182/youtube-gdpr
Fix support for automatically accepting GDPR youtube consents
2021-07-06 17:56:13 -07:00
Teemu Ikonen fe161d0391 Set transient parent in Python code
This was set in the ui-file, but Glade does not like it.
2021-07-05 13:26:51 +03:00
Teemu Ikonen 0ee6598d6a gpodderchannel.ui: New layout
General:

 * Put channel info under 'Info' page in the notebook and settings
   under 'Settings', remove 'Advanced' page
 * Add GtkScrolledWindows to GtkNotebook pages
 * Don't change Channel editor window title to channel title
 * Replace 'Close' button with 'OK' and 'Cancel'

Info tab:

 * Use a GtkBox with a 'view' style class to show podcast info
 * Add a placeholder icon for podcast image
 * Add a GtkStack to switch between title Label and Entry
 * Replace description TextView by a selectable Label
 * Use a selectable label for channel website URL

Settings tab:

 * Use GtkListBox for settings items, activate the correct widget
   in the GtkListBoxRow on 'activate' signal
 * Replace Checkboxes with Switches
 * Replace plus icon with the symbolic version
 * Use GtkGrid for Authentication settings widgets
2021-07-05 13:16:31 +03:00
auouymous 8c56e71b0b Don't parse youtube feed URLs.
This fixes a bug where the feed URL is parsed to the channel URL,
potentially causing issues subscribing to feed URLs, but causing gpo
failures when enabling or disabling youtube channels.
2021-06-30 22:30:40 -06:00
auouymous 63196ae0e1 Fix "gpo sync" failure.
The skip_lock parameter was not removed from one of the
delete_episode_list() calls, causing a failure syncing with gpo.

Fixes #1077
2021-06-23 21:17:26 -06:00
blushingpenguin 58ef73b3e6 remove unreachable code 2021-06-20 06:36:16 +01:00
gustaf 3003c8a4c0 Fix support for automatically accepting GDPR youtube consents 2021-06-18 15:40:26 +02:00
blushingpenguin 2e3a9fba2e Merge branch 'master' of github.com:gpodder/gpodder 2021-06-17 22:23:01 +01:00
auouymous c31ba52f99
Merge pull request #1065 from auouymous/fix-soundcloud
Prevent soundcloud from downloading existing episodes each update.
2021-06-15 01:02:30 -07:00
Teemu Ikonen a11a99b353 Allow translation of shownotes header bar buttons
Change 'Cancel download' to 'Cancel', to make it fit the button.
2021-06-13 14:20:27 +03:00
blushingpenguin b6d5836827 remove old, disabled mtp support 2021-06-12 16:27:30 +01:00
blushingpenguin e2a512a34c add mount call for CLI; fix done_callback not being called if opening device fails; handle errors from querying device 2021-06-12 15:45:53 +01:00
auouymous 140a351bce Fix DRM content detection for youtube episodes. 2021-06-11 04:52:36 -06:00
Teemu Ikonen dcf6a3371e Set adaptive release date 2021-06-10 22:45:06 +03:00
Teemu Ikonen 12556a1a5e Add +1 to version in __init__.py 2021-06-10 14:18:38 +03:00
Eric Le Lay 8dd8b6b2cd fix 'msgid' format string with unnamed arguments cannot be properly localized warning 2021-06-10 10:28:54 +02:00
blushingpenguin 5f6e3ac285 Merge branch 'master' of github.com:blushingpenguin/gpodder 2021-06-09 06:35:57 +01:00
blushingpenguin 975b0338ab Merge branch 'master' of github.com:gpodder/gpodder 2021-06-09 06:35:20 +01:00
Teemu Ikonen a7d5fef572 Use view-sidebar-end-symbolic in adaptive podcastdirectory 2021-06-08 23:24:06 +03:00
Teemu Ikonen 63e24bd8c1 Merge branch 'master' into adaptive 2021-06-08 23:23:34 +03:00
blushingpenguin e93dcddb56 windows fixes 2021-06-08 20:55:56 +01:00
Teemu Ikonen 11d69da129 Merge commit '2ba4ada3ea88b06578dda844804e0c6f412a2169' into adaptive 2021-06-08 19:25:44 +03:00
Teemu Ikonen 08759da066 Merge commit 'a13ca1b99b1ab1089611691118ecd5ba3ca86d6e' into adaptive
Fix conflicts in on_{item,episodes}_cancel_download_activate.

Conflicts:
2021-06-08 19:21:18 +03:00
auouymous 91cf6c9410 Prevent soundcloud from downloading existing episodes each update.
GUIDs are stored in the database as strings, but soundcloud creates them
as integers. Python no longer succeeds when comparing these integers to
the string keys from the existing database entries. This produces new
episodes on every update which then collide with the existing GUIDs.
2021-06-08 00:55:35 -06:00
auouymous ad3e0a5d5d prepare 3.10.20 release 2021-06-06 20:24:06 -06:00
blushingpenguin b40f283499 fix race where download ui updates could be turned off for subsequent tasks if after adding a task it completed very quickly on another thread; fix use of Gtk.ListView as a multi-threaded container (sometimes returns None for an item and causes an exception) 2021-06-05 22:24:04 +01:00
blushingpenguin 729dbee534 more threading fixes: fix race cleaning up folders by ignoring failure to remove a folder (two threads could try to do this at the same time); log file copy errors (these seem to get lost by the ui) 2021-06-05 08:07:27 +01:00
blushingpenguin e7fab75c17 fix sync errors if multiple threads try and create the same folder, fix spawning 1 thread per sync task 2021-06-04 07:56:34 +01:00
auouymous c0d21d1967
Merge pull request #1055 from auouymous/subscribe-to-youtube-via-video-pages
Subscribe to Youtube channels via video pages
2021-06-02 20:06:13 -07:00
auouymous fa5d28e4e0 Use translation for ERROR prefix. 2021-06-01 02:07:16 -06:00
auouymous 6f620c87f5 Skip 'best' Youtube formats when using built-in support.
The best, bestvideo and bestaudio formats can be added to
`preferred_fmt_ids` for use by the Youtube-DL extension with
manage_downloads. Hoever, the built-in support would fail if it
encountered one of these formats. Skipping allows "Download with
Youtube-DL" to use them in the same way it allows adaptive formats to be
used.
2021-05-31 22:50:26 -06:00
auouymous ae2534f9ee Subscribe to Youtube channels via video pages
This finishes what began in #869.
2021-05-31 22:27:44 -06:00
blushingpenguin c1081c6678 gpo fixes: prevent warning about not setting Gst/Gio versions, not actually mounting volumes always succeeds 2021-05-31 13:21:06 +01:00
blushingpenguin d019a6e99e Merge branch 'master' of github.com:blushingpenguin/gpodder 2021-05-31 07:17:32 +01:00
blushingpenguin 6d40da3cb5 use Gio for file system based device sync (allows mtp:// urls) 2021-05-31 07:12:13 +01:00
Eric Le Lay 7ef74ee43b
Merge pull request #1031 from tpikonen/narrow-podcastdir
Allow a narrower podcast directory window
2021-05-26 21:28:38 +02:00
Teemu Ikonen fbc40e6623 Use gPodderShownotesLabel for text shownotes 2021-05-24 20:31:41 +03:00
Teemu Ikonen 9500501dfd Add gPodderShownotesLabel
A gPodderShownotes variant using GtkLabel.
2021-05-24 20:31:16 +03:00
Teemu Ikonen f589cdd80c Disable episode list drag and drop
Having DnD enabled makes Gtk confused when swiping on the TreeView on a
touchscreen.
2021-05-24 20:31:06 +03:00
auouymous a2fc81ee82
Merge pull request #1043 from auouymous/improve-youtube
Fix youtube support and use requests for downloads.
2021-05-23 18:05:32 -07:00
Teemu Ikonen 7598b79ee2 Make podcastdirectory toggle wider 2021-05-23 20:46:53 +03:00
auouymous 0e9c265a7c
Merge pull request #1044 from auouymous/streaming-fixes
Streaming fixes
2021-05-21 22:27:01 -07:00
auouymous 5dfce4d1e1
Merge pull request #1037 from auouymous/cancel-failed-download-when-deleting-episode
Cancel failed download in progress tab when deleting episode.
2021-05-21 22:22:05 -07:00
auouymous fe015753d4
Merge pull request #1035 from auouymous/refresh-cover-from-channel-menu
Make refreshing channel image more discoverable and easier to do.
2021-05-21 22:18:44 -07:00
auouymous 2ba4ada3ea Fix "Open" item on episode context menu and give it an icon.
Gtk.STOCK_OPEN was displaying "gtk-open" as the label. The new name and
icon matches those in the toolbar.
2021-05-21 23:06:38 -06:00
auouymous 90682b7413 Use 'stream' instead of 'download' in error message when streaming. 2021-05-21 21:22:57 -06:00
auouymous 7177834d24 Fix youtube support and use requests for downloads.
The `get_video_info` URL no longer exists (without html5=1) and instead
of throwing a 404 not found error, http_request() was returning an empty
page which threw a no formats found error. The new requests code will
throw the correct error if this happens in the future.

The player response data is still fetched from `get_video_info` but will
fallback to the `watch` URL if `get_video_info` is eventually removed.
The `watch` URL will fail for anyone in Europe due to it redirecting to
a GDPR cookie consent page.

Error messages have been shortened by removing video ID, which could be
removed from the code in the future.
2021-05-21 06:06:02 -06:00
auouymous 2101cff414 On playback, clear download error and set new error, if one.
Downloading a live stream sets an error, streaming it then resets
errors. Streaming DRM youtube content now sets an error instead of
throwing a stack trace to console.
2021-05-20 07:00:55 -06:00
auouymous 5fc0871078 Delete empty partial files immediately after download failure. 2021-05-20 06:35:18 -06:00
auouymous 39db5f4c09 Show section if any of its channels have an update error.
A channel with an update error might not any have visible episodes. When
its section has no other visible channels, the section must still be
displayed to prevent the channel with an error from appearing to be in a
different section.
2021-05-17 20:26:56 -06:00
Teemu Ikonen 4156b68f9f Merge branch 'master' into adaptive 2021-05-17 22:38:54 +03:00
Eric Le Lay 56e8f4755f
Merge pull request #949 from tpikonen/ytdl-streaming
Allow episodes with youtube-dl compatible URLs
2021-05-16 17:44:48 +02:00
Eric Le Lay 5a0aacdc47
Merge pull request #1039 from auouymous/episode-error-icon
Show error icon on episodes that fail to download.
2021-05-16 17:41:19 +02:00
Eric Le Lay 9a6cdf83af
Merge pull request #1034 from auouymous/fix-drag_data_received
Fix "GtkSelectionData has no 'data'" exception in drag_data_received().
2021-05-16 17:02:44 +02:00
auouymous 1e10a4f9bd Show error icon on episodes that fail to download. 2021-05-14 20:24:50 -06:00
auouymous a13ca1b99b Cancel failed download in progress tab when deleting episode. 2021-05-13 21:54:26 -06:00
auouymous 1e6316bb99 Make refreshing channel image more discoverable and easier to do. 2021-05-13 18:07:18 -06:00
auouymous 8b4a4e381a Support dragging https cover images. 2021-05-13 00:55:47 -06:00
auouymous e43686b2ea Fix "GtkSelectionData has no 'data'" exception in drag_data_received().
This happens when dragging an image URL to the cover art in channel
dialog.
2021-05-13 00:26:34 -06:00
Teemu Ikonen 482f3d40dc Improve media detection when parsing feeds
Skip image and application URLs in enclosure if media with audio or
video is found, or if a CustomDownloader exists for episode.link URL.
2021-05-12 19:16:35 +03:00
Eric Le Lay 5d4345b8cd
Merge pull request #1028 from juergenhoetzel/config_permissions
Create config file with group/world permissions revoked on unix-like platforms
2021-05-10 20:58:52 +02:00
Juergen Hoetzel 166f6618a2 Create config file with group/world permissions revoked
The config file contains sensible information (user/password).

Also remove unused import.
2021-05-10 19:41:10 +02:00
Teemu Ikonen 124d7b38a2 Add more episode details to shownotes
Add a line after subheading in shownotes with episode release date,
length and size.
2021-05-10 16:37:35 +03:00
Teemu Ikonen d1683d2203 util.format_filesize(): Use non-breaking space between value and unit 2021-05-09 22:02:49 +03:00
Teemu Ikonen 87a607f65b Replace 'hdy' by 'adaptive' everywhere 2021-05-09 20:52:20 +03:00
Teemu Ikonen ddb4e345d1 Checkbox to disable connection checking in adaptive UI 2021-05-09 20:52:15 +03:00
Teemu Ikonen f3c5477abd Merge branch 'master' into adaptive 2021-05-09 20:01:25 +03:00
auouymous 45797eeaea Improve channel and episode searching.
Hide the "All episodes" channel proxy while performing a channel search.
Replaces #1019.

Hide sections that don't contain channels matching the query.

Reset the channel or episode view when query is cleared with backspace.
This is especially useful when "Always show Find entries" is enabled.
2021-05-08 03:28:38 -06:00
Teemu Ikonen 72becfa0f9 Use GLib.timeout_add to show flap in podcastdirectory
The flap was shown in a separate thread created with run_in_background,
but it's probably better to run GUI updates always in the main thread.
2021-05-03 22:14:34 +03:00
Teemu Ikonen 1de2d53383 Add view-sidebar-start-symbolic icon, use it on flap button 2021-05-01 21:57:31 +03:00
Teemu Ikonen 589b849e01 Don't update shownotes when they are not visible 2021-04-27 12:31:48 +03:00
Teemu Ikonen e2ab980e30 Merge tag '3.10.19' into 1.1-adaptive
gPodder 3.10.19 release
2021-04-26 21:59:59 +03:00
Teemu Ikonen bde52b472c Merge tag '3.10.18' into 1.1-adaptive
gPodder 3.10.18 release
2021-04-26 21:59:48 +03:00
auouymous 49a1e57eb3 Only show 5 titles. 2021-04-23 12:01:02 +02:00
auouymous bac622c045 Remove blank line between multiple titles. 2021-04-23 12:01:02 +02:00
auouymous 58b47945d6 Indent title with a bullet prefix 2021-04-23 12:01:02 +02:00
auouymous d68368dd39 Escape HTML entities in titles 2021-04-23 12:01:02 +02:00
auouymous 9ddf15746e Show channel or episode titles in delete dialog
Provides a second, and better, indicator of which channel or episode is
being deleted. Only 8 titles up to 60 characters each are shown to avoid
excessively large dialogs.
2021-04-23 12:01:00 +02:00
Eric Le Lay 59ee5c752a
Merge pull request #990 from auouymous/delete-lock
Remove skip_locked to avoid accidental deletion of episodes
2021-04-23 11:47:24 +02:00
Eric Le Lay 54bd1ac5bc
Merge pull request #991 from auouymous/toggle-new
Properly toggle deleted episodes to new.
2021-04-23 11:46:50 +02:00
Eric Le Lay 64d55dd3b2
Merge pull request #996 from auouymous/no-episode-url
Do not attempt to download episodes without an URL.
2021-04-23 11:45:41 +02:00
auouymous 844aef7c1b Add checkbox to disable connection checking.
This avoids issues with connection checking from breaking gPodder until
an update becomes available.
2021-04-23 03:42:19 -06:00
auouymous 5d1363babc Fix regex to handle missing broadcast address.
Fixes #1014.
2021-04-22 16:32:31 -06:00
auouymous 540c66efe3 prepare 3.10.19 release 2021-04-15 02:04:53 -06:00
auouymous 834106e67c Revert code to save and restore window positions.
The code was removed in #933 because GTK+ recommends window managers
should manage window position, not applications. However, Windows,
Mac(?) and some window managers don't have this ability and gPodder
becomes less usable without it.
2021-04-15 00:11:26 -06:00
auouymous daed9a6ffd prepare 3.10.18 release 2021-04-09 03:42:25 -06:00
auouymous 1c0bf62afd Do not attempt to download episodes without an URL. 2021-03-28 05:54:16 -06:00
auouymous 3060fd18ad Fix typo in comment. 2021-03-26 00:43:33 -06:00
auouymous 7c18c508f4 Properly toggle deleted episodes to new. 2021-03-23 21:56:25 -06:00
auouymous 62bb7efade Remove skip_locked to avoid accidental deletion of episodes 2021-03-23 16:49:57 -06:00
Eric Le Lay 64e8cde817 Fix #986 don't sort channels by section if sections are disabled 2021-03-20 09:28:14 +01:00
Eric Le Lay 479d56d51a fix #985 AttributeError: type object 'SeparatorMarker' has no attribute 'get_statistics' 2021-03-19 18:56:04 +01:00
Eric Le Lay 5e914eff10
Merge pull request #982 from auouymous/fix-selected-sections
Prevent an exception when sections are not shown
2021-03-18 20:52:22 +01:00
auouymous 8d42bef631 Prevent an exception when sections are not shown
Fixes #981
2021-03-17 21:16:13 -06:00
eric casteleijn af82f96ac8
Update soundcloud.py
Fix usage of a variable that was renamed in this commit: 3babb86c70 (bare except was hiding the error, but flake8 or pylint would have spotted this.)
2021-03-16 12:08:57 -07:00
Eric Le Lay 709cb970be
Merge pull request #971 from gpodder/921-select-episodes-in-section
Fix #921 select episodes in section
2021-03-13 16:28:22 +01:00
Teemu Ikonen 41336b0c97 Adaptive preferences dialog with HdyFlap 2021-03-12 11:06:03 +02:00
Teemu Ikonen 4ef0af3e12 Show flap on presenting podcast directory dialog 2021-03-12 10:57:22 +02:00
Teemu Ikonen 9db6da0c3e Adaptive gPodderPodcastDirectory with HdyFlap 2021-03-12 10:57:22 +02:00
Teemu Ikonen 35b7180130 Merge branch 'master' into adaptive 2021-03-12 10:55:50 +02:00
Teemu Ikonen 4f8383a3ae Merge commit '835e0903ed85f1b06c2fed58f9236cb595c5c950' into adaptive
Adapt model.py to new episode columns.
2021-03-12 09:47:37 +02:00
Teemu Ikonen 11407b0c96 Accept episodes if RSS link URL has a custom_downloader 2021-03-10 15:29:03 +02:00
Teemu Ikonen a33d62058a util.linux_get_active_interfaces(): Use 'ip addr' instead of 'ip link' 2021-03-10 14:47:22 +02:00
Teemu Ikonen a60183e49c util.connection_available(): Prefer 'ip' to 'ifconfig'
Closes #974.
2021-03-09 21:48:52 +02:00
Teemu Ikonen 825e21ff17 Revert "Add Webkit context to shownotes class and initialize it"
This reverts commit 90c65a3708.

Fixes #972.
2021-03-07 10:38:17 +02:00
Eric Le Lay 297c10cc40 make sections selectable + filter episodes on channel search pattern
- sections are now selectable. This enables exporting all episodes in a section to disk, etc.
- when a channel query is active, only display episodes for matching channels
  (when All Episodes or a section is selected)

Closes #921
2021-03-06 16:49:52 +01:00
Eric Le Lay e2bd98c346 check for empty player.audio or player.video 2021-03-05 20:46:49 +01:00
Eric Le Lay 2d262dc0ba
Merge pull request #970 from paper42/fix-statuscode-coverart
Fix warning on non-200 status codes in coverart
2021-03-05 12:08:54 +01:00
Eric Le Lay f6308ed139
Merge pull request #968 from auouymous/show-invalid-feed-url
Show URL that caused invalid feed error
2021-03-05 12:07:55 +01:00
Teemu Ikonen f86957c7bc Remove config.videoplayer from legacy settings
Also assume that config.player.{audio,video} are always set.
2021-03-05 11:59:34 +01:00
Teemu Ikonen 47362394a3 Remove config.player from legacy settings
Use config.player audio everywhere.

Allows setting new config.player.* variables.
2021-03-05 11:59:34 +01:00
Paper 2806f64a1a Fix warning on non-200 status codes in coverart 2021-03-05 11:56:21 +01:00
auouymous d9d83a36e7 Show URL that caused invalid feed error
The error may originate from another page in the feed, and only showing
the original URL makes it harder to track down invalid feed issues
(see #967).
2021-03-02 20:38:47 -07:00
Teemu Ikonen b389f47838 Always grab focus to treeAvailable when navigating from channelsbox
Previously the focus was grabbed by the back arrow button, which is
not visible when the leaflet is unfolded.
2021-02-26 19:33:29 +02:00
Eric Le Lay db22288108 remove useless code (already row_separator_func) 2021-02-24 21:41:59 +01:00
Teemu Ikonen d7bcf105ad Don't run episode selector row-activated cb on toggling 2021-02-20 20:38:59 +02:00
Teemu Ikonen b75f2c3198 Fix arrow key handling in TreeViews 2021-02-20 13:21:41 +02:00
Teemu Ikonen e0dd22d224 Add keyboard shortcuts to adaptive/episodeselector.py 2021-02-20 13:21:41 +02:00
Teemu Ikonen a3a04d1bb9 Disable extension menu action if its callback is None 2021-02-15 23:02:31 +02:00
Teemu Ikonen 2711d0dde5 Merge branch 'master' into test-adaptive-merge 2021-02-15 22:26:00 +02:00
Teemu Ikonen fda35448bf Convert downloads context menu to GMenu and popover 2021-02-15 22:02:10 +02:00
Teemu Ikonen 6e66e90ab3 Make Return on search entries activate the first match 2021-02-15 22:02:10 +02:00
Teemu Ikonen eebd898893 Add TreeViewHelper.set_cursor_to_first() and use where needed 2021-02-15 22:02:10 +02:00
Teemu Ikonen f90cb9d5c6 Add 'Cancel Download' state to shownotes DL button 2021-02-15 22:02:10 +02:00
Teemu Ikonen cf347aea24 Add hjkl synonyms to arrow keys (vim keys) 2021-02-15 22:02:10 +02:00
Teemu Ikonen f0f1a21646 Hack a fix to shownotes key event propagation 2021-02-15 22:02:10 +02:00
Teemu Ikonen c6af746ba8 Add global keyboard shortcuts 2021-02-15 22:02:10 +02:00
Teemu Ikonen 8a5e05b698 Make BackSpace cause search entry to grab focus, if visible 2021-02-15 19:46:09 +02:00
Teemu Ikonen eacaeb2796 Improve keyboard shortcuts 2021-02-15 13:44:54 +02:00
Teemu Ikonen 35e0bc0cf9 Disable context menu from adaptive/episodeselector.py 2021-02-15 13:43:34 +02:00
Teemu Ikonen 2c01cb0c8f Convert episodes context menu to GMenu 2021-02-15 13:43:34 +02:00
Teemu Ikonen 67125155bc Call treeview_*_show_context_menu() from long press handler 2021-02-15 13:43:34 +02:00
Teemu Ikonen 40a4c870a0 Add a long press gesture to episode treeview 2021-02-15 13:43:34 +02:00
Teemu Ikonen 644e465190 Re-enable extensions, add menu sections to app and context menus 2021-02-15 13:43:34 +02:00
Teemu Ikonen aaacfa7bca Make channels context menu a normal popover menu 2021-02-15 13:43:34 +02:00
Teemu Ikonen 6715f9e895 Reduce the amount of commented out lines in hdy_main.py 2021-02-15 13:43:34 +02:00
Teemu Ikonen b5b86da519 Show Progress button also when syncing to device 2021-02-15 13:43:34 +02:00
Teemu Ikonen d316708ba9 Add an overlay and Progress button to the main window
When downloads are active, show a button on the lower right corner
which displays the download progress dialog.
2021-02-15 13:43:34 +02:00
Teemu Ikonen dac9e98c5a Add '+' menubutton, reorganize menu items 2021-02-15 13:43:34 +02:00
Teemu Ikonen d856a78348 Pack the progress widget into a GtkDialog 2021-02-15 13:43:34 +02:00
Teemu Ikonen 6b35829c31 Use GtkButton for sort order toggling, correct icon 2021-02-15 13:43:34 +02:00
Teemu Ikonen eb89681f38 Change view and sort comboboxes to menubuttons with popovers 2021-02-15 13:43:34 +02:00
Teemu Ikonen b95da95a1b Add search button and bar to channel and episode boxes 2021-02-15 13:43:34 +02:00
Teemu Ikonen c943bf3525 Pseudo-fix for crash when two shownotes objects are used
Force text shownotes on episode selector.
2021-02-15 13:43:33 +02:00
Teemu Ikonen 90c65a3708 Add Webkit context to shownotes class and initialize it 2021-02-15 13:43:33 +02:00
Teemu Ikonen 9028f54e11 Adaptive episode selector showing details with HdyDeck 2021-02-15 13:43:33 +02:00
Teemu Ikonen dbc4847965 Force want_headerbar, comment out btnUpdateFeeds refs 2021-02-15 13:43:33 +02:00
Teemu Ikonen 46c5bd71d0 Adaptive version of channel dialog 2021-02-15 13:43:33 +02:00
Teemu Ikonen d6f7e14eb7 app.py: Update all channels with header bar refresh button 2021-02-15 13:43:33 +02:00
Teemu Ikonen 6b62e79f3f Swipe hack to fix libhandy behaviour 2021-02-15 13:43:33 +02:00
Teemu Ikonen 6f8030ee25 Add adaptive ui 2021-02-15 13:43:32 +02:00
Eric Le Lay 835e0903ed
Merge pull request #966 from auouymous/combined-episode-duration-and-size-columns
Add combined episode duration and size columns.
2021-02-14 18:25:05 +01:00
auouymous 105255864c Don't display "None" when no file size. 2021-02-14 02:27:48 -07:00
Teemu Ikonen 2b3abcbd04 Set gpodder.ui.hdy in bin/gpodder, add hdy ui-dir 2021-02-13 15:36:14 +02:00
Teemu Ikonen 3cdbc8a041 model.py: New EpisodeListModel column C_TIME_AND_PUBLISHED_TEXT 2021-02-13 15:36:14 +02:00
Teemu Ikonen 3dc0ff07b0 app.py: Add main_window to GTKApplication 2021-02-13 15:36:14 +02:00
Eric Le Lay 43a82d64e5
Merge pull request #965 from auouymous/open-website-label
Disable open website menu item if channel or episode has no website.
2021-02-13 09:46:39 +01:00
auouymous d82a3a1dd2 Add combined episode duration and size columns. 2021-02-12 20:39:04 -07:00
auouymous cb9cbb6eb2 Allow extensions to disable channel and episode context menu items. 2021-02-12 19:29:53 -07:00
Eric Le Lay 95e6206ac1
Merge pull request #954 from tpikonen/pytest-3
pytest executable as env variable and regex warning adjustments
2021-02-02 19:48:45 +01:00
Teemu Ikonen 89790e0612 Strip HTML tags from channel descriptions 2021-01-30 20:57:57 +02:00
Thomas Perl cf87ed8ee7 Gtk UI: draw_text_pill(): Make layouting calculations clearer 2021-01-15 12:54:17 +01:00
Teemu Ikonen 0e94386bd3 Use raw strings in regexp patterns, fix DeprecationWarnings 2021-01-15 13:48:21 +02:00
Eric Le Lay 26296a085a
Merge pull request #951 from tpikonen/skip-application
Skip episode media with 'application/*' mime type
2021-01-15 08:18:05 +01:00
Ana Hosu 18dfd5b602 don't reset last folder to home if cancel is selected 2021-01-15 01:25:20 +00:00
Teemu Ikonen 031f8e4350 Skip episode media with 'application/*' mime type, if there is video or audio 2021-01-10 23:07:13 +02:00
Eric Le Lay 67b0dfcc25 fix gtk warnings in mass unsubscribe dialog when podcast title contains ampersand, etc. 2021-01-05 11:47:54 +01:00
Eric Le Lay 228d8d61fc Merge #946 from tpikonen/narrow-about
Narrow down About dialog, pack items vertically
2021-01-05 11:10:39 +01:00
Eric Le Lay 881398742f remove extra License: label in about dialog 2021-01-05 11:05:21 +01:00
Eric Le Lay 3892b170da apply @auouymous extra fix when no channel exists 2021-01-05 11:00:58 +01:00
Teemu Ikonen 99c282898c Fix uncaught exception on channel list key navigation
After searching, the channel list treeview sometimes does not have a
selected item, leading to an invalid iterator when navigating the list
with arrow keys.

Select the first episode item in the TreeView model in this case.
2021-01-05 11:00:58 +01:00
Eric Le Lay c8d8399fe2
Merge pull request #943 from auouymous/episode-selector-title
Set episode selector title before creating window.
2021-01-05 10:52:29 +01:00
Eric Le Lay 936d9f3d25 apply @auouymous extra fix when no channel exists 2021-01-05 10:48:05 +01:00
Teemu Ikonen 108d60ac17 Narrow down About dialog, pack items vertically 2021-01-02 22:28:38 +02:00
auouymous 709ce68db8 Set episode selector title before creating window.
Window managers can't restore position when the initial title isn't the
same as the final title that gets stored.
2021-01-01 03:56:34 -07:00
Teemu Ikonen 0cd1d12c20 Fix uncaught exception on channel list key navigation
After searching, the channel list treeview sometimes does not have a
selected item, leading to an invalid iterator when navigating the list
with arrow keys.

Select the first episode item in the TreeView model in this case.
2020-12-30 15:00:41 +02:00
Eric Le Lay 33a144f985 remove default window x,y, following removal of position restore 2020-12-27 18:04:32 +01:00
Eric Le Lay 3d7164f8b2
Merge pull request #933 from tpikonen/fix-window-state
Get correct window size when saving UI state
2020-12-27 18:02:21 +01:00
Teemu Ikonen 529a1e9425 Do not save or restore window position 2020-12-27 18:18:11 +02:00
Eric Le Lay c119c45fcf html_shownotes: restore translation and fix margins 2020-12-26 15:19:09 +01:00
Teemu Ikonen c967f33583 Get correct window size when saving UI state 2020-12-26 00:01:17 +02:00
Teemu Ikonen 0e3b8aff9d Refactor shownotes
Use GtkOverlay to show link destination in both HTML and text shownotes.

Remove GtkTextView from HTML shownote pane and write a HTML header from
episode title and other data. The title section now scrolls with the
rest of the description text. Plain text descriptions are converted to
HTML by adding <br> tags on newlines.
2020-12-25 00:24:16 +02:00
auouymous e3a9868b84 Don't send kernel version in user-agent.
Closes #926.
2020-12-20 08:05:01 -07:00
auouymous 0da0a6ff24 Disable stack trace for network errors from requests and urllib3. 2020-11-29 16:17:38 -07:00
Eric Le Lay 3eac29f4fc
Merge pull request #897 from tpikonen/fix-view-downloaded
Option to not show new episodes on view->Downloaded
2020-11-24 17:27:53 +01:00
Eric Le Lay e632bfdbde Merge remote-tracking branch 'origin/master' into requests 2020-11-24 09:23:28 +01:00
Eric Le Lay 4e4bf49e78 prepare 3.10.17 release 2020-11-23 08:14:33 +01:00
Teemu Ikonen 03436bab2d Fix translation of Youtube playlist URL to a feed 2020-11-12 22:35:13 +02:00
Teemu Ikonen b73282bffb Add 'Always show New episodes' toggle to View menu
Adds a new boolean config item ui.gtk.episode_list.always_show_new,
which can be toggled from menu with View->Always show New episodes.

If set, the Downloaded episodes view also shows new episodes.
2020-11-10 22:55:06 +02:00
Eric Le Lay 745248b9d2 i18n: add plural feed update error notification 2020-11-10 16:20:42 +01:00
auouymous 849a1f455b Avoid stale Today and Yesterday dates by refreshing episodes daily. 2020-09-26 00:06:10 -06:00
auouymous 15c88f00e9 Remove POSITION debug print. 2020-09-16 19:18:10 -06:00
Eric Le Lay e89293c5f2
Merge pull request #875 from auouymous/fix-escapist
Fix escapist and gpo issues caused by youtube streaming.
2020-09-15 08:26:42 +02:00
auouymous f7509f1a9b Fix escapist and gpo issues caused by youtube streaming. 2020-09-14 13:35:11 -06:00
Eric Le Lay 3f9d6ec21f
Merge pull request #873 from auouymous/youtube-drm
Detect new key name for youtube DRM content.
2020-09-14 08:23:53 +02:00
Eric Le Lay f32820589e
Merge pull request #871 from auouymous/youtube-streaming-96
Add youtube streaming format for 1080p.
2020-09-14 08:23:21 +02:00
Eric Le Lay d87466f609
Merge pull request #839 from gpodder/fix-796-mkv-files
Fix #796 MKV Files Not Properly Renamed
2020-09-14 08:22:39 +02:00
auouymous 7e78b33385 Detect new key name for youtube DRM content. 2020-09-13 21:26:37 -06:00
auouymous e05db16e40 Add youtube streaming format for 1080p. 2020-09-13 18:55:47 -06:00
Eric Le Lay 642b23bff3
Merge pull request #867 from auouymous/youtube-live-streaming
Youtube live streaming support
2020-09-13 15:14:34 +02:00
Eric Le Lay bc5327dd2a actually use new mimetype to change downloaded file extension
needed for youtube-dl downloading to .mkv for some combinations of audio+video codecs.
Before this fix the new mimetype was ignored in download.py because episode.extension()
would use the existing download filename instead of using the updated mime type
2020-09-12 15:14:41 +02:00
Eric Le Lay 8503fef689 Allow streaming video episodes even if default audio player
a custom video player has to be defined
2020-09-12 14:36:16 +02:00
Eric Le Lay 89d9baf376 apply #869 fix NEW_LOCATION with same url 2020-09-12 14:05:57 +02:00
Eric Le Lay 8bb3ce697b fix NEW_LOCATION with same url, resulting in Already subscribed error message
when adding a new podcast. Seen on https://www.youtube.com/watch?v=f9qOPA05fzE
2020-09-12 14:02:41 +02:00
auouymous bc62e3bb4c Youtube live streaming support 2020-09-12 02:34:39 -06:00
Eric Le Lay dd165747b3 fix paginated feeds: res.feed already a PodcastParsedFeed
try with e.g. http://blog.binaergewitter.de/rss.xml
2020-09-11 17:23:43 +02:00
Eric Le Lay 463e460170 Merge remote-tracking branch 'origin/master' into requests 2020-09-11 17:07:03 +02:00
Eric Le Lay 966631ecc0 fix linter warning 2020-09-11 14:52:42 +02:00
Eric Le Lay c1ad49659b fix #727 gtk exception when hiding deleted episodes
background update sometimes operates on destroyed? widget, so catch the exception
and abort silently
2020-09-11 14:51:53 +02:00
Eric Le Lay be499ca64e Show update error in the podcast dialog (for copy-paste and seeing it fully) 2020-09-11 11:21:07 +02:00
Eric Le Lay 24c94d004a fix isort warnings 2020-09-07 11:48:48 +02:00
Eric Le Lay 5fe4ca3283 fix isort warnings 2020-09-07 11:40:54 +02:00
Eric Le Lay 828a363191
Merge pull request #857 from auouymous/single-channel-error-notification
only send a single channel update error notification to avoid spamming the user
2020-09-07 11:30:53 +02:00
Eric Le Lay 0d0e7f6108 retry 3 times for feedcore and other util.urlopen usage
main goal is for feedcore but I don't see how it would
hurt to retry in other (cover download, etc.) cases.
2020-09-07 11:25:13 +02:00
auouymous 80097bee34 only send a single channel update error notification to avoid spamming
the user
2020-08-18 02:41:33 -06:00
Youve 3fce988eb7 DORMANT is a power-saving mode of being online. Without this change, gPodder thinks I'm offline when I am really online. 2020-08-07 00:40:02 +02:00
Eric Le Lay 5bcd8b7eb9
Merge pull request #850 from auouymous/guid-collisions
Discard episode when its GUID collides with a newer episode.
2020-08-04 19:16:40 +02:00
Eric Le Lay 7394ca4779 add feedcore unittests 2020-07-23 22:39:46 +02:00
Eric Le Lay 831186b0c7 fix overlooked stream.text in conversion to util.response_text 2020-07-23 22:33:15 +02:00
auouymous 127034bfa6 Discard episode when its GUID collides with a newer episode. 2020-07-21 03:25:29 -06:00
Eric Le Lay 7c551ee6aa gpodder escapist_videos doesn't work with escapist magazine v2 2020-07-18 15:13:43 +02:00
Eric Le Lay 12912bed3e fix naive access to response.text
bytes for xml, utf-8 fallback for html, known encoding if available
2020-07-18 15:04:04 +02:00
Eric Le Lay d59bba5b6d fix invalid encoding used to parse feeds
eg. http://podcast.hr-online.de/hrinfo_wissenswert/podcast.xml
2020-07-14 18:45:38 +02:00
Eric Le Lay 48d851d292 rework feedcore.Fetcher interface to allow reusing it in custom channel parsers 2020-07-14 18:43:44 +02:00