running from source
I write the client and server entirely in python, which can run straight from source. I don't recommended this for someone who just wants to get the program working, but rather for those who have a general interest or wish to modify the program.
what you will need
You will need to install python 2.7 and a number of python modules. Most of it you can get through pip. I think this will do for most systems:
- pip install beautifulsoup4 hsaudiotag lxml lz4 nose numpy pafy Pillow psutil pycrypto PyOpenSSL PyPDF2 PySocks python-potr PyYAML requests Send2Trash service_identity twisted
Although you may want to do them one at a time, or in a different order. Your specific system may also need some of them from different sources and will need some complicated things installed separately. The best way to figure it out is just to keep running client.pyw and see what it complains about missing.
I use Ubuntu 16.10, which also requires something like:
- sudo apt-get install python-opencv
- sudo apt-get install python-wxgtk3.0
YMMV. Feel free to email me if you run into trouble or discover any neat tricks.
OS X 10.9 is similar, though wx is simpler. I use the cocoa package straight from wxPython's site. This should do the rest:
- brew tap homebrew/homebrew-science
- brew install opencv
- export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
For Windows, depending on which compiler you are using, pip can have problems building some modules like lz4 and lxml. This page has a lot of prebuilt binaries--I have found it very helpful many times. wxPython is easy--just download from here. You may want to update python's sqlite3.dll as well--you can get it here, and just drop it in C:\Python27\DLLs or wherever you have python installed. I have a fair bit of experience with Windows python, so send me a mail if you need help.
A user has also created an environment to help Windows users run from source and build a distribution.
Some people have encountered problems with wxPython 3.0, so you might want to try 2.9.x. Again, YMMV.
If you don't have ffmpeg in your path and you want to import videos, you will need to put a static FFMPEG executable in the install_dir/bin directory. Have a look at how I do it in the extractable compiled releases if you can't figure it out. You can either copy the exe from one of those releases, or download the latest build right from the FFMPEG site. I don't include these exes in the source release just because they are so big.
Once you have everything set up, client.pyw and server.pyw should look for and run off client.db and server.db just like the executables.
I develop hydrus on 64-bit Win 7, so the program is much more stable and reasonable on Windows. I do not have as much experience with Linux or OS X, so I would particularly appreciate your Linux/OS X bug reports and any informed suggestions.
my code
My nerdism is INFJ, not INTP/J. My coding style is unusual, and everything is pretty much hacked together, but please do look through the source if you are interested in how things work and ask me if you don't understand something.
I prefer to work alone, so while I am very interested in detailed bug reports or suggestions for good libraries to use, I am not looking for pull requests. Everything is WTFPL, though, so feel free to fork and play around with things on your end as much as you like.