Giter Club home page Giter Club logo

alphagpo's People

Contributors

alebx avatar aschlapsi avatar bencomp avatar bloodpet avatar bytehamster avatar clementsjosh avatar cptpcrd avatar cweiske avatar dellagustin avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar dineshkrishnareddy avatar fk-lx avatar hyde46 avatar matthewhughes934 avatar mrnicknoldus avatar muellnera avatar outdooracorn avatar ryochan7 avatar ryoung29 avatar siqingyu avatar smarquespt avatar stefankoegl avatar thp avatar tomaszdom avatar webpigeon avatar yarons avatar zb3 avatar zoenglinghou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

alphagpo's Issues

Flag feeds that require HTTP Authentication (non-public feeds)

The populate-unknown-podcasts command relies on episode data linked to a Podcast to determine if the feed is considered unparsed. That works fine for most feeds. However, a growing problem that has come up is people linking feeds that are restricted to paying members via HTTP Authentication. Obviously mygpo will not be able to parse those feeds so the current check and the old blank title check will fail for determining whether a podcast is known. There needs to be some flag to tell mygpo to skip a feed otherwise the populate-unknown-podcasts command will just try to parse it and fail every time the command runs. A flag will also be useful for keeping the feed off the Directory section of the site.

Start to update dependencies. Review dependabot requests

It might be time to start reviewing the automated pull requests from dependabot and update this project's dependencies. Most of the other problems with this project have been dealt with so there is time to check package upgrades and make sure the project does not break. For the time being, mygpo will definitely still target Django 3.x rather than attempting to upgrade to Django 4.x.

Alter how podcast update interval is calculated

The update interval for Podcast feed updates is too long for my liking. It seems like the project tries to find an average time interval between episodes and then use that as the time interval for updating the feed info. It is too long for my liking particularly for podcasts that release multiple episodes per week.

Need to probably set an upper interval threshold and maybe change the main interval algorithm.

[Notice] Public instance closing July 31st

I have mentioned this in the mygpo issues tracker but I should make a small post about it here as well. The alphagpo public instance will be closing July 31st. I can no longer afford the $10 per month to keep the public instance of this fork running. Also, the Android podcatcher AntennaPod no longer plans to support mygpo for podcast syncing so there is far less of a need for this project, or the upstream mygpo project, to even exist. Also, this repo and the alphagpo-feedservice repo will be set to read-only archived at the end of the month.

It has been good getting back into playing with Django. Learning Django again was part of the motivation for wanting to get involved with mygpo initially.

Attempt to add default Category and CategoryTag data

This problem is more of a generic Django usage problem than anything specific to mygpo. I want to provide some way to provide Django to create default Category and CategoryTag objects from some sort of fixture data as a part of the initial project setup. I thought using the included Django fixture support would do what I want but it includes too much for my use case; fixture support seems mainly useful for full data backup rather than re-creating data with updated datetime values and other dynamic values.

Right now, the prod instance of mygpo has applicable Category and CategoryTag instances corresponding with the currently supported iTunes podcast categories. Fixture support can dump the current data to a JSON file. Natural keys are used rather than hard-coded keys. However, I do not like that the created and modified field values would be fixed to the time the original instances were added to the original database. It would probably be better to create model instances in Python so those fields can be updated with datetime values for when an object was created on the current database.

Specify explicit flag to skip future parsing of feeds

There seems to be more feeds that are either invalid or just don't have any episodes logged; YouTube feeds would be one example. Currently, the only way to specify that a feed should be skipped is if the feed requires HTTP authentication in order to access it. There needs to be a different way to flag feeds to be skipped from future parsing.

Populate base directory section

Still have not found out if there is a way to automate adding categories for use with the Directory section. Although, the original site Directory section is mostly non-functional and many category titles are just wrong like android;. Some old categories, like Bbc, don't look like they were added from podcast feed info but added manually instead.

Also, trying to add a Category from the Django admin results in 500 errors.

Implement search feature

Search has not worked on my instance since the start. Seen some messages about search indexes but it didn't matter to me before. With more feeds now indexed on the instance, it might be a good idea to actually figure out how to get the app to create search indexes and get the search feature working. The search feature mostly works on the official mygpo instance.

500 errors in small administration section

Trying to pull up aggregate client stats results in 500 errors. Not even sure what data is supposedly given on those pages. Need to fix some views in the administration package.

Populate unknown podcasts

This is mainly for reference as the biggest task is already done. When a client submits a subscription for a podcast feed that is unknown, very few elements of the podcast feed are added to the database. mygpo uses a blank title field to denote that a podcast entity has not been populated. There are already a couple of ways to have mygpo parse a feed and populate a podcast object. There was no way that I had seen to do it for a group of feeds.

I ended up changing that with commit c62df87 with the addition of a new management command populate-unknown-podcasts. Just going to run it manually every once in a while although a cron job could be set up to perform the task. That should make the Untitled podcast problem from the original repo far less of a problem.

One future consideration is regarding maybe adding a couple of indexes to the Podcasts table. For the management command, the latest_episode_timestamp field is checked and a podcast is considered unknown if no timestamp is populated. The query could end up being slow once a lot of podcasts are added to the table without using an index.

Celery task refactor

Many of the tasks assigned in the project use the Celery provided shared_task decorator. Many of the decorator calls use an outdated run_every argument that no longer applies. There are other options for setting up periodic tasks with the current project and Celery 5.x. Going to work on editing tasks little by little.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.