diff --git a/.gitignore b/.gitignore index 62cc354..4984b16 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,7 @@ __pycache__ +Pipfile Pipfile.lock +scratch* +.idea +build +dist diff --git a/Pipfile b/Pipfile deleted file mode 100644 index add442a..0000000 --- a/Pipfile +++ /dev/null @@ -1,26 +0,0 @@ -[[source]] - -url = "https://pypi.python.org/simple" -verify_ssl = true -name = "pypi" - - -[requires] - -python_version = '3' - - -[dev-packages] - -nose = "*" -requests-mock = ">=1.3" -pipenv = "*" - - -[packages] - -sleekxmpp = ">=1.3" -click = ">=6" -requests = ">=2.18" -pycryptodome = ">=3.4" -pycountry-convert = ">=0.5" \ No newline at end of file diff --git a/README.md b/README.md index b7330fa..25c5cfd 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Does it work for your model as well? Join the discussion on the [sucks-users mailing list](https://groups.google.com/forum/#!forum/sucks-users). -If you're curious about the protocol, I have [a rough doc](protocol.md) +If you're curious about the protocol, I have [a rough doc](http://github.com/wpietri/sucks/blob/master/protocol.md) started. I'll happily accept pull requests for it. Why the project name? Well, a) it's ridiculous that I needed to MITM @@ -23,15 +23,14 @@ it's a vacuum. ## Installation -Check out this code, possibly create a virtualenv, and do -`pip install pipenv; pip install -e .`. If that doesn't work for -you, please [open an issue](https://github.com/wpietri/sucks/issues). +If you have a recent version of python, you should be able to +do `pip install sucks` to get the most recently released version of +this. ## Usage To get started, you'll need to have already set up an EcoVacs account -using your smartphone. I've only tested this with Android, but I expect -it will work with iPhone-created accounts as well. +using your smartphone. Step one is to log in: ``` @@ -44,7 +43,8 @@ Step one is to log in: ``` That creates a config file in ~/.config.sucks.conf. The password is -hashed before saving, so it's reasonably safe. +hashed before saving, so it's reasonably safe. (If it doesn't appear +to work for your continent, try "ww", their world-wide catchall.) With that set up, you could have it clean in auto mode for 10 minutes and return to its charger: @@ -83,7 +83,7 @@ so it also has a mode where it randomly decides to run or not based on a frequency you give it. My crontab entry looks like this: ``` -0 10 * * * /home/william/projects/sucks/sucks clean -f 4/7 15 edge -f 1/14 10 +0 10 * * * /home/william/projects/sucks/sucks.sh clean -f 4/7 15 edge -f 1/14 10 ``` This means that every day at 10 am, it might do something. 4 days out @@ -118,9 +118,9 @@ vacbot.run(Charge()) # return to the charger ## Developing If you'd like to join in on developing, I recommend checking out the code, -doing `pipenv install` to set up a virtual environment, and then `pipenv shell` -to start using it. You can run the existing tests using `nosetests`. Current -test are not yet comprehensive, as the integrated nature of this makes it difficult. +setting up a virtual environment, and doing `pip install -e .`. You can +run the existing tests using `nosetests`. Current test are not yet +comprehensive, as the integrated nature of this makes it difficult. But I aim to reduce that problem over time, so please add tests as you go. @@ -142,12 +142,4 @@ very helpful in figuring out what the Android app was up to, experiments](https://community.smartthings.com/t/ecovacs-deebot-n79/93410/33) with his device, and * All the users who have given useful feedback and reported on how it is -working for them. - - - - - -## To Do - -* add a status commmand +working for them, and even contributed code. diff --git a/setup.py b/setup.py index 82f3f10..838dd8e 100644 --- a/setup.py +++ b/setup.py @@ -1,24 +1,17 @@ -from setuptools import setup, find_packages from codecs import open from os import path -from pipenv.project import Project -from pipenv.utils import convert_deps_to_pip - -pfile = Project(chdir=False).parsed_pipfile -requirements = convert_deps_to_pip(pfile['packages'], r=False) -test_requirements = convert_deps_to_pip(pfile['dev-packages'], r=False) - +from setuptools import setup, find_packages here = path.abspath(path.dirname(__file__)) # Get the long description from the README file -with open(path.join(here, 'README.md'), encoding='utf-8') as f: +with open(path.join(here, 'README.rst'), encoding='utf-8') as f: long_description = f.read() setup( name='sucks', - version='0.8.1', + version='0.8.2', description='a library for controlling certain robot vacuums', long_description=long_description, @@ -60,20 +53,28 @@ # simple. Or you can use find_packages(). packages=find_packages(exclude=['contrib', 'docs', 'tests']), - # List run-time dependencies here. These will be installed by pip when # your project is installed. For an analysis of "install_requires" vs pip's # requirements files see: # https://packaging.python.org/en/latest/requirements.html - install_requires=convert_deps_to_pip(pfile['packages'], r=False), + install_requires=[ + 'sleekxmpp>=1.3', + 'click>=6', + 'requests>=2.18', + 'pycryptodome>=3.4', + 'pycountry-convert>=0.5' + ], # List additional groups of dependencies here (e.g. development # dependencies). You can install these using the following syntax, # for example: # $ pip install -e .[dev,test] extras_require={ - 'dev': convert_deps_to_pip(pfile['dev-packages'], r=False), + 'dev': [ + 'nose', + 'requests-mock>=1.3' + ], }, # If there are data files included in your packages that need to be