MyList DEV
General
The mylist page will need a complete overhaul in the long run. There are tons of areas which could need some improvement. This is not likely to happen anytime soon, but we might introduce some of the new features ahead of time.
Areas of Improvement
Ajax
Similar to the current work on the ajax anime page the mylist page should be ajax'ified to reduce server load and improve load times for users. At the same time this change would enable us to add some nifty javascript based extras which improve usability.
This could also be used to allow more dynamic sorting and filtering of the entries (see below).
Custom per MyList Styling
Some users want to provide links to their mylist to others and might even want to integrate their mylist page into a website. Currently the layout/style of the mylist page only depends on the settings of the visiting user. In most cases someone who is following a link to another users mylist from some website is probably not logged in at anidb. Which means that in general, visitors will always see the mylist in the default anidb css theme.
It would be nice to have a separate mylist url, which modifies this behaviour. The owner of the mylist would be able to customize the look and feel of this special mylist page (at least by specifying a custom css url, probably even with more options than that. I.e. to include/exclude certain parts of the mylist). It is unclear whether more support than that is needed, i.e. for integration of ones mylist via an iframe or via javascript code.
This goes somewhat in the direction of what myanimelist.net offers.
Filtering/Categorizing
The mylist page would need a lot more filtering capabilities.
Tags
To allow users to freely categorize or annotate animes in any way they feel is useful tags have been introduced. They are not yet supported on the mylist page and are therefore not really useful yet. The idea is as follows.
Tags are small, user specific, semi-private and unstructured information bits which every user can attribute to an anime. A user can add as many tags for an anime as he wishes. Tags added by a user are not visible to normal anidb users. Tags are not moderated and there will be no rules restricting their use but mods will be able to see/check their usage.
Tags can however be displayed on #anidb in aggregated form (this may be restricted to public tags at some point). That means while users are free to use them in any way they want, they should keep in mind that the tags themselves may be visible to other users in an anonymized form. As such tags should not contain any privacy sensitive information. Users will also be offered a privacy option in the profile settings to make their tag data available to the different user groups when visiting their mylist. This is needed to allow other visitors to use tag based filtering and sorting mylist features. By default tags would be shown only to buddies.
Some interface ideas:
- tags are arbitrary utf8 strings with upto 50-500 characters (how much should we allow?)
- users can view all their tags for each anime on the anime page
- users can add new personal tags for an anime on the anime page
- users can see all their tags on a special mytags page, from which they can get lists of all animes with the specific tag (maybe an animepage/mylist style expand icon, next to each tag?). This page would also allow some maintenance tasks, i.e. delete tag, rename tag, merge tags, ... and display some tag usage stats. If any tags are "public" (see below) that status would indicated.
- on the mylist users can hide/show anime entries depending on their tags (show only animes with tag X, don't show animes with tag Y). Filtering is not restricted on one tag at a time (show only animes with tag X and tag Y and not tag Z).
- tags could be added to/removed from animes on mylist page, some auto complete function (for all tags used by that user) in the form field may help reduce typing effort and reduce the risk of typos. There could also be a dropdown with all existing tags from which they can easily be added to anime entries. Together with a link to add a new tag. (the anime page tag page should be similar)
- when a user does a normal or advanced anime search the tag data could be taken into account. Furthermore a special syntax for the normal search could be added to allow explicit tag search, i.e. "tag:XYZ"
- special mylist urls with password + hash could be added which allow restricting visitors to animes with/or without a specific tag. I.e. users could add tag X to all animes they want to be visible/not visible and get a special url to their mylist from the mytags page which would hide all other entries. This could be used i.e. to hide hentai entries from the publicly visible part of the mylist. Or to organize the mylist into different subsets and make only some of the subsets visible to visitors, possibly different subsets to different visitors.
- anime hint could allow filtering by tag
- ...
In the long run a part of the tag system may become publicly available on the website, however, this has not yet been decided and will not be decided until enough tag data has been added to allow some trials concerning the usefullness of aggregated tag data. However, if aggregated values would be used some day, they'd be most likely be handled in some semi-moderated way. I.e.
- a tag can have two states, public or private. By default all tags are private. A private tag can only be seen by mods @ website.
- mods check a top50 page of the most used private tags every now and then
- private tags can be promoted to public tags by a mod
- mods can group multiple synonymous tags together, if needed
- aggregated public tags are displayed on anime pages
- chii may also be restricted to display only public tags
This does not conflict with the category/genre system. As that system can not cope with the enormous amount of different tags which are likely to be added by users. The category/genre tree needs to be displayable in full at different points on the anidb website, i.e. on the add/edit category to anime page and on the advanced search page. As such it's size needs to be limited to maintain usability. The tag approach would allow for a much finer and less structured way of attribution of short, arbitrary information bits to anime entries. Another aspect is the fact that this is more of a majority principle based approach rather than the moderated approach taken for categories/genres. It is impossible to decide now whether this would work/be useful but it well might be. This part should therefore become the focus of discussion once we've collected enough tag data.
Storage/Source/Other Filters
It may be interesting to allow users to filter anime and file entries in mylist based on the contents of the storage, source or "other" fields of the mylist entries. One possible approach would be:
- cron job splits all fields at a specific delimiter char, i.e. ",", then strips all leading and trailing whitespaces from the substrings and lowercases them. they are then all collected together and cached at the anime level (listcachetb) as a "," separated string.
- filtering on anime level (all anime which are not expanded) would include/exclude all anime entries which contain the search string (listcachetb)
- filtering on file level (for expanded animes) would include/exclude all file entries which contain the search string (listtb)
It's not clear what the best collating semantic would be.
- collect all values together
- file 1 has storage "hddX", file 2 has storage "hddX, cdA" => on anime level: "hddX, cdA"
- take only those tags which all files have (or at least one file for each ep)
- file 1 has storage "hddX", file 2 has storage "hddX, cdA" => on anime level: "hddX"
Categories/Genres
It should be possible to filter the animes in mylist by category/genre. I.e. "display all unwatched action animes" Tracker: 550