Archived
rm: 在main分支中取消了对Redis数据库的支持, 将此功能移至Redis分支
This commit is contained in:
3 files changed
+7
-73
No files matched your search
@@ -6,11 +6,9 @@
|
|||||||
# @File Name: view.py
|
# @File Name: view.py
|
||||||
|
|
||||||
|
|
||||||
import os
|
|
||||||
from src.api import api
|
from src.api import api
|
||||||
from src.db import Database
|
from src.db import Database
|
||||||
from fastapi.responses import FileResponse
|
from fastapi.responses import FileResponse
|
||||||
from fastapi.responses import JSONResponse
|
|
||||||
|
|
||||||
|
|
||||||
@api.get('/query/{name}')
|
@api.get('/query/{name}')
|
||||||
@@ -21,8 +19,6 @@ async def query(name: str):
|
|||||||
|
|
||||||
@api.get('/query-all/')
|
@api.get('/query-all/')
|
||||||
async def query_all(limit: int = 30):
|
async def query_all(limit: int = 30):
|
||||||
if os.getenv('c_not_full'):
|
|
||||||
return JSONResponse({'code': -200, 'msg': 'Redis Database do not support this action'})
|
|
||||||
data = Database().query_all()[:limit]
|
data = Database().query_all()[:limit]
|
||||||
result = {}
|
result = {}
|
||||||
for i in data:
|
for i in data:
|
||||||
|
|||||||
+4
-8
@@ -7,21 +7,17 @@
|
|||||||
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import sqlite3 as operator
|
||||||
from urllib.request import urlretrieve
|
from urllib.request import urlretrieve
|
||||||
from src.config import Config
|
from src.config import Config
|
||||||
|
from src.db.db import SQLite as Database
|
||||||
|
|
||||||
database = Config.database
|
database = Config.database
|
||||||
|
|
||||||
if database == 'sqlite':
|
if not os.path.exists('./src/db/data.sqlite'):
|
||||||
import sqlite3 as operator
|
|
||||||
|
|
||||||
if not os.path.exists('./src/db/data.sqlite'):
|
|
||||||
print('Downloading database file. Please wait...')
|
print('Downloading database file. Please wait...')
|
||||||
file_url = 'https://static.rtast.cn/data.sqlite'
|
file_url = 'https://static.rtast.cn/data.sqlite'
|
||||||
urlretrieve(file_url, './src/db/data.sqlite')
|
urlretrieve(file_url, './src/db/data.sqlite')
|
||||||
print('Download database file successfully.')
|
print('Download database file successfully.')
|
||||||
from src.db.db import SQLite as Database
|
|
||||||
elif 'redis' in database:
|
|
||||||
import redis as operator
|
|
||||||
from src.db.db import Redis as Database
|
|
||||||
__all__ = [Database, operator]
|
__all__ = [Database, operator]
|
||||||
@@ -54,61 +54,3 @@ class SQLite(Base):
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
self.conn = operator.connect('./src/db/data.sqlite')
|
self.conn = operator.connect('./src/db/data.sqlite')
|
||||||
self.cursor = self.conn.cursor()
|
self.cursor = self.conn.cursor()
|
||||||
|
|
||||||
|
|
||||||
class Redis(Base):
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__()
|
|
||||||
self.host: str = os.getenv('c_host')
|
|
||||||
self.port: int = int(os.getenv('c_port'))
|
|
||||||
self.password: str = os.getenv('c_password') # if is None then it is None. lol
|
|
||||||
self.conn = operator.Redis(host=self.host,
|
|
||||||
port=self.port,
|
|
||||||
password=self.password,
|
|
||||||
decode_responses=True)
|
|
||||||
|
|
||||||
def __del__(self):
|
|
||||||
self.conn.close()
|
|
||||||
|
|
||||||
def query(self, _id: str) -> tuple:
|
|
||||||
return self._get(_id)
|
|
||||||
|
|
||||||
def insert(self, _id: str) -> bool:
|
|
||||||
return self._set(_id)
|
|
||||||
|
|
||||||
def update(self, _id: str, times: int) -> bool:
|
|
||||||
return self._set(_id, times)
|
|
||||||
|
|
||||||
def query_all(self) -> list:
|
|
||||||
return self._get_all()
|
|
||||||
|
|
||||||
def query_image(self, theme: str) -> list:
|
|
||||||
return self._get_image(theme)
|
|
||||||
|
|
||||||
def _get(self, _id: str) -> tuple:
|
|
||||||
result = self.conn.get(_id)
|
|
||||||
if result is None:
|
|
||||||
self._set(_id)
|
|
||||||
return tuple([_id, 0])
|
|
||||||
self._set(_id, int(result))
|
|
||||||
return tuple([_id, int(result)])
|
|
||||||
|
|
||||||
def _set(self, _id: str, times: int = 0) -> bool:
|
|
||||||
times += 1
|
|
||||||
return self.conn.set(_id, times)
|
|
||||||
|
|
||||||
def _get_all(self) -> list:
|
|
||||||
results = self.conn.keys()
|
|
||||||
return results
|
|
||||||
|
|
||||||
def _get_image(self, theme: str) -> list:
|
|
||||||
images = []
|
|
||||||
for i in range(10):
|
|
||||||
images.append([i, self.conn.get(f'{theme}-{i}')])
|
|
||||||
width = int(self.conn.get(f'{theme}-width'))
|
|
||||||
height = int(self.conn.get(f'{theme}-height'))
|
|
||||||
for j in range(10):
|
|
||||||
images[j].append(width)
|
|
||||||
images[j].append(height)
|
|
||||||
|
|
||||||
return images
|
|
||||||
Reference in New Issue
Block a user