Super cool!
I'd be interested to get something like that merged. Would you be up
for submitting a patch (https://perkeep.org/code#contributing)? Even
if you don't want to finish it up, it's a starting point.
I'm pretty familiar with the fs module and would be happy to review.

I noticed there's support for persisted searches (namedSearch in
https://github.com/perkeep/perkeep/blob/7f17c0483f2e86575ed87aac35fb75154b16b7f4/pkg/search/predicate.go#L695),
would be cool to make them show up as search/name/ dirs, although
there's no UI currently for creating them.

On Tue, May 21, 2019 at 3:20 PM dx25 <[email protected]> wrote:
>
> Nice, now it seems to be working.
>
> On Tuesday, May 21, 2019 at 4:55:34 PM UTC-5, mathieu.lonjaret wrote:
>>
>> Probably because search queries have a default max number of returned
>> results. You should be able to get an unlimited amount by specifying a
>> Limit of -1 in your query. See
>> https://perkeep.org/pkg/search#SearchQuery.
>>
>> On Tue, 21 May 2019 at 23:34, dx25 <[email protected]> wrote:
>> >
>> > I've been trying out Eric's magic directory idea, using the "recent" and 
>> > "at" implementations as a guide.  I was able to get it working (sort of) 
>> > -- within the new "search" subfolder, I can do something like cd 
>> > "after:\"10-01-2017\" and is:image", and get a directory back with the 
>> > right results, except that it seems to max out at 201 results for some 
>> > reason.
>> >
>> >
>> >
>> > On Thursday, May 9, 2019 at 4:32:36 PM UTC-5, mathieu.lonjaret wrote:
>> >>
>> >> Hello,
>> >>
>> >> On Thu, 9 May 2019 at 00:26, Eric Drechsel <[email protected]> wrote:
>> >> >
>> >> > Hi Dave,
>> >> >
>> >> > On Wed, May 8, 2019 at 1:56 PM dx25 <[email protected]> wrote:
>> >> >>
>> >> >> I finally got around to looking at this video server idea again -- as 
>> >> >> Mathieu suggested, I created a folder in web UI and moved all video 
>> >> >> files to the folder.  Now when pk-mounted, the new folder is not 
>> >> >> visible in "roots" unless I manually set the camliRoot attribute to 
>> >> >> it, and none of the videos are visible within unless I set, say, a 
>> >> >> camliPath:filename.mp4 attribute on the folder permanode.  Mathieu, 
>> >> >> you mentioned adding a custom handler.  As I look through the source, 
>> >> >> I see a number of other blobservers, but I have no clue how to use 
>> >> >> them or what they are for.  I'm assuming that was how were suggesting 
>> >> >> I deal with this camliRoot/camliPath problem?
>> >> >>
>> >> >> The other idea I had was an approach similar to how <pkmount>/recent 
>> >> >> folder is working.  Within that folder, I can see filenames for some 
>> >> >> recently added stuff, apparently without the need for these redundant 
>> >> >> camliPath: attributes (since the fileName is stored with the blob 
>> >> >> content for the videos).  Was curious to see how this actually 
>> >> >> populates the /recent folder, but was unable to locate the 
>> >> >> implementation.
>> >>
>> >> As Eric said, if you want to see how the magic of pk mount works, it's
>> >> all in pkg/fs. But honestly if you want things to show up as files in
>> >> pk mount, I maintain that it's probably easier to do a bit of glueing
>> >> and scripting on top of things, to add the relevant camliRoots and
>> >> camliPaths to your permanodes, than to hack a new "magic directory" in
>> >> pkg/fs. Dealing with fuse stuff isn't easy imho.
>> >>
>> >> > Mathieu, you mentioned adding a custom handler.  As I look through the 
>> >> > source, I see a number of other blobservers, but I have no clue how to 
>> >> > use them or what they are for.  I'm assuming that was how were 
>> >> > suggesting I deal with this camliRoot/camliPath problem?
>> >>
>> >> The other idea I had mentioned earlier is also harder than the very
>> >> first option, but probably not as hard as inventing new things in
>> >> pkg/fs. But it still requires you to understand what typically happens
>> >> to a blob when Perkeep receives it, with regard to how the conditional
>> >> blobserver only passes it to the indexer if it is a schema blob, then
>> >> how the indexer treats it depending on what kind of mutation it is,
>> >> etc. My very rough idea was that you could add your own custom piece
>> >> in the middle that does the job of creating the camliPaths and
>> >> camliRoots somewhere along the line, when e.g. the indexer sees it is
>> >> a video file. But again, that is pretty involved too, and wouldn't be
>> >> a very adaptable/reusable mechanism, so all in all, probably not a
>> >> very good idea.
>> >>
>> >> > The mapping of nodes to filenames happens starting at 
>> >> > https://github.com/perkeep/perkeep/blob/7f17c0483f2e86575ed87aac35fb75154b16b7f4/pkg/fs/recent.go#L104
>> >> >
>> >> >> Any idea where I should look for it?  As I was saying in my original 
>> >> >> post, it seems like what I'd really want here is to write my own 
>> >> >> alternative implementation of /recent (called, e.g. /videos), that 
>> >> >> makes all uploaded videos available.  I was able to successfully add a 
>> >> >> "is:video" search parameter that uses the mime type prefix, but that's 
>> >> >> as far as I've gotten.
>> >> >>
>> >> >> So, any ideas on what direction to go next?
>> >> >>
>> >> > fs.RecentDir is a good template for a search-backed directory. It seems 
>> >> > like it might be appropriate to make RecentDir just an instance of a 
>> >> > fs.SearchDir type. RecentDir doesn't have any tests but SearchDir 
>> >> > should.
>> >> >
>> >> > I'd want to see a new "/search" node that implements Lookup() to take a 
>> >> > filename-escaped search string and return a new SearchDir node similar 
>> >> > to how fs.root implements hash-based permanode lookup 
>> >> > here:https://github.com/perkeep/perkeep/blob/7f17c0483f2e86575ed87aac35fb75154b16b7f4/pkg/fs/root.go#L136)
>> >> >  since that would provide users with a way to perform searches through 
>> >> > the filesystem.
>> >> >
>> >> > I've also considered adding support for persisting searches as 
>> >> > permanodes, which would behave as directories. This would require 
>> >> > changes in a few modules but would take perkeep in the direction of 
>> >> > end-user programming which I think makes a lot of sense for 
>> >> > single-tenant self-hosted applications (tiddlywiki for example).
>> >> >
>> >> >>
>> >> >>
>> >> >
>> >> >>
>> >> >>
>> >> >> On Thursday, December 20, 2018 at 9:11:21 AM UTC-6, mathieu.lonjaret 
>> >> >> wrote:
>> >> >>>
>> >> >>> It does not necessarily have to be manual though. The simplest (but
>> >> >>> least efficient) way I can imagine to automatize it would be to make a
>> >> >>> program monitoring new things being added to your Perkeep (a camtool
>> >> >>> search call for recent items, being run regularly, for example), and
>> >> >>> when detecting when one of these new items is a video, it would add it
>> >> >>> to the mounted camliRoot.
>> >> >>> You could also add a custom handler which does that within Perkeep. In
>> >> >>> the same way the cond blobserver (pkg/blobserver/cond) is used to add
>> >> >>> a blob to the index only if it is a schema blob. But that is a bit
>> >> >>> more involved than the above.
>> >> >>>
>> >> >>> On Thu, 20 Dec 2018 at 15:55, dx25 <[email protected]> wrote:
>> >> >>> >
>> >> >>> > Sorry, that was worded poorly.  My hope was to avoid creating a 
>> >> >>> > folder, and then every time phone uploads something, manually 
>> >> >>> > adding that to the folder.  Sounds like for now that's the way to 
>> >> >>> > do it though.
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> > On Wednesday, December 19, 2018 at 6:26:57 PM UTC-6, 
>> >> >>> > mathieu.lonjaret wrote:
>> >> >>> >>
>> >> >>> >> On Thu, 20 Dec 2018 at 00:51, dx25 <[email protected]> wrote:
>> >> >>> >> >
>> >> >>> >> > Hi,
>> >> >>> >>
>> >> >>> >> Hello,
>> >> >>> >>
>> >> >>> >> > I have been using the android app on Perkeep to upload photos 
>> >> >>> >> > and videos from my phone to a perkeepd instance I run locally.  
>> >> >>> >> > I'm also running Plex Media Server on that same machine, and 
>> >> >>> >> > would like it to serve up the videos I've added to Perkeep.  My 
>> >> >>> >> > first thought was to run pk-mount as a service, pointing Plex 
>> >> >>> >> > there, and hopefully everything would just work.
>> >> >>> >>
>> >> >>> >> Yes, in theory that should work.
>> >> >>> >>
>> >> >>> >> > However, I can't figure out how to access content uploaded from 
>> >> >>> >> > the phone via pk-mount.
>> >> >>> >>
>> >> >>> >> Have you seen https://perkeep.org/cmd/pk-mount/ ?
>> >> >>> >> What step are you blocked at exactly?
>> >> >>> >>
>> >> >>> >> > Ideally I would create a search that finds all videos (e.g. 
>> >> >>> >> > "format:mp4", although this appears not to be supported now), 
>> >> >>> >> > and then be able to mount that search directly in pk-mount.  Is 
>> >> >>> >> > something like this possible?
>> >> >>> >>
>> >> >>> >> No, I don't think you can do that kind of thing for now. You can 
>> >> >>> >> only
>> >> >>> >> control whether you want to only mount a subset via the second
>> >> >>> >> argument of pk-mount. So what you can actually do pretty easily, 
>> >> >>> >> is to
>> >> >>> >> gather (after you searched for them) all your videos under a common
>> >> >>> >> root. Then you mount that very root with pk-mount.
>> >> >>> >>
>> >> >>> >> hth,
>> >> >>> >> Mathieu
>> >> >>> >>
>> >> >>> >> > You received this message because you are subscribed to the 
>> >> >>> >> > Google Groups "Perkeep" group.
>> >> >>> >> > To unsubscribe from this group and stop receiving emails from 
>> >> >>> >> > it, send an email to [email protected].
>> >> >>> >> > For more options, visit https://groups.google.com/d/optout.
>> >> >>> >
>> >> >>> > --
>> >> >>> > You received this message because you are subscribed to the Google 
>> >> >>> > Groups "Perkeep" group.
>> >> >>> > To unsubscribe from this group and stop receiving emails from it, 
>> >> >>> > send an email to [email protected].
>> >> >>> > For more options, visit https://groups.google.com/d/optout.
>> >> >>
>> >> >> --
>> >> >> You received this message because you are subscribed to the Google 
>> >> >> Groups "Perkeep" group.
>> >> >> To unsubscribe from this group and stop receiving emails from it, send 
>> >> >> an email to [email protected].
>> >> >> To view this discussion on the web visit 
>> >> >> https://groups.google.com/d/msgid/perkeep/1b38a8f6-d118-4951-9ae7-dbd87ffe1a07%40googlegroups.com.
>> >> >> For more options, visit https://groups.google.com/d/optout.
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > best, Eric
>> >> > eric.pdxhub.org
>> >> >
>> >> > --
>> >> > You received this message because you are subscribed to the Google 
>> >> > Groups "Perkeep" group.
>> >> > To unsubscribe from this group and stop receiving emails from it, send 
>> >> > an email to [email protected].
>> >> > To view this discussion on the web visit 
>> >> > https://groups.google.com/d/msgid/perkeep/CAGTxtWiNUbSG_m4mLYqHsPfinxaVqUGB29G2J%2Bjr5VZuYrUTYA%40mail.gmail.com.
>> >> > For more options, visit https://groups.google.com/d/optout.
>> >
>> > --
>> > You received this message because you are subscribed to the Google Groups 
>> > "Perkeep" group.
>> > To unsubscribe from this group and stop receiving emails from it, send an 
>> > email to [email protected].
>> > To view this discussion on the web visit 
>> > https://groups.google.com/d/msgid/perkeep/3f330c68-61b2-48a3-9c80-0489a839d503%40googlegroups.com.
>> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Perkeep" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/perkeep/3ffb2f72-8c98-4e8e-90f4-69e514009184%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



-- 
best, Eric
eric.pdxhub.org

-- 
You received this message because you are subscribed to the Google Groups 
"Perkeep" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/perkeep/CAGTxtWiragqCEh-c-yvF_N9TCefP1dzRig__x9fAJDRMm24UkA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to