commit 32fc93aee869c3779a19c527c746c39ed25fac28 Author: dgw Date: Sun Mar 19 02:24:11 2023 -0500 Initialize mostly-blank template for Yuuki to start building on 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!')