chooo choooo
This commit is contained in:
		@@ -30,6 +30,11 @@ class ValidKarmaRetrievalRequest(BaseModel):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    keyword: str
 | 
					    keyword: str
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ValidTopKarmaRequest(BaseModel):
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    - **n**: Number of top results to return (default: 10)
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    n: int | None = 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class KarmaDB:
 | 
					class KarmaDB:
 | 
				
			||||||
    def __init__(self):
 | 
					    def __init__(self):
 | 
				
			||||||
@@ -47,10 +52,10 @@ class KarmaDB:
 | 
				
			|||||||
                        'errorText': f'No records for {keyword}',
 | 
					                        'errorText': f'No records for {keyword}',
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                
 | 
					                
 | 
				
			||||||
    async def get_top_10(self):
 | 
					    async def get_top(self, n: int = 10):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            async with sqlite3.connect(self.db_path, timeout=2) as db_conn:
 | 
					            async with sqlite3.connect(self.db_path, timeout=2) as db_conn:
 | 
				
			||||||
                async with db_conn.execute("SELECT keyword, score FROM karma ORDER BY score DESC LIMIT 10") as db_cursor:
 | 
					                async with db_conn.execute("SELECT keyword, score FROM karma ORDER BY score DESC LIMIT ?", (n,)) as db_cursor:
 | 
				
			||||||
                    return await db_cursor.fetchall()
 | 
					                    return await db_cursor.fetchall()
 | 
				
			||||||
        except Exception as e:
 | 
					        except Exception as e:
 | 
				
			||||||
            print(traceback.format_exc())
 | 
					            print(traceback.format_exc())
 | 
				
			||||||
@@ -111,14 +116,23 @@ class Karma(FastAPI):
 | 
				
			|||||||
            app.add_api_route(f"/{endpoint}/", handler, methods=["POST"])
 | 
					            app.add_api_route(f"/{endpoint}/", handler, methods=["POST"])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    async def top_karma_handler(self):
 | 
					    async def top_karma_handler(self, request: Request, data: ValidTopKarmaRequest | None = None):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        /karma/top/
 | 
					        /karma/top/
 | 
				
			||||||
        Get top 10 for karma
 | 
					        Get top keywords for karma
 | 
				
			||||||
 | 
					        Requires key
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if not self.util.check_key(request.url.path, request.headers.get('X-Authd-With')):
 | 
				
			||||||
 | 
					            raise HTTPException(status_code=403, detail="Unauthorized")
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					        n = 10
 | 
				
			||||||
 | 
					        if data:
 | 
				
			||||||
 | 
					            n = data.n
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            top10 = await self.db.get_top_10()
 | 
					            top10 = await self.db.get_top(n=n)
 | 
				
			||||||
            return top10
 | 
					            return top10
 | 
				
			||||||
        except Exception as e:
 | 
					        except Exception as e:
 | 
				
			||||||
            print(traceback.format_exc())
 | 
					            print(traceback.format_exc())
 | 
				
			||||||
@@ -131,6 +145,7 @@ class Karma(FastAPI):
 | 
				
			|||||||
        """
 | 
					        """
 | 
				
			||||||
        /karma/get/
 | 
					        /karma/get/
 | 
				
			||||||
        Get current karma value
 | 
					        Get current karma value
 | 
				
			||||||
 | 
					        Requires key
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        keyword = data.keyword
 | 
					        keyword = data.keyword
 | 
				
			||||||
@@ -150,7 +165,8 @@ class Karma(FastAPI):
 | 
				
			|||||||
    async def modify_karma_handler(self, data: ValidKarmaUpdateRequest, request: Request):
 | 
					    async def modify_karma_handler(self, data: ValidKarmaUpdateRequest, request: Request):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        /karma/update/
 | 
					        /karma/update/
 | 
				
			||||||
        Update karma count (requires PUT KEY)
 | 
					        Update karma count 
 | 
				
			||||||
 | 
					        Requires key
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if not self.util.check_key(request.url.path, request.headers.get('X-Authd-With'), 2):
 | 
					        if not self.util.check_key(request.url.path, request.headers.get('X-Authd-With'), 2):
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user