mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-23 19:44:20 +00:00
Initial commit
This commit is contained in:
commit
5b8972fbb9
14 changed files with 237 additions and 0 deletions
31
.gitignore
vendored
Normal file
31
.gitignore
vendored
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# Royalnet ignores
|
||||||
|
config*.toml
|
||||||
|
downloads/
|
||||||
|
|
||||||
|
|
||||||
|
# Python ignores
|
||||||
|
**/__pycache__/
|
||||||
|
dist/
|
||||||
|
*.egg-info/
|
||||||
|
**/*.pyc
|
||||||
|
|
||||||
|
# PyCharm ignores
|
||||||
|
.idea/**/workspace.xml
|
||||||
|
.idea/**/tasks.xml
|
||||||
|
.idea/**/usage.statistics.xml
|
||||||
|
.idea/**/dictionaries
|
||||||
|
.idea/**/shelf
|
||||||
|
.idea/**/contentModel.xml
|
||||||
|
.idea/**/dataSources/
|
||||||
|
.idea/**/dataSources.ids
|
||||||
|
.idea/**/dataSources.local.xml
|
||||||
|
.idea/**/sqlDataSources.xml
|
||||||
|
.idea/**/dynamic.xml
|
||||||
|
.idea/**/uiDesigner.xml
|
||||||
|
.idea/**/dbnavigator.xml
|
||||||
|
.idea/**/gradle.xml
|
||||||
|
.idea/**/libraries
|
||||||
|
.idea/**/markdown-navigator.xml
|
||||||
|
.idea/**/markdown-exported-files.xml
|
||||||
|
.idea/**/misc.xml
|
||||||
|
.idea/**/*.iml
|
5
README.md
Normal file
5
README.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# `examplepack`
|
||||||
|
|
||||||
|
This is an example Pack for [Royalnet](https://github.com/Steffo99/royalnet)!
|
||||||
|
|
||||||
|
> To be updated with more info on how to create your own pack.
|
21
examplepack/__init__.py
Normal file
21
examplepack/__init__.py
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# This file should not need to be changed.
|
||||||
|
|
||||||
|
from . import commands, tables, stars, events
|
||||||
|
from .commands import available_commands
|
||||||
|
from .tables import available_tables
|
||||||
|
from .stars import available_page_stars, available_exception_stars
|
||||||
|
from .events import available_events
|
||||||
|
|
||||||
|
from .version import semantic as __version__
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
"commands",
|
||||||
|
"tables",
|
||||||
|
"stars",
|
||||||
|
"events",
|
||||||
|
"available_commands",
|
||||||
|
"available_tables",
|
||||||
|
"available_page_stars",
|
||||||
|
"available_exception_stars",
|
||||||
|
"available_events",
|
||||||
|
]
|
12
examplepack/commands/__init__.py
Normal file
12
examplepack/commands/__init__.py
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# Imports go here!
|
||||||
|
# TODO: If you create a new command, remember to import it here...
|
||||||
|
from .example import ExampleCommand
|
||||||
|
|
||||||
|
# Enter the commands of your Pack here!
|
||||||
|
# TODO: and add it to the list here!
|
||||||
|
available_commands = [
|
||||||
|
ExampleCommand,
|
||||||
|
]
|
||||||
|
|
||||||
|
# Don't change this, it should automatically generate __all__
|
||||||
|
__all__ = [command.__name__ for command in available_commands]
|
12
examplepack/commands/example.py
Normal file
12
examplepack/commands/example.py
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
from typing import *
|
||||||
|
from royalnet.commands import *
|
||||||
|
from royalnet.utils import *
|
||||||
|
|
||||||
|
|
||||||
|
class ExampleCommand(Command):
|
||||||
|
name: str = "example"
|
||||||
|
|
||||||
|
description: str = "Say Hello to the world!"
|
||||||
|
|
||||||
|
async def run(self, args: CommandArgs, data: CommandData) -> None:
|
||||||
|
await data.reply("Hello world!")
|
12
examplepack/events/__init__.py
Normal file
12
examplepack/events/__init__.py
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# Imports go here!
|
||||||
|
# TODO: If you create a new event, remember to import it here...
|
||||||
|
from .example import ExampleEvent
|
||||||
|
|
||||||
|
# Enter the commands of your Pack here!
|
||||||
|
# TODO: and add it to the list here!
|
||||||
|
available_events = [
|
||||||
|
ExampleEvent,
|
||||||
|
]
|
||||||
|
|
||||||
|
# Don't change this, it should automatically generate __all__
|
||||||
|
__all__ = [command.__name__ for command in available_events]
|
10
examplepack/events/example.py
Normal file
10
examplepack/events/example.py
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
from typing import *
|
||||||
|
from royalnet.commands import *
|
||||||
|
from royalnet.utils import *
|
||||||
|
|
||||||
|
|
||||||
|
class ExampleEvent(Event):
|
||||||
|
name = "example"
|
||||||
|
|
||||||
|
async def run(self, **kwargs) -> dict:
|
||||||
|
return {"hello": "world"}
|
19
examplepack/stars/__init__.py
Normal file
19
examplepack/stars/__init__.py
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# Imports go here!
|
||||||
|
# TODO: If you create a new star, remember to import it here...
|
||||||
|
from .api_example import ApiExampleStar
|
||||||
|
from .api_excsample import ApiExcsampleStar
|
||||||
|
|
||||||
|
# Enter the PageStars of your Pack here!
|
||||||
|
# TODO: and to add it either to the list here if it is a PageStar...
|
||||||
|
available_page_stars = [
|
||||||
|
ApiExampleStar,
|
||||||
|
]
|
||||||
|
|
||||||
|
# Enter the ExceptionStars of your Pack here!
|
||||||
|
# TODO: or to the list here if it is an ExceptionStar!
|
||||||
|
available_exception_stars = [
|
||||||
|
ApiExcsampleStar,
|
||||||
|
]
|
||||||
|
|
||||||
|
# Don't change this, it should automatically generate __all__
|
||||||
|
__all__ = [command.__name__ for command in [*available_page_stars, *available_exception_stars]]
|
13
examplepack/stars/api_example.py
Normal file
13
examplepack/stars/api_example.py
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
from starlette.requests import Request
|
||||||
|
from starlette.responses import *
|
||||||
|
from royalnet.constellation import *
|
||||||
|
from royalnet.utils import *
|
||||||
|
|
||||||
|
|
||||||
|
class ApiExampleStar(PageStar):
|
||||||
|
path = "/api/example"
|
||||||
|
|
||||||
|
async def page(self, request: Request) -> JSONResponse:
|
||||||
|
return JSONResponse({
|
||||||
|
"hello": "world",
|
||||||
|
})
|
13
examplepack/stars/api_excsample.py
Normal file
13
examplepack/stars/api_excsample.py
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
from starlette.requests import Request
|
||||||
|
from starlette.responses import *
|
||||||
|
from royalnet.constellation import *
|
||||||
|
from royalnet.utils import *
|
||||||
|
|
||||||
|
|
||||||
|
class ApiExcsampleStar(ExceptionStar):
|
||||||
|
error = 404
|
||||||
|
|
||||||
|
async def page(self, request: Request) -> JSONResponse:
|
||||||
|
return JSONResponse({
|
||||||
|
"error": "404 not found",
|
||||||
|
})
|
10
examplepack/tables/__init__.py
Normal file
10
examplepack/tables/__init__.py
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Imports go here!
|
||||||
|
|
||||||
|
|
||||||
|
# Enter the tables of your Pack here!
|
||||||
|
available_tables = [
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
# Don't change this, it should automatically generate __all__
|
||||||
|
__all__ = [table.__name__ for table in available_tables]
|
19
examplepack/tables/example.py
Normal file
19
examplepack/tables/example.py
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
from sqlalchemy import *
|
||||||
|
from sqlalchemy.orm import *
|
||||||
|
from sqlalchemy.ext.declarative import declared_attr
|
||||||
|
|
||||||
|
|
||||||
|
class Example:
|
||||||
|
__tablename__ = "examples"
|
||||||
|
|
||||||
|
@declared_attr
|
||||||
|
def creator_id(self):
|
||||||
|
return Column(Integer, ForeignKey("users.uid"), primary_key=True)
|
||||||
|
|
||||||
|
@declared_attr
|
||||||
|
def creator(self):
|
||||||
|
return relationship("User", backref=backref("examples_createdx"))
|
||||||
|
|
||||||
|
@declared_attr
|
||||||
|
def example(self):
|
||||||
|
return Column(String, nullable=False, default="Hello world!")
|
2
examplepack/version.py
Normal file
2
examplepack/version.py
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# TODO: Increment this every new version of your pack!
|
||||||
|
semantic = "0.1.0"
|
58
pyproject.toml
Normal file
58
pyproject.toml
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
# Remember to run `poetry update` after you edit this file!
|
||||||
|
|
||||||
|
[tool.poetry]
|
||||||
|
# TODO: Insert here your Pack name!
|
||||||
|
name = "examplepack"
|
||||||
|
# TODO: Insert here your Pack description!
|
||||||
|
description = "An example pack for Royalnet."
|
||||||
|
# TODO: Increment this every new version of your pack!
|
||||||
|
version = "0.1.0"
|
||||||
|
# TODO: Set this to your full name and email!
|
||||||
|
authors = ["Name Surname <email@example.com>"]
|
||||||
|
# TODO: Set this to the license you want to use for your Pack!
|
||||||
|
license = ""
|
||||||
|
# TODO: Set this to the GitHub page of your pack (or another website)
|
||||||
|
homepage = "https://github.com/your-username/"
|
||||||
|
# TODO: Set this to a link to the Pack documentation (if there's any)
|
||||||
|
documentation = "https://gh.steffo.eu/royalpack/"
|
||||||
|
# TODO: Pick some classifiers to include your Pack in: https://pypi.org/classifiers/
|
||||||
|
classifiers = [
|
||||||
|
"Development Status :: 3 - Alpha",
|
||||||
|
"Operating System :: OS Independent",
|
||||||
|
"Programming Language :: Python :: 3.8",
|
||||||
|
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)"
|
||||||
|
]
|
||||||
|
readme = "README.md"
|
||||||
|
|
||||||
|
# Library dependencies
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.8"
|
||||||
|
|
||||||
|
[tool.poetry.dependencies.royalnet]
|
||||||
|
version = "^5.1.6"
|
||||||
|
# There will soon be a way to make all these optional
|
||||||
|
extras = [
|
||||||
|
"telegram",
|
||||||
|
"discord",
|
||||||
|
"alchemy_easy",
|
||||||
|
"bard",
|
||||||
|
"constellation",
|
||||||
|
"sentry",
|
||||||
|
"herald",
|
||||||
|
"coloredlogs"
|
||||||
|
]
|
||||||
|
|
||||||
|
# Development dependencies
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Optional dependencies
|
||||||
|
[tool.poetry.extras]
|
||||||
|
|
||||||
|
|
||||||
|
# Poetry stuff
|
||||||
|
# Leave it alone!
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry>=0.12"]
|
||||||
|
build-backend = "poetry.masonry.api"
|
Loading…
Reference in a new issue