From efc12119b8b2f0886a4444563594041dfd48841a Mon Sep 17 00:00:00 2001 From: Lea Date: Sun, 24 Sep 2023 16:39:30 +0200 Subject: [PATCH] init commit --- .editorconfig | 18 +++++ .gitignore | 9 +++ MANIFEST.in | 4 + README.md | 17 +++++ babel.cfg | 8 ++ octoprint_liveleak/__init__.py | 14 ++++ octoprint_liveleak/static/liveleak.css | 11 +++ requirements.txt | 9 +++ setup.cfg | 2 + setup.py | 102 +++++++++++++++++++++++++ 10 files changed, 194 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 MANIFEST.in create mode 100644 README.md create mode 100644 babel.cfg create mode 100644 octoprint_liveleak/__init__.py create mode 100644 octoprint_liveleak/static/liveleak.css create mode 100644 requirements.txt create mode 100644 setup.cfg create mode 100644 setup.py diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..df59181f0 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +# 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 = space +indent_size = 4 + +[**.js] +indent_style = space +indent_size = 4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..ecfcd6f99 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.pyc +*.swp +.idea +*.iml +build +dist +*.egg* +.DS_Store +*.zip diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 000000000..1c0583db1 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,4 @@ +include README.md +recursive-include octoprint_liveleak/templates * +recursive-include octoprint_liveleak/translations * +recursive-include octoprint_liveleak/static * diff --git a/README.md b/README.md new file mode 100644 index 000000000..15eb07668 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# LiveLeak + +**TODO:** Describe what your plugin does. + +## Setup + +Install via the bundled [Plugin Manager](https://docs.octoprint.org/en/master/bundledplugins/pluginmanager.html) +or manually using this URL: + + https://git.amogus.cloud/lea/octoprint-liveleak/archive/master.zip + +**TODO:** Describe how to install your plugin, if more needs to be done than just installing it via pip or through +the plugin manager. + +## Configuration + +**TODO:** Describe your plugin's configuration options (if any). diff --git a/babel.cfg b/babel.cfg new file mode 100644 index 000000000..202a4ee9c --- /dev/null +++ b/babel.cfg @@ -0,0 +1,8 @@ +[python: */**.py] + +[jinja2: */**.jinja2] +silent=false +extensions=jinja2.ext.do, octoprint.util.jinja.trycatch + +[javascript: */**.js] +extract_messages = gettext, ngettext diff --git a/octoprint_liveleak/__init__.py b/octoprint_liveleak/__init__.py new file mode 100644 index 000000000..29ca7499c --- /dev/null +++ b/octoprint_liveleak/__init__.py @@ -0,0 +1,14 @@ +import octoprint.plugin + +__plugin_name__ = "LiveLeak" +__plugin_version__ = "1.0.0" +__plugin_description__ = "Insert a LiveLeak logo into the camera feed" +__plugin_pythoncompat__ = ">=3.7,<4" + +class LiveLeakPlugin(octoprint.plugin.AssetPlugin): + def get_assets(self): + return dict( + css=['liveleak.css'] + ) + +__plugin_implementation__ = LiveLeakPlugin() diff --git a/octoprint_liveleak/static/liveleak.css b/octoprint_liveleak/static/liveleak.css new file mode 100644 index 000000000..f6cbb105c --- /dev/null +++ b/octoprint_liveleak/static/liveleak.css @@ -0,0 +1,11 @@ +#webcam_rotator::before { + content: ""; + width: 20%; + height: 20%; + background: url('https://cdn.discordapp.com/attachments/966400443720826970/1155503444241682644/liveleak.png') 0 0 no-repeat; + position: absolute; + background-size: contain; + z-index: 1000; + top: 4px; + left: 4px; +} diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..a1dc46371 --- /dev/null +++ b/requirements.txt @@ -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. +### + +. diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 000000000..2a9acf13d --- /dev/null +++ b/setup.cfg @@ -0,0 +1,2 @@ +[bdist_wheel] +universal = 1 diff --git a/setup.py b/setup.py new file mode 100644 index 000000000..d72325859 --- /dev/null +++ b/setup.py @@ -0,0 +1,102 @@ +# 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 = "liveleak" + +# The plugin's python package, should be "octoprint_", has to be unique +plugin_package = "octoprint_liveleak" + +# The plugin's human readable name. Can be overwritten within OctoPrint's internal data via __plugin_name__ in the +# plugin module +plugin_name = "LiveLeak" + +# 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 = """Display a LiveLeak logo in the camera view""" + +# The plugin's author. Can be overwritten within OctoPrint's internal data via __plugin_author__ in the plugin module +plugin_author = "Lea" + +# The plugin's author's mail address. +plugin_author_email = "meow@lea.pet" + +# The plugin's homepage URL. Can be overwritten within OctoPrint's internal data via __plugin_url__ in the plugin module +plugin_url = "https://git.amogus.cloud/lea/octoprint-liveleak" + +# 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. Note that if you add something here you'll also need to update +# MANIFEST.in to match to ensure that python setup.py sdist produces a source distribution that contains all your +# files. This is sadly due to how python's setup.py works, see also http://stackoverflow.com/a/14159430/2028598 +plugin_additional_data = [] + +# Any additional python packages you need to install with your plugin that are not contained in .* +plugin_additional_packages = [] + +# Any python packages within .* 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"]} +# "python_requires": ">=3,<4" blocks installation on Python 2 systems, to prevent confused users and provide a helpful error. +# Remove it if you would like to support Python 2 as well as 3 (not recommended). +additional_setup_parameters = {"python_requires": ">=3,<4"} + +######################################################################################################################## + +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_additional_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)