UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Podbird reignited

    Scheduled Pinned Locked Moved App Development
    100 Posts 22 Posters 30.9k Views 9 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      This topic has been deleted. Only users with topic management privileges can see it.
      • D Offline
        danqo6
        last edited by

        Hello guys, I recently implemented importing podcast with OPML file (I was migrating from android so needed that feature 😄 ). It was only one day effort, but I am willing to help more. Here are some issues for the next milestone. Main issue for me is still this, it can be really anoying.

        T 1 Reply Last reply Reply Quote 2
        • T Offline
          theare27
          last edited by

          I have a workaround!

          I'm so thrilled

          It's hacky as hell but it works
          In the Music App I've created a "Podcasts" playlist

          I have a bash script that:

          Rsync's the downloaded podcasts that sit in
          /home/phablet/.local/share/com.mikeasoft.podbird/podcasts/
          to a "Podcasts" folder in
          /home/phablet/Music/

          This is set to delete in the destination any file that's removed from the origin

          An sql script executed that reads the Podbird sqlite database to get the list of current downloaded files and their titles and pull it into a current_files table in a staging sqlite db

          current_files only contains what's currently been downloaded by Podbird
          Alongside that I have an all_files table

          If a filename in current_files isn't in all_files, it is copied into all_files

          all_files will eventually contain filename of all the files that have ever been seen. It also has a previously_inserted flag that defaults to 0 when a record is created

          The script then inserts into the Music app db's track table adding every thing in current_files, but cross referencing with all_files so that it only inserts what hasn't been previously_inserted

          Once written to Music app's track table the previously_inserted flag in all_files is updated to 1

          It also deletes from the track table any entries that aren't in the staging db's current_files, so that entries aren't orphaned when Podbird auto deletes an old file

          So all in all

          • Use Podbird to manage downloads / auto-downloads/ auto-removal of Podcasts files
          • Podcast files are synced to ~/Music/Podcasts/
          • The "Podcasts" playlist in the Music App is updated with current podcasts where they haven't been added before
          • I can re-arrange the playlist in the Music App whichever way I want it
          • I can remove things from the Music App playlist that I've listened to or I don't want to listen to
          • The script runs every 5 minutes on a cron so anything new Podbird downloads will auto populate into the playlist in the Music App within 5 minutes

          I might still have to find where I was if I quit the Music app or have to reboot, and I'll have to manage the playlist in the Music App, but that's all doable

          Hacky as hell like I said, but I think I can make it work for me like this

          I'd need to polish it up a bit if I was going to share what I've come up with but I'd be happy to do that if it's of any use to anyone else

          jezekJ G 2 Replies Last reply Reply Quote 0
          • jezekJ Offline
            jezek @theare27
            last edited by

            @theare27 +1 😄 hell of a hack...

            the next stage should be to take all the sql queries and logic (file copying, conditions, ...) and make it work inside Podbird (qml should be able to handle all these), so there is no need to use cron & shell scripts. 😉 Qml is easy, if you are on the level of writing shell scripts & sql queries.

            jEzEk

            T 1 Reply Last reply Reply Quote 1
            • T Offline
              theare27 @jezek
              last edited by

              @jezek Can these app interact with stuff outside their own directories though?
              Initially I didn't have the Rsync part, I just created a soft link between com.mikeasoft.podbird/podcasts/ and the Music folder, but the Music app couldn't read those files at all, it just dropped the entries from the track table

              Whether it was because it couldn't follow a soft link or because the soft link went to another app's scope I'm not sure

              I'm not sure what sort of containment UT touch apps have & how they can interact with each other on that kind of level

              I'm sure there's big scope to improve on it

              1 Reply Last reply Reply Quote 0
              • jezekJ Offline
                jezek
                last edited by

                @theare27 Ah, now I understand. I read everything again few times and now I see my mistake. You are talking about 2 apps. Podbird and Music app. I thought you were doing the hack only for Podbird. My fault, sorry.

                Can these app interact with stuff outside their own directories though?

                I think, you can specify some special directories (Downloads, Music) in clickable apparmor config. For example see, how Music App defines permissions.
                Interactions between apps should be handled via Content Hub.

                Initially I didn't have the Rsync part, I just created a soft link between com.mikeasoft.podbird/podcasts/ and the Music folder, but the Music app couldn't read those files at all, it just dropped the entries from the track table

                If symlink for directory fails, mount --bind can sometime save the days. 😄 But in this case expanding Podbird's access privileges should do the trick, I think.

                jEzEk

                T 1 Reply Last reply Reply Quote 0
                • T Offline
                  theare27 @jezek
                  last edited by

                  @jezek Yeah, sorry if I wasn't clear - yes I'm talking about two apps

                  Levereging Podbird for what it does well: managing podcast subscriptions, file downloads & removal,but then handing the task of playback over to the Music app because that does a good job of playlist management & playback

                  And what I've come up with is a little integration script that just manages the hand off between the two, so that the stuff that Podbird downloads gets automatically pushed into a playlist in the Music app

                  Early days still, but so far it seems to be working alright. New episode downloaded by Podbird this morning & it pops into the Podcast playlist within a couple of minutes

                  Of course it'd be nice if Podbird could do it all, but with this setup I can manage & I'm a step closer in terms of making UT work for me as my primary daily driver

                  1 Reply Last reply Reply Quote 0
                  • T Offline
                    theare27 @danqo6
                    last edited by

                    @danqo6 is there a tutorial on setting up then environment for combiling Podbrid, building .click packages etc that you're aware of?

                    Wouldn't mind having a go at experimenting with hacking on the code & building my own development version

                    jezekJ 1 Reply Last reply Reply Quote 0
                    • jezekJ Offline
                      jezek @theare27
                      last edited by

                      @theare27 said in Podbird reignited:

                      @danqo6 is there a tutorial on setting up then environment for combiling Podbrid, building .click packages etc that you're aware of?

                      Using clickable for UT app development was the right way for me. There are many topics about app development in this forum.

                      jEzEk

                      1 Reply Last reply Reply Quote 0
                      • ImmyChanI Offline
                        ImmyChan
                        last edited by

                        Someone correct me if I'm wrong, but haven't there been upstream changes to Podbird that aren't yet in the binary build on OpenStore? Maybe someone should build upstream and push it to upstream?

                        CiberSheepC 1 Reply Last reply Reply Quote 0
                        • CiberSheepC Offline
                          CiberSheep @ImmyChan
                          last edited by CiberSheep

                          @ImmyChan «Updated : April 14th 2020» from

                          https://open-store.io/app/com.mikeasoft.podbird

                          From launchpad:

                          https://bazaar.launchpad.net/~michael-sheldon/podbird/trunk/changes/204?start_revid=204

                          69d23ece-be5b-4293-994b-969d5a57c9aa-imatge.png

                          Another planet, another time, another universe!

                          1 Reply Last reply Reply Quote 0
                          • G Offline
                            geekvine @theare27
                            last edited by

                            @theare27 surely it might be simpler use content-hub and set the Music app as an external player, i'll have to look into it. i know sailfish os has this option.

                            T 1 Reply Last reply Reply Quote -1
                            • T Offline
                              theare27 @geekvine
                              last edited by

                              @geekvine I know what I've done isn't ideal in any way - but it's let me work around things for now
                              The ideal would be for Podbird to be able to remember the queue, it's position within the episode and be able to resume playback on restart

                              Using Music App as a player is not without it's drawbacks, if I play any actual music now I lose my position in the podcast episode so my setup isn't ideal by far - it's just a bit more livable than where I was before

                              I don't think I have the skill to hack on Podbird, not in terms of the code itself but in building & debugging and knowing how it interacts with the OS, but if I could here would be my to-do list

                              1. Add a link to the "Now Playing" screen to the hamburger menu so that one can navigate back to that screen with ease
                              2. Either remove the code that clears the queue on exit, or, add a "Remember Queue on Exit" config flag and make that code conditional on that flag
                              3. Make sure that Podbird is now capable of remembering both the Queue and the position within the episode between sessions
                              4. Currently, when a new episode is tapped it wipes the Queue - add a dialog here to ask "Replace current queue and play this episode" or "Append episode to current queue and play"

                              Those changes put together I believe would eliminate my issues and then there wouldn't be a need to involve the Music App at all

                              arubislanderA G CiberSheepC 3 Replies Last reply Reply Quote 0
                              • arubislanderA Offline
                                arubislander @theare27
                                last edited by arubislander

                                @theare27
                                Those are some.fine requests. If implemented, some would improve Podbird or a range of users.

                                @theare27 said in Podbird reignited:

                                1. Currently, when a new episode is tapped it wipes the Queue - add a dialog here to ask "Replace current queue and play this episode" or "Append episode to current queue and play"

                                This one though, I think a dialogue at every tap would quickly become annoying.
                                The Kodi Media player has a settings option where the user can set the default action to selecting audio as either being: play (which would be what Podbird does now) or add to queue (which is the proposed functionality).
                                Something similar could be added to Podbird. I feel that the trailing action, when you wipe to the left on an episode would then also need to change, based in the default. So when default is play, then the action should be queue as it is now. And when the default is add to queue, then the action should be play.

                                🇦🇼 🇳🇱 🇺🇸 🇪🇸
                                Happily running Ubuntu Touch
                                Google Pixel 3a (20.04 DEV)
                                JingPad (24.04 preview)
                                Meizu Pro 5 (16.04 DEV)

                                T 1 Reply Last reply Reply Quote 2
                                • T Offline
                                  theare27 @arubislander
                                  last edited by

                                  @arubislander that'd be fine too

                                  1 Reply Last reply Reply Quote 0
                                  • G Offline
                                    geekvine @theare27
                                    last edited by

                                    @theare27 all trivial and fixed on a personal build. Currently looking at the track position problem.

                                    T 1 Reply Last reply Reply Quote 1
                                    • T Offline
                                      theare27 @geekvine
                                      last edited by

                                      @geekvine Sounds fab 🙂
                                      Happy to help with testing etc

                                      1 Reply Last reply Reply Quote 0
                                      • CiberSheepC Offline
                                        CiberSheep @theare27
                                        last edited by

                                        @theare27 said in Podbird reignited:

                                        The ideal would be for Podbird to be able to remember the queue, it's position within the episode and be able to resume playback on restart

                                        I agree this is the ideal: fix Podbird.

                                        Another planet, another time, another universe!

                                        1 Reply Last reply Reply Quote 1
                                        • G Offline
                                          geekvine
                                          last edited by

                                          anyone have a working email for Michael? The one i found just came back to me as no good (like 3 days later).

                                          D D 2 Replies Last reply Reply Quote 0
                                          • G Offline
                                            Giiba
                                            last edited by

                                            Care to share the build for testing?

                                            I'd be happy to poke about and test a bit.

                                            G 1 Reply Last reply Reply Quote 1
                                            • G Offline
                                              geekvine @Giiba
                                              last edited by

                                              @Giiba there is a build in testing in the wild...but to amswer your question - soon (tm)

                                              1 Reply Last reply Reply Quote 0
                                              • First post
                                                Last post