Skip to content
Open
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from bot_detector.api_public.src.core.config import DB_SEMAPHORE, settings
from bases.bot_detector.api_public.core.config import DB_SEMAPHORE, settings
from bot_detector.database import Settings as DBSettings
from bot_detector.database import get_session_factory
from sqlalchemy.ext.asyncio import AsyncSession
Expand Down
Original file line number Diff line number Diff line change
@@ -1,79 +1,79 @@
import logging
from contextlib import asynccontextmanager
from bot_detector.api_public.src import api
from bot_detector.api_public.src.core.fastapi.dependencies.kafka import kafka_manager
from bot_detector.api_public.src.core.fastapi.middleware import (
LoggingMiddleware,
PrometheusMiddleware,
)
from bot_detector.kafka import Settings as KafkaSettings
from bot_detector.kafka.repositories import RepoReportsToInsertProducer
from fastapi import FastAPI
from fastapi.middleware import Middleware
from fastapi.middleware.cors import CORSMiddleware
from prometheus_client import start_http_server
logger = logging.getLogger(__name__)
def init_routers(_app: FastAPI) -> None:
_app.include_router(api.router)
def make_middleware() -> list[Middleware]:
middleware = [
Middleware(
CORSMiddleware,
allow_origins=[
"http://osrsbotdetector.com/",
"https://osrsbotdetector.com/",
"http://localhost",
"http://localhost:8080",
],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
),
Middleware(LoggingMiddleware),
Middleware(PrometheusMiddleware),
]
return middleware
@asynccontextmanager
async def lifespan(app: FastAPI):
logger.info("startup initiated")
kafka_manager.set_producer(
key="reports_to_insert",
producer=RepoReportsToInsertProducer(
bootstrap_servers=KafkaSettings().KAFKA_BOOTSTRAP_SERVERS
),
)
producer = kafka_manager.get_producer(key="reports_to_insert")
await producer.start()
yield
await producer.stop()
logger.info("shutdown completed")
def create_app() -> FastAPI:
_app = FastAPI(
title="Bot-Detector-API",
description="Bot-Detector-API",
middleware=make_middleware(),
lifespan=lifespan,
)
init_routers(_app=_app)
return _app
app = create_app()
start_http_server(8000)
@app.get("/")
async def root():
return {"message": "Hello World"}
import logging
from contextlib import asynccontextmanager

from bases.bot_detector.api_public import routes as routes_pkg
from bases.bot_detector.api_public.core.fastapi.dependencies.kafka import kafka_manager
from bases.bot_detector.api_public.core.fastapi.middleware import (
LoggingMiddleware,
PrometheusMiddleware,
)
from bot_detector.kafka import Settings as KafkaSettings
from bot_detector.kafka.repositories import RepoReportsToInsertProducer
from fastapi import FastAPI
from fastapi.middleware import Middleware
from fastapi.middleware.cors import CORSMiddleware
from prometheus_client import start_http_server

logger = logging.getLogger(__name__)


def init_routers(_app: FastAPI) -> None:
_app.include_router(routes_pkg.router)


def make_middleware() -> list[Middleware]:
middleware = [
Middleware(
CORSMiddleware,
allow_origins=[
"http://osrsbotdetector.com/",
"https://osrsbotdetector.com/",
"http://localhost",
"http://localhost:8080",
],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
),
Middleware(LoggingMiddleware),
Middleware(PrometheusMiddleware),
]
return middleware


@asynccontextmanager
async def lifespan(app: FastAPI):
logger.info("startup initiated")
kafka_manager.set_producer(
key="reports_to_insert",
producer=RepoReportsToInsertProducer(
bootstrap_servers=KafkaSettings().KAFKA_BOOTSTRAP_SERVERS
),
)
producer = kafka_manager.get_producer(key="reports_to_insert")
await producer.start()
yield
await producer.stop()
logger.info("shutdown completed")


def create_app() -> FastAPI:
_app = FastAPI(
title="Bot-Detector-API",
description="Bot-Detector-API",
middleware=make_middleware(),
lifespan=lifespan,
)
init_routers(_app=_app)
return _app


app = create_app()


start_http_server(8000)


@app.get("/")
async def root():
return {"message": "Hello World"}
3 changes: 3 additions & 0 deletions bases/bot_detector/api_public/feedback/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from bases.bot_detector.api_public.feedback.routes import router

__all__ = ["router"]
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import logging

from bot_detector.api_public.src.app.views.input.feedback import FeedbackInput
from bases.bot_detector.api_public.feedback.schemas import FeedbackInput
from bot_detector.database.api_public import (
Player as dbPlayer,
PredictionFeedback as dbFeedback,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import logging

from bot_detector.api_public.src.app.repositories.feedback import Feedback
from bot_detector.api_public.src.app.views.input.feedback import FeedbackInput
from bot_detector.api_public.src.app.views.response.ok import Ok
from bot_detector.api_public.src.core.fastapi.dependencies.session import get_session
from bot_detector.api_public.src.core.fastapi.dependencies.to_jagex_name import (
from bases.bot_detector.api_public.feedback.repository import Feedback
from bases.bot_detector.api_public.feedback.schemas import FeedbackInput
from bases.bot_detector.api_public.shared.responses import Ok
from bases.bot_detector.api_public.core.fastapi.dependencies.session import get_session
from bases.bot_detector.api_public.core.fastapi.dependencies.to_jagex_name import (
to_jagex_name,
)
from fastapi import APIRouter, Depends, HTTPException, status
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,11 @@ def player_name_validator(cls, value: str):
return value
case _:
raise ValueError("Invalid format for player_name")


class FeedbackScore(BaseModel):
count: int
possible_ban: bool
confirmed_ban: bool
confirmed_player: bool
vote: Optional[int] = Field(None, ge=-1, le=1)
3 changes: 3 additions & 0 deletions bases/bot_detector/api_public/labels/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from bases.bot_detector.api_public.labels.routes import router

__all__ = ["router"]
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import logging

from bot_detector.api_public.src.app.repositories.labels import LabelRepository
from bot_detector.api_public.src.app.views.response.label import LabelResponse
from bot_detector.api_public.src.core.fastapi.dependencies.session import get_session
from bases.bot_detector.api_public.labels.repository import LabelRepository
from bases.bot_detector.api_public.labels.schemas import LabelResponse
from bases.bot_detector.api_public.core.fastapi.dependencies.session import get_session
from fastapi import APIRouter, Depends, status

router = APIRouter(tags=["Labels"])
Expand Down
3 changes: 3 additions & 0 deletions bases/bot_detector/api_public/player/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from bases.bot_detector.api_public.player.routes import router

__all__ = ["router"]
Loading