Skip to content

Additional attributes per media item #15

@crspybits

Description

@crspybits

I list several pieces of functionality below, because I think they naturally group together.

Cross-device unread counts
Unread counts for specific media items/albums that can be shared with other devices for the specific user. Also so that if you have to re-install the app it preserves unread counts.

Keyword support for media
It would be nice to have keywords per media item. Not sure if it should be a new file or part of the discussion. Definitely need some change to a change resolver. Keywords could be added or removed. But not changed specifically I think. Possibly single word keywords. Or “atomic” phrases that can’t be edited-- but can be removed and then added. Each user could change a keyword (e.g., remove one) that someone else added. These keywords are shared across users.

Marking media items with a limited set of visual icons aka Badges
One per user. E.g., you could mark the media item with “Thumbs up”. Dany’s badge idea: Old vs. new testament.

My plan is to implement this as a single additional file per media item.
Implemented as a JSON structure, this could look like the following for a specific media item:

{
	“unreadCounts”: {
		“userId1”: User1_Unread_Count,
		“userId2”: User2_Unread_Count,
		// etc.
	},

	“keywords”: {
                 “Keyword1”: true,
                 “Keyword2”: false,
                  etc.
        },

	“badges”: {
		“userId1”: badge1,
		“userId2”: badge2,
		// etc.
	}
}

There are a couple of technical challenges with this change:

  1. How do we do conflict resolution on these files?

  2. How can a client app know when a specific change to one of these files should be indicated as "downloadable" in the album list for the Neebla app?

I address these below.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions