mirror of
https://github.com/RYGhub/royalnet.git
synced 2024-11-23 11:34:18 +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