🌐 Integrated Italian translation

This commit is contained in:
Mawoka
2022-08-29 16:05:37 +02:00
parent 3a93ff89bb
commit 56e78dd25a
8 changed files with 76 additions and 2 deletions
+2 -1
View File
@@ -12,7 +12,7 @@ from classquiz.config import settings
from classquiz.db import database
from classquiz.routers import users, quiz, utils, stats, storage, search, testing_routes, editor
from classquiz.socket_server import sio
from classquiz.helpers import meilisearch_init
from classquiz.helpers import meilisearch_init, telemetry_ping
settings = settings()
if settings.sentry_dsn:
@@ -39,6 +39,7 @@ async def startup() -> None:
if not database_.is_connected:
await database_.connect()
await meilisearch_init()
await telemetry_ping()
@app.on_event("shutdown")
+1
View File
@@ -38,6 +38,7 @@ class Settings(BaseSettings):
google_client_secret: Optional[str]
github_client_id: Optional[str]
github_client_secret: Optional[str]
telemetry_enabled: bool = True
# storage_backend
storage_backend: str | None = "deta"
+9
View File
@@ -119,6 +119,15 @@ class Quiz(ormar.Model):
database = database
class InstanceData(ormar.Model):
instance_id: uuid.UUID = ormar.UUID(primary_key=True, default=uuid.uuid4(), nullable=False, unique=True)
class Meta:
tablename = "instance_data"
metadata = metadata
database = database
class Token(BaseModel):
"""
For JWT
+20 -1
View File
@@ -5,7 +5,9 @@
import asyncio
from typing import Optional
from classquiz.db.models import Quiz, User
import ormar.exceptions
from classquiz.db.models import Quiz, User, InstanceData
import xlsxwriter
from aiohttp import ClientSession
from io import BytesIO
@@ -114,6 +116,23 @@ async def meilisearch_init():
print("Finished MeiliSearch synchronisation")
async def telemetry_ping():
try:
instance_data = await InstanceData.objects.first()
except ormar.exceptions.NoMatch:
instance_data = InstanceData()
await instance_data.save()
async with ClientSession() as session, session.post(
f"https://cit.mawoka.eu.org/public/{instance_data.instance_id}",
json={
"public_quizzes": await Quiz.objects.filter(public=True).count(),
"private_quizzes": await Quiz.objects.filter(public=False).count(),
"users": await User.objects.count(),
},
):
return
def check_hashcash(data: str, input_data: str, claim_in: Optional[str] = "19") -> bool:
"""
It checks that the hashcash is valid, and if it is, it returns True