Comments (7)
I don't mind a slow process and discussions, I could reinvent the wheel, but this app is just really polished and works really well :)
Before getting into the code, I'd need to validate the UI modifications and RDF modeling. Simplicity is very important for this app. And the RDF types you mention seem good, but we also need to think about the containers and documents structure.
I will think about some containers and document structure and add it to this issue later. I think we can re-use a lot of the current structure and even be backwards compatible 🎉
Something different from movies is that I'd like TV Shows to get updated with new episodes automatically. This'll require some RSS-like algorithm, and it'd be ideal to do it on the server-side. But I don't think that Solid supports those operations at the moment, so I'd like to investigate how to go about it.
I think this is another feature. I see this as an update operation which can be used for more than just TV shows.
My current TV show tracking app (SeriesFinale) has a SQLite DB which is updated manually by refreshing the TV shows from the UI. That works fine, but an automated way and semantified data would be even better 👍
Messaging and onboarding needs to be reviewed, because it only mentions Movies at the moment.
True, this should be more like 'media' instead of 'movies'.
Besides these things, I also have the following in mind:
- Episodes to watch: Show the number of episodes to watch for a TV show on 'Watch next'. Only when you watched them all, they get a check mark as we have for the movies at the moment.
- Seasons: When showing the description of a TV show, a list of seasons is shown. The episodes are tied to the season they belong too.
- The TVDB https://www.thetvdb.com/: They are the same as TMDB but for TV shows, they cover almost everything.
- Mobile 'app': Package Media Kraken as a webapp for the PinePhone Linux phone.
- Stats: I love to see how much time I spend watching these media, how many movies/TV shows/episodes... I have in my collection, how many movies/TV shows/episodes I still have to watch
from media-kraken.
Do you have a link to that app?
https://openrepos.net/content/corecomic/seriesfinale-sailfish-os
Don't worry about that, if your code is not ready for release I can still create a feature branch and merge your PR there. I can improve the UI later on, any help I get is already appreciated :).
👍
I'd rather keep it in the same repository, after all the code is the same. I don't expect having to do much native code, it'd just be different deployment targets.
True, but maybe in a separate folder to keep the specifics out of the code base
The application is built with a library I made called soukai, and the arrows in the diagram represent soukai relationships. You can read about them here.
Interesting! I will have a look soon :)
Take a look at the rest of the relationships. Apologies if this is confusing, I know there's a lot of room for improvement in that diagram and I'm still exploring the best ways to represent Solid shapes and Soukai models.
Yes, I was confused about these things, but now that you explain it, I totally get it :)
I will update the diagram later on, after I checked soukai relationships.
As soon as I have a new version, I will post it here :)
Season could be a schema:TVSeason instead of schema:CreativeWorkSeason, since it's more specific. Same with schema:TVEpisode. I'd also be consistent with the naming. Either TVSeries, TVSeason and TVEpisode or Series, Season and Episode. I think I prefer the latter.
Sure, these things are not written in stone :D Series,Season,Episode sounds nice, otherwise we are too fixed on TV stuff (TVEpsiode doesn't completely fit in when we have a show that's only available through streaming services).
There are some properties that I'm not sure I'd include. For example, posterUrl and externalUrls for episodes and seasons. I know the schema supports it, but if we're not going to show anything for the UI I'd prefer not having it.
PosterURL might be overkill, but externalUrl might be not. You can use that to link to a specific episode on TMDB or IMDB for example: https://www.imdb.com/title/tt1724327/?ref_=ttep_ep15
from media-kraken.
Hi there, thanks for opening the issue!
Yes, this is in my roadmap but I don't have a date for it. In order to set expectations, let me tell you that I don't think it'll happen until early next year. Before getting into new features, I still have a couple of things I want to improve. And it's likely that I start working on another app before I add this feature. But I'll eventually add it for sure, because it's something I am missing in my own use of the app.
If anyone wants to help with this, I'm willing to accept PRs and suggestions. But given the impact of this feature, it'll probably be a slow process and I'll give a lot of push back.
In case anyone still wants to proceed, here's a couple of things I have in mind:
-
Before getting into the code, I'd need to validate the UI modifications and RDF modeling. Simplicity is very important for this app. And the RDF types you mention seem good, but we also need to think about the containers and documents structure.
-
Something different from movies is that I'd like TV Shows to get updated with new episodes automatically. This'll require some RSS-like algorithm, and it'd be ideal to do it on the server-side. But I don't think that Solid supports those operations at the moment, so I'd like to investigate how to go about it.
-
Messaging and onboarding needs to be reviewed, because it only mentions Movies at the moment.
from media-kraken.
@NoelDeMartin Which software do you use to generate these UML diagrams? Umbrello doesn't seem to support this file type: https://github.com/NoelDeMartin/media-kraken/blob/main/docs/classes.uml
from media-kraken.
I think this is another feature. I see this as an update operation which can be used for more than just TV shows.
My current TV show tracking app (SeriesFinale) has a SQLite DB which is updated manually by refreshing the TV shows from the UI. That works fine, but an automated way and semantified data would be even better +1
Yes, I agree that it is a different feature. But I wouldn't release a version without it because it's essential to the use-case. But yeah, the first version could be something as simple as a button to synchronise. Although I'd see if there is a simple way that doesn't require user interaction :).
Episodes to watch: Show the number of episodes to watch for a TV show on 'Watch next'. Only when you watched them all, they get a check mark as we have for the movies at the moment.
I like the idea of showing the number, but the workflow to mark watched should be done per-episode. I may have 7 pending and want to mark that I've watched one without the necessity to open the TV show page. Right now the watched mark is binary for movies, and it serves both as a visual queue and a button. Maybe for TV shows it should be different.
Here's how it works in TViso, the app I'm using that I plan to replace with Media Kraken:
Seasons: When showing the description of a TV show, a list of seasons is shown. The episodes are tied to the season they belong too.
👍
The TVDB: They are the same as TMDB but for TV shows, they cover almost everything.
TMDB also supports TV shows, any reason not to use the same API?
Mobile 'app': Package Media Kraken as a webapp for the PinePhone Linux phone.
This is also something I've thought about but I'm not sure when I'll do it. So far, I'm using it as a PWA both on my Android device and in Ubuntu, and it works well. I'm not sure if the linux phone supports it though. I've thought about packaging the app with electron and cordova/capacitor. But since I don't have the necessity, I don't plan on doing it anytime soon unless many people ask for it. For mobile phones it'd also mean having to use appstores, and so far I like that this is only using github pages for deployment. You can open a separate issue about this if you want.
Stats: I love to see how much time I spend watching these media, how many movies/TV shows/episodes... I have in my collection, how many movies/TV shows/episodes I still have to watch
This is also a different feature, you can also open a different issue if you want. But I'm not sure I like this one. Maybe I wouldn't mind adding it if it isn't intrusive in the UI, but I feel the challenge here would be in the data because you'd need to store the duration in Solid models as well.
Which software do you use to generate these UML diagrams?
I'm not too happy with the diagrams, so I'm open to suggestions. But I wanted a solution that treats diagrams as code instead binaries. I came across PlantUML and I thought it was good enough. You can regenerate the images running npm run docs:build
(it uses docker under the hood).
from media-kraken.
TMDB also supports TV shows, any reason not to use the same API?
Oh I must have missed that, the name of the website doesn't really reflect that. Let's use TMDB then!
This is also something I've thought about but I'm not sure when I'll do it. So far, I'm using it as a PWA both on my Android device and in Ubuntu, and it works well. I'm not sure if the linux phone supports it though. I've thought about packaging the app with electron and cordova/capacitor. But since I don't have the necessity, I don't plan on doing it anytime soon unless many people ask for it. For mobile phones it'd also mean having to use appstores, and so far I like that this is only using github pages for deployment. You can open a separate issue about this if you want.
I will receive my PinePhone in about 2 - 3 weeks and I will be happy to do that.
Not sure yet what technology I can/will use for creating a mobile wrapper for this. The current options are:
I'm in favor of keeping this out of this repository, I would avoid to bloat this repository with such things.
This is also a different feature, you can also open a different issue if you want. But I'm not sure I like this one. Maybe I wouldn't mind adding it if it isn't intrusive in the UI, but I feel the challenge here would be in the data because you'd need to store the duration in Solid models as well.
Yes, we need to store the duration as well here. All other information is already there, so I don't see any big problems here.
I will open another issue later on, I would like to focus first on the basics and get this issue resolved 👍
In my TV show app, this analytics page is hidden in the about section to avoid cluttering the UI with these detailed stats.
Yes, I agree that it is a different feature. But I wouldn't release a version without it because it's essential to the use-case. But yeah, the first version could be something as simple as a button to synchronise. Although I'd see if there is a simple way that doesn't require user interaction :).
If we manage to achieve that, it would so awesome 🎉
But I'm already happy with a sync button :)
I like the idea of showing the number, but the workflow to mark watched should be done per-episode. I may have 7 pending and want to mark that I've watched one without the necessity to open the TV show page. Right now the watched mark is binary for movies, and it serves both as a visual queue and a button. Maybe for TV shows it should be different.
Completely agree! In my TV show app, I can mark a full season as watched, a complete TV show or a single episode.
First proposal for the 'new' data structure
PlanetUML is having some issues with the structure :(
It boils down to this:
MediaContainer -> TVSeries -> Season -> Episode -> WatchAction
MediaContainer -> Movie -> WatchAction
I'm not an UI wizard, if I do some UI here, I will do my best, feel free to suggest things :)
from media-kraken.
I'm in favor of keeping this out of this repository, I would avoid to bloat this repository with such things.
I'd rather keep it in the same repository, after all the code is the same. I don't expect having to do much native code, it'd just be different deployment targets.
I haven't heard of QtWebengine nor pywebview, but I think Electron and Cordova are good options. Or Capacitor :).
In my TV show app, this analytics page is hidden in the about section to avoid cluttering the UI with these detailed stats.
Do you have a link to that app?
I'm not an UI wizard, if I do some UI here, I will do my best, feel free to suggest things :)
Don't worry about that, if your code is not ready for release I can still create a feature branch and merge your PR there. I can improve the UI later on, any help I get is already appreciated :).
About the classes diagram, a couple of things:
-
The application is built with a library I made called
soukai
, and the arrows in the diagram represent soukai relationships. You can read about them here.TVSeries
cannot have ahasMany(object)
relationship withSeason
, becauseSeason
doesn't have anobject
property. Looking at the TVSeries documentation, there is a property calledcontainsSeason
inTVSeries
and one calledpartOfSeries
inTVSeason
. We could use those, for example in TVSerieshasMany(Season, 'partOfSeries')
orbelongsToMany(Season, 'containsSeason')
. I'd probably use custom naming for the properties too, it doesn't have to be "partOfSeries" and "containsSeason". The ideal for proper Solid data modelling would be to have both relationships, but that will complicate the code because it's not supported in soukai yet, so feel free to do only one and leave a TODO in the code for improvement.Take a look at the rest of the relationships. Apologies if this is confusing, I know there's a lot of room for improvement in that diagram and I'm still exploring the best ways to represent Solid shapes and Soukai models.
-
Season
could be aschema:TVSeason
instead ofschema:CreativeWorkSeason
, since it's more specific. Same withschema:TVEpisode
. I'd also be consistent with the naming. EitherTVSeries
,TVSeason
andTVEpisode
orSeries
,Season
andEpisode
. I think I prefer the latter. -
There are some properties that I'm not sure I'd include. For example,
posterUrl
andexternalUrls
for episodes and seasons. I know the schema supports it, but if we're not going to show anything for the UI I'd prefer not having it. -
The general idea of
MediaContainer -> TVSeries -> Season -> Episode
andWatchAction -> Episode
is fine :).
from media-kraken.
Related Issues (19)
- TransactionInactiveError: Failed to execute 'getAllKeys' on 'IDBObjectStore': The transaction is inactive or finished. HOT 2
- Re: Malformed RDF document found at https://marielmat.inrupt.net/settings/privateTypeIndex.ttl - Unexpected "<!doctype" on line 1. HOT 10
- Login unauthorized HOT 1
- Improve data location HOT 1
- Does not work with Community Solid Server 1.0.0 HOT 4
- wrong privateTypeIndex creation HOT 3
- Support importing movies from ... HOT 2
- CSS changed idp location HOT 4
- Add ability to add private ratings to movies HOT 1
- Add a sharing link for MediaKraken itself HOT 1
- Invalid URL error with CSS HOT 1
- Support importing movies from trakt.tv
- Import from Netflix HOT 2
- TypeError: Cannot read properties of undefined (reading '@value') HOT 4
- Support importing movies from goodfil.ms HOT 4
- Allow me to share my movie collection with a URL for the view of it HOT 2
- Full url used as subject in turtle resource HOT 4
- Consider switching auth client HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from media-kraken.