Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
foosel committed Jun 27, 2015
0 parents commit 630979f
Show file tree
Hide file tree
Showing 8 changed files with 204 additions and 0 deletions.
17 changes: 17 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# This file is for unifying the coding style for different editors and IDEs
# editorconfig.org

root = true

[*]
end_of_line = lf
charset = utf-8
insert_final_newline = true
trim_trailing_whitespace = true

[**.py]
indent_style = tab

[**.js]
indent_style = space
indent_size = 4
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
*.pyc
*.swp
.idea
*.iml
build
dist
*.egg*
.DS_Store
*.zip
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include README.md
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# OctoPrint-Autoselect

The Autoselect Plugin will automatically select newly uploaded files for
printing if there is an active connection to a printer and currently no print
job running.

## Setup

Install via the bundled [Plugin Manager](https://github.com/foosel/OctoPrint/wiki/Plugin:-Plugin-Manager)
or manually using this URL:

https://github.com/OctoPrint/OctoPrint-Autoselect/archive/master.zip
29 changes: 29 additions & 0 deletions extras/autoselect.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
layout: plugin

id: autoselect
title: OctoPrint-Autoselect
description: Automatically selects freshly uploaded files for printing if no print job is currently active.
author: Gina Häußge
license: AGPLv3

date: 2015-06-27

homepage: https://github.com/OctoPrint/OctoPrint-Autoselect
source: https://github.com/OctoPrint/OctoPrint-Autoselect
archive: https://github.com/OctoPrint/OctoPrint-Autoselect/archive/master.zip

tags:
- ux
- upload
- filemanagement

compatibility:
# list of compatible versions, for example 1.2.0. If left empty no specific version requirement will be assumed
octoprint:
- 1.2.0
---

The Autoselect Plugin will automatically select newly uploaded files for
printing if there is an active connection to a printer and currently no print
job running.
33 changes: 33 additions & 0 deletions octoprint_autoselect/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# coding=utf-8
from __future__ import absolute_import

import octoprint.plugin
from octoprint.filemanager.destinations import FileDestinations

class AutoselectPlugin(octoprint.plugin.EventHandlerPlugin):
def on_event(self, event, payload):
if event != "Upload":
return

if not self._printer.is_ready():
self._logger.debug("Printer is not ready, not autoselecting uploaded file")
return

filename = payload["file"]
target = payload["target"]

if target == FileDestinations.SDCARD:
path = filename
sd = True
else:
path = self._file_manager.path_on_disk(target, filename)
sd = False

self._logger.info("Selecting {} on {} that was just uploaded".format(filename, target))
self._printer.select_file(path, sd, False)

__plugin_name__ = "Autoselect Plugin"

def __plugin_load__():
global __plugin_implementation__
__plugin_implementation__ = AutoselectPlugin()
9 changes: 9 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
###
# This file is only here to make sure that something like
#
# pip install -e .
#
# works as expected. Requirements can be found in setup.py.
###

.
94 changes: 94 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# coding=utf-8

########################################################################################################################
### Do not forget to adjust the following variables to your own plugin.

# The plugin's identifier, has to be unique
plugin_identifier = "autoselect"

# The plugin's python package, should be "octoprint_<plugin identifier>", has to be unique
plugin_package = "octoprint_autoselect"

# The plugin's human readable name. Can be overwritten within OctoPrint's internal data via __plugin_name__ in the
# plugin module
plugin_name = "OctoPrint-Autoselect"

# The plugin's version. Can be overwritten within OctoPrint's internal data via __plugin_version__ in the plugin module
plugin_version = "0.1.0"

# The plugin's description. Can be overwritten within OctoPrint's internal data via __plugin_description__ in the plugin
# module
plugin_description = """Automatically selects freshly uploaded files for printing if no print job is currently active."""

# The plugin's author. Can be overwritten within OctoPrint's internal data via __plugin_author__ in the plugin module
plugin_author = "Gina Häußge"

# The plugin's author's mail address.
plugin_author_email = "[email protected]"

# The plugin's homepage URL. Can be overwritten within OctoPrint's internal data via __plugin_url__ in the plugin module
plugin_url = "https://github.com/OctoPrint/OctoPrint-Autoselect"

# The plugin's license. Can be overwritten within OctoPrint's internal data via __plugin_license__ in the plugin module
plugin_license = "AGPLv3"

# Any additional requirements besides OctoPrint should be listed here
plugin_requires = []

### --------------------------------------------------------------------------------------------------------------------
### More advanced options that you usually shouldn't have to touch follow after this point
### --------------------------------------------------------------------------------------------------------------------

# Additional package data to install for this plugin. The subfolders "templates", "static" and "translations" will
# already be installed automatically if they exist.
plugin_additional_data = []

# Any additional python packages you need to install with your plugin that are not contains in <plugin_package>.*
plugin_addtional_packages = []

# Any python packages within <plugin_package>.* you do NOT want to install with your plugin
plugin_ignored_packages = []

# Additional parameters for the call to setuptools.setup. If your plugin wants to register additional entry points,
# define dependency links or other things like that, this is the place to go. Will be merged recursively with the
# default setup parameters as provided by octoprint_setuptools.create_plugin_setup_parameters using
# octoprint.util.dict_merge.
#
# Example:
# plugin_requires = ["someDependency==dev"]
# additional_setup_parameters = {"dependency_links": ["https://github.com/someUser/someRepo/archive/master.zip#egg=someDependency-dev"]}
additional_setup_parameters = {}

########################################################################################################################

from setuptools import setup

try:
import octoprint_setuptools
except:
print("Could not import OctoPrint's setuptools, are you sure you are running that under "
"the same python installation that OctoPrint is installed under?")
import sys
sys.exit(-1)

setup_parameters = octoprint_setuptools.create_plugin_setup_parameters(
identifier=plugin_identifier,
package=plugin_package,
name=plugin_name,
version=plugin_version,
description=plugin_description,
author=plugin_author,
mail=plugin_author_email,
url=plugin_url,
license=plugin_license,
requires=plugin_requires,
additional_packages=plugin_addtional_packages,
ignored_packages=plugin_ignored_packages,
additional_data=plugin_additional_data
)

if len(additional_setup_parameters):
from octoprint.util import dict_merge
setup_parameters = dict_merge(setup_parameters, additional_setup_parameters)

setup(**setup_parameters)

0 comments on commit 630979f

Please sign in to comment.