eLvErDe / museek-plus

Museek+: Client/server mode client for the SoulSeek peer-to-peer system
Other
156 stars 35 forks source link

Webclients for museekd #29

Open pulse00 opened 7 years ago

pulse00 commented 7 years ago

Are you aware of any webclients written to interact with museekd?

I'm playing with the thought of writing one with a small python/rest wrapper around the python-bindings and a single-page-app as the frontend.

akhramov commented 7 years ago

Hi, I had the same thoughts.

I even ported the bindings to Ruby for those who is not familiar with Python: akhramov/museek_bindings.

As for frontend, yet again, the same thoughts. But the work I've done is even not worth mentioning.

artelse commented 7 years ago

Me too, have been working on the partial nslsk js library. Either a full slsk js lib is developed or one for museekd. Looking at the code, both seem almost as complex to implement or?

pulse00 commented 7 years ago

@artelse well the python bindings are already there https://github.com/eLvErDe/museek-plus/tree/master/python-bindings/museek - imho it would "just" ™ need a http/rest wrapper around them and then stick a javascript frontend on top of it.

@akhramov @artelse what do you think, should we revive this idea?

We could start by collecting what's already there and sketch a roadmap to a minimal client - i could invest some time in the next weeks.

So far i've created a docker image building and running museekd.

akhramov commented 7 years ago

@pulse00 The Roadmap would be very nice.

We need to come to the agreement on the UI stack. Even though I think that mine bindings look prettier (I'll share the POC code example later today), I am okay with sticking to the python implementation. The main question for me is what SPA framework will we use? I strongly propose Elm.

Before we start, I want to make sure that you are aware of #5. This issue looks crucial for me. We should definitely invest some time to this. What do you think?

To whet your appetite, here's the screenshot of POC transfers screen:

screen shot 2017-01-22 at 14 14 36
pulse00 commented 7 years ago

The main question for me is what SPA framework will we use? I strongly propose Elm.

My current stack involves react but i'm fine with trying out new stuff.

Regarding the bindings - i'm neither fluent in ruby nor python (my background is Java/Javascript/PHP). I could come up with some working code but i doubt it would stand the scrutiny of a real python/ruby coder - so i'd be happy to go either way. I was only thinking that the existing python bindings are probably more robust - but regarding the issue you linked there's probably some work on that part needed anyway.

So as for https://github.com/eLvErDe/museek-plus/issues/5: That explains why my initial tests didn't yield any search responses :)

If i understand it correctly, to fix this we'd need to do some work on the c part of the library - i'm ok with that but my C/C++ related work is a loooooong time ago...

One thing: If the search layer is broken in museek-plus - how did you get to the POC in your screen shot?

akhramov commented 7 years ago

@pulse00 It is uploads screen. We can browse user's files regardless of #5. What I've done is logged in to another account, browsed files and downloaded the folder. Then I asked my friend to do the very same thing. :)

I more or less proficient in C, but will probably need some help. @artelse by any chance, are you familiar with C++?

akhramov commented 7 years ago

@pulse00 Hi, here's the repo. https://github.com/akhramov/web_museek

Don't be afraid, I pushed it as is with lots of useless stuff. Will cleanup later.

pulse00 commented 7 years ago

@akhramov should we try to fix #5 before getting into the binding and UI thing? currently museekd does not compile on my machine (mac os sierra):

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin16.3.0
Thread model: posix

what setup are you using?

akhramov commented 7 years ago

@pulse00 I run a museek daemon on linux armv7 machine. I built the daemon using gcc.

The only thing I did to code is corrected types where needed (see #26). Can you try #20?

pulse00 commented 7 years ago

yeah, i've tried that, but it looks like some incompatibility with the gcc on osx

In file included from museek-plus/./NewNet/nnevent.h:27:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:1036:13: error: no matching constructor for initialization of
      'binder1st<std::__1::mem_fun1_t<void, Museek::PeerManager, NewNet::ClientSocket *> >'
    {return binder1st<__Operation>(__op, __x);}
            ^                      ~~~~~~~~~
artelse commented 7 years ago

@akhramov I've no experience with C++, though have done C on some small projects. Regarding UI, am currently more into Vue.js than something like React. Elm I have no experience with. I am all for a polished UI and UX that's why I am interested in a web client.

akhramov commented 7 years ago

@pulse00 sorry for the delay. It's been a very busy week. I will try to compile museekd later today and will give you an update. You've mentioned the docker image. Why can't we just use it instead of having to compile on the host machine?

pulse00 commented 7 years ago

Why can't we just use it instead of having to compile on the host machine?

i can give it a try and see how well it can be used for actual development - i'll let you know tomorrow if this works.

akhramov commented 7 years ago

@pulse00 I ran in the very same compiler error. Being unable to solve it somehow, I just commented out the problem lines. 😸 Compiling went by w/o any further problems. Idk how it affects runtime though.

I will ping guys regarding #5 in the corresponding ticket.

screwfaze commented 7 years ago

Hi Guys,

I have recently come across museekd and really loving it would be awesome with a web front end, is this still being worked on?

Thanks

akhramov commented 7 years ago

Hi @screwfaze, unfortunately, not yet due to #5... 😢

screwfaze commented 7 years ago

@akhramov Sorry I am no expert on these things and do not understand. Using Mucous I am able to search and find what I need and get it. So please explain if you can why the web browser functionality is not possible.

Thanks

akhramov commented 7 years ago

@screwfaze, you are correct, outgoing search works just fine. The problem is that museekd peers are not appearing in the search results, and that makes sharing almost impossible.

screwfaze commented 7 years ago

Ok I see thanks for explaining that. I wish you luck fixing that issue as I would really love this way of running slsk.

Thanks