From 32fc93aee869c3779a19c527c746c39ed25fac28 Mon Sep 17 00:00:00 2001 From: dgw Date: Sun, 19 Mar 2023 02:24:11 -0500 Subject: [PATCH] Initialize mostly-blank template for Yuuki to start building on --- .gitignore | 57 ++++++++++++++++++++++++++++++++++++ COPYING | 23 +++++++++++++++ MANIFEST.in | 6 ++++ NEWS | 0 README.md | 3 ++ setup.cfg | 25 ++++++++++++++++ setup.py | 25 ++++++++++++++++ sopel_amatsukaze/__init__.py | 0 sopel_amatsukaze/byte.py | 13 ++++++++ 9 files changed, 152 insertions(+) create mode 100644 .gitignore create mode 100644 COPYING create mode 100644 MANIFEST.in create mode 100644 NEWS create mode 100644 README.md create mode 100644 setup.cfg create mode 100755 setup.py create mode 100644 sopel_amatsukaze/__init__.py create mode 100644 sopel_amatsukaze/byte.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba74660 --- /dev/null +++ b/.gitignore @@ -0,0 +1,57 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..7d1cd07 --- /dev/null +++ b/COPYING @@ -0,0 +1,23 @@ + + Eiffel Forum License, version 2 + + 1. Permission is hereby granted to use, copy, modify and/or + distribute this package, provided that: + * copyright notices are retained unchanged, + * any distribution of this package, whether modified or not, + includes this license text. + 2. Permission is hereby also granted to distribute binary programs + which depend on this package. If the binary program depends on a + modified version of this package, you are encouraged to publicly + release the modified version of this package. + +*********************** + +THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT WARRANTY. ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE TO ANY PARTY FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THIS PACKAGE. + +*********************** diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..10b886b --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,6 @@ +include NEWS +include COPYING +include README.md + +recursive-exclude * __pycache__ +recursive-exclude * *.py[co] diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md new file mode 100644 index 0000000..1531df0 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# sopel-amatsukaze + +A plugin suite for Sopel that emulates most of Yuuki's Java-based Amatsukaze-chan bot. diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..56f755a --- /dev/null +++ b/setup.cfg @@ -0,0 +1,25 @@ +[metadata] +name = sopel-amatsukaze +version = 0.1.0 +description = A plugin suite for Sopel that emulates most of Yuuki's Java-based Amatsukaze-chan bot. +author = dgw +author_email = dgw@technobabbl.es +url = https://github.com/dgw/sopel-amatsukaze +license = Eiffel Forum License, version 2 +classifiers = + Intended Audience :: Developers + Intended Audience :: System Administrators + License :: Eiffel Forum License (EFL) + License :: OSI Approved :: Eiffel Forum License + Topic :: Communications :: Chat :: Internet Relay Chat + +[options] +packages = find: +zip_safe = false +include_package_data = true +install_requires = + sopel>=7.1 + +[options.entry_points] +sopel.plugins = + amatsukaze = sopel_amatsukaze diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..0707831 --- /dev/null +++ b/setup.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +from __future__ import print_function +import os +import sys +from setuptools import setup, find_packages + + +if __name__ == '__main__': + print('Sopel does not correctly load plugins installed with setup.py ' + 'directly. Please use "pip install .", or add ' + '{}/sopel_amatsukaze to core.extra in your config.' + .format(os.path.dirname(os.path.abspath(__file__))), + file=sys.stderr) + +with open('README.md') as readme_file: + readme = readme_file.read() + +with open('NEWS') as history_file: + history = history_file.read() + + +setup( + long_description=readme + '\n\n' + history, + long_description_content_type='text/markdown', +) diff --git a/sopel_amatsukaze/__init__.py b/sopel_amatsukaze/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sopel_amatsukaze/byte.py b/sopel_amatsukaze/byte.py new file mode 100644 index 0000000..4920125 --- /dev/null +++ b/sopel_amatsukaze/byte.py @@ -0,0 +1,13 @@ +# coding=utf8 +"""sopel-amatsukaze.byte + +Collect bytes and grow your HDD size. +""" +from __future__ import unicode_literals, absolute_import, division, print_function + +from sopel import plugin + + +@plugin.command('byte') +def bytes_game(bot, trigger): + bot.say('Hello, world!')