Advanced search with the ability to save preset streams

gmusicbrowser has a Filter edition window that does exactly that and may be inspirational. It allows for conditions to be combined and inverted to create automatic playlists without code.

Alright, I finally toke the time to draw some mockups of what I have in mind for years and is in my opinion the biggest missing feature of diaspora*, as it is currently difficult to filter content to have the one which is relevant to you. Many users are using the ignore option to do that, but this leads to other problems and should not be the way to do it.

Okay, so the idea is basically to allow the users to create their own stream queries. As I see it, this start as an advanced search. It could be access from the search result (new button on the right):


There, you have the interesting screen:

So, each line is a condition, starting with the subject of the filter. “containing” is about #tags, “written by” about post authors, “from the aspect” about aspects. Of course, we could imagine way more filters (mentionning, liked by, commented by… etc.) but these 3 looks like a good beginning to me. There also is the negation of all these tree options in the select (so, “not containing”, “not written by”, and “not from the aspect”).

The input text following the filter has autocomplete on it, allowing to select only valid value (so, with containing, only tags can be entered. They will always start with a #).

The last line is a “add a condition” button. Clicking on it will add a new line which start with a select with “and” and “or”, and then the filter select.

This does not allow complete conditional expression as there is no parenthesis in the current mockup, but it looks like a good enough first step.

Below it, the result of the query is displayed. And on the top, a button allowing to pin the search as a stream.
Clicking that button will open a popup for the user to enter the custom stream name (no mockup of that here).

On the stream page, a cog is added in the left column:

(I’m not satisfied with that design at the moment, it is too flashy. Still, I want to have something clearly visible)

Clicking on it put the stream selector in “edit” mode:

(Sorry I didn’t disabled my OS dark mode when I took this screenshot so the input checkboxes have the mint theme, they should not be green like that)

This mode allows the user to choose which streams are available in the selector by checking / unchecking them. They can also be ordered by drag and dropping them.

The pencil icon brings the user to custom stream edition:

This page is very similar to the “Advanced search” one, but it also allows to rename or delete a custom stream. I just noticed that it probably miss a “save” button somewhere, sorry about that.

So, what do you think?


I am really looking forward to being able to do stuff like this too. I think much of the UI is spot on, specifically the editing part. Some areas I could see tweaking is how users interact with the streams. One idea I had was that the “stream” menu becomes a “Streams” menu with the user created options and the default. Another idea would be for the “My Activity” menu at the top to double as a drop-down menu for fast access to “favorited” streams/topics.

Something that doesn’t appear in my mockups but I have in mind is the ability to choose the “default” (preferred) stream for the user. So the one which will be displayed when clicking the asterisk logo in the header. That can come in a second time.


Thanks alot ! Looks like so handy !
Will it be difficult to implement ? Will there be someone willing and having time to code that in the near futur ? Will the team have time to review the code in a near futur too ?
It looks so promising that I hardly can’t wait !

@elm the back-end part can be a bit difficult to write, it means an important modification of the database schema to allow to store advanced searches but also “traditional” streams. I’m not very comfortable with that part, so I can’t tell. The front-end part should be pretty straight forward. I think I can do it. I already talked with @HankG if we could team on that feature, as we complete each other well.

1 Like

Thanks, @flaburgan for taking up this old proposal! I had almost forgotten about it. I have tried other decentralised platforms like for example, and I have seen the same problem: that the linear stream makes people overlook things they would like to see and that it becomes chaotic after a certain threshold of contacts. It would be a very interesting experiment to see if this could remedy some of these problems.

Would be really nice if this could be used to search your own posts as Diaspora is really lacking this and it goes against “you controlling your data” philosophy.

Being able to specify start/end dates would really help in that regard. Scrolling down to find something you posted last summer is not a good solution. It plagues many other social networks too so Diaspora could be different here.

Please consider this.

Yes I think this would be a great feature to have along with a timeline type view, which you highlighted, that let you jump around in time through all your posts.

I don’t think this statement is true at all. I also don’t think adding this was conducive to a forward dialog on the topic either.

@SpcCw, please don’t post requests for other features in a discussion – that moves things off-topic and doesn’t help. Please, instead, look for the discussion(s) relevant to your request, and post on those discussions only if you have something new to suggest that hasn’t already been mentioned. People saying ‘please do this thing I want’ doesn’t help to speed up development.

If you want to encourage development of the feature you want, and can’t contribute towards it yourself, you could try promoting the idea in diaspora* itself. A prospective developer might see your post and decide to give it a go, which could mean a new developer working on diaspora*. Alternatively, you could consider posting a bounty on the relevant topic in Bountysource, to encourage someone to choose the feature you want rather than another one.


Perhaphs it sounded not like I meant it. Let me elaborate.

Full control over your data means you can easily retrieve and edit (well, it is limited to deletion here) your content. When large amount of content gets accumulated over time it is next to impossible to do without proper search functionality. Sometimes failure to quickly locate certain content can have consequences.

So yes, in my opinion inability to efficiently access your content limits your control over it.

Also maybe it is just my impressions but it seems to be popular grievance with social networks these days. Your old posts just sink somewhere at the bottom of infinetely scrollable feed and become forgotten (and sometimes make surprise comeback when you least expect it). I wouldn’t want Diaspora to follow same pattern.

One workaround for this (not just Diaspora) is Googling your own feed and I think it is clear how it is not about controlling your data either.

Please don’t take this as disrespect or accusation of not doing enough or not staying true to the mission. It is not that at all. Just something to consider.

@goob I posted this here because date/time search criteria was mentioned earlier in this discussion as part of this feature. Then it seemed to me like it was dismissed as unnecessary. I thought I could weigh in with some thoughts why including date parameter could be useful and what task exactly it could solve.

Anyway I apologize if it was taken as pushy or counterproductive.

1 Like

I don’t see any reason why we should block the user to indicate himself in the “written by” selector. So if you put only you there, you’ll have only your own posts. Then, finding content is a matter of tagging it correctly. If you do tag your holidays pictures with #summer2018, the “written by me” + “containing #summer2018” is enough to find your content.

That implies a nice autocomplete for tags, as you can’t remember every tags you used, of course.

I’m not really sure about the date filter at the moment. It would be really cool in advanced search of course, but make no sense for pinned stream. I’ll think about how to deal with that (maybe simply ignore the date criteria when the search is pinned?)

1 Like

Thank you for your feedback everyone, I’m now even more confident that this will bring a big value to diaspora*.

I would have love to have some feedback from core devs too, @supertux88 @denschub @comradesenya @jhass anything to say about the mockups?

1 Like

From user’s standpoint I would expect it to work like this. You fill in search conditions and hit search. Results are displayed. If you just wanted to find something you stop there. If you like what you see you can pin the search as a stream (and date condition will be obviously dropped as irrelevant). If there are no results you can still pin it and see what turns up later (but for most use cases I would imagine some past results available so user can easily see if their selection is right).

I’ve been thinking about something like this for over two years and have educated myself on why this is not possible yet. Frankly, it will be a lot of work to get the database schema and queries into a state where the DBMS will not break down due to the load this induces. I’ve been working on it ever since I made the tag stream search usable. For me, custom streams is an essential feature.

While I don’t have a better idea for the UI yet, I don’t agree with the proposed solution. It assumes an understanding of boolean logic of the user which is not a given.

1 Like

I was afraid of something like that yes, that’s why I didn’t work on that feature. Still, “a lot of work” means it is doable, isn’t it? I’m not sure I get what your message means.

As of the UI, I didn’t find a better way to present it at the moment, but I continue to think about it.

On 35c3, I was able to do some hacking, and I’ve come to the conclusion it might not be as much work as I expected at first. Results of the hacking. Just look at the numbers, enjoy, and relish the knowledge that this will make filtered streams a lot less trouble :slight_smile: