asFrants commited on
Commit
11fe449
1 Parent(s): d0f5098

remove templates

Browse files
main.py CHANGED
@@ -6,16 +6,18 @@ from fastapi import FastAPI, Request, Depends
6
  from fastapi.staticfiles import StaticFiles
7
  from fastapi.responses import HTMLResponse, RedirectResponse
8
  from fastapi.templating import Jinja2Templates
 
9
  from loguru import logger
10
- from app import Summarizer, TextRequest
11
  from app import (
 
12
  EN_SENTIMENT_MODEL,
13
  EN_SUMMARY_MODEL,
14
  )
15
- from app import DEFAULT_EN_TEXT
16
  from models.forms import VerificationForm
17
  from models.exceptions import MyHTTPException, my_http_exception_handler
18
- from models.security import AuthUsers
19
 
20
 
21
  app = FastAPI()
@@ -70,22 +72,29 @@ async def verify_page(request: Request):
70
 
71
 
72
  @app.post("/verify")
73
- async def verify(request: Request, checked_user: bool = Depends(users.get_cookie_data)):
74
  form = VerificationForm(request)
75
  await form.load_data()
76
  if await form.is_valid():
77
  logger.info("Form is valid")
78
  response = RedirectResponse("/index", status_code=302)
79
- if not checked_user:
80
- user_token = users.generate_user_token()
81
- users.add_user_session(user_token)
82
- response.set_cookie(key="Authorization", value=user_token)
83
- logger.info(f"Issued token: {user_token}")
84
  return response
85
  logger.info("Validation error")
86
  return await verify_page(request)
87
 
88
 
 
 
 
 
 
 
 
 
 
 
 
89
  @app.get("/")
90
  async def get_main_page():
91
  return RedirectResponse("/index", status_code=302)
@@ -100,7 +109,7 @@ def get_summary(text: TextRequest, lang: str, request: gr.Request):
100
  return "Sorry. You are not verified."
101
 
102
 
103
- with gr.Blocks() as demo:
104
  with gr.Column(scale=2, min_width=600):
105
  en_sum_description = gr.Markdown(value=f"Model for Summary: {EN_SUMMARY_MODEL}")
106
  en_sent_description = gr.Markdown(
@@ -130,6 +139,5 @@ with gr.Blocks() as demo:
130
  [en_outputs],
131
  )
132
 
133
- # demo.launch(server_name="127.0.0.1", server_port=8080, share=False)
134
  # mounting at the root path
135
  app = gr.mount_gradio_app(app, demo, path="/index")
 
6
  from fastapi.staticfiles import StaticFiles
7
  from fastapi.responses import HTMLResponse, RedirectResponse
8
  from fastapi.templating import Jinja2Templates
9
+ from typing import Annotated
10
  from loguru import logger
11
+ from app import Summarizer, TextRequest, Result
12
  from app import (
13
+ DEFAULT_EN_TEXT,
14
  EN_SENTIMENT_MODEL,
15
  EN_SUMMARY_MODEL,
16
  )
17
+
18
  from models.forms import VerificationForm
19
  from models.exceptions import MyHTTPException, my_http_exception_handler
20
+ from models.security import AuthUsers, check_api_credentials
21
 
22
 
23
  app = FastAPI()
 
72
 
73
 
74
  @app.post("/verify")
75
+ async def verify(request: Request, token: str = Depends(users.get_cookie_data)):
76
  form = VerificationForm(request)
77
  await form.load_data()
78
  if await form.is_valid():
79
  logger.info("Form is valid")
80
  response = RedirectResponse("/index", status_code=302)
81
+ response.set_cookie(key="Authorization", value=token)
 
 
 
 
82
  return response
83
  logger.info("Validation error")
84
  return await verify_page(request)
85
 
86
 
87
+ @app.post("/get_summary_api", response_model=Result)
88
+ async def summ_api(
89
+ request: TextRequest,
90
+ lang: str,
91
+ username: Annotated[str, Depends(check_api_credentials)],
92
+ ):
93
+ results = pipe.summarize(request.text, lang=lang)
94
+ logger.info(f"API response: {results}")
95
+ return results
96
+
97
+
98
  @app.get("/")
99
  async def get_main_page():
100
  return RedirectResponse("/index", status_code=302)
 
109
  return "Sorry. You are not verified."
110
 
111
 
112
+ with gr.Blocks(css="/static/css/style.css") as demo:
113
  with gr.Column(scale=2, min_width=600):
114
  en_sum_description = gr.Markdown(value=f"Model for Summary: {EN_SUMMARY_MODEL}")
115
  en_sent_description = gr.Markdown(
 
139
  [en_outputs],
140
  )
141
 
 
142
  # mounting at the root path
143
  app = gr.mount_gradio_app(app, demo, path="/index")
models/security.py CHANGED
@@ -21,9 +21,9 @@ security = HTTPBasic()
21
 
22
  class AuthUsers:
23
  REQUESTS_LIMIT = 3 # 3 REQUESTS PER MINUTE
24
- AUTH_TIME = 10 # 10 MINUTES
25
  users: set
26
- users_auth: defaultdict(list)
27
 
28
  def __init__(self):
29
  self.users = set()
@@ -66,12 +66,14 @@ class AuthUsers:
66
 
67
  def get_cookie_data(
68
  self, user_token: str = Cookie(default=None, alias="Authorization")
69
- ) -> list:
70
- if not user_token or user_token not in self.users:
 
 
 
71
  logger.info("Unauthorized user")
72
- return False
73
  logger.info(f"Verified user with token: {user_token}")
74
- return True
75
 
76
 
77
  credentials_exception = MyHTTPException(
 
21
 
22
  class AuthUsers:
23
  REQUESTS_LIMIT = 3 # 3 REQUESTS PER MINUTE
24
+ AUTH_TIME = 1 # 1 MINUTES
25
  users: set
26
+ users_auth: defaultdict
27
 
28
  def __init__(self):
29
  self.users = set()
 
66
 
67
  def get_cookie_data(
68
  self, user_token: str = Cookie(default=None, alias="Authorization")
69
+ ) -> str:
70
+ if not user_token:
71
+ user_token = self.generate_user_token()
72
+ if user_token not in self.users:
73
+ self.users.add(user_token)
74
  logger.info("Unauthorized user")
 
75
  logger.info(f"Verified user with token: {user_token}")
76
+ return user_token
77
 
78
 
79
  credentials_exception = MyHTTPException(
templates/components/_base_old.html DELETED
@@ -1,28 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- {% include 'components/_head.html' %}
6
- {% block page_head %}{% endblock %}
7
- </head>
8
-
9
- <body style="width: 100%; margin: 0; padding: 0; display: flex;
10
- flex-direction: column; flex-grow: 1;" class="bg-dark">
11
-
12
- {% include 'components/_page_loader.html' %}
13
- {% with messages = get_flashed_messages(request) %}
14
- {%if messages %}
15
- {% for message in messages %}
16
- <div class="alert alert-primary">
17
- <strong> {{ message }} </strong>
18
- </div>
19
- {% endfor %}
20
- {% endif %}
21
- {% endwith %}
22
-
23
- {% block page_content %}{% endblock %}
24
-
25
- {% include 'components/_scripts.html' %}
26
-
27
- </body>
28
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/components/_footer.html DELETED
@@ -1,26 +0,0 @@
1
- <footer class="footer pt-4 pb-5 bg-dark text-white">
2
- <div class="container col-6 align-items-center">
3
- <div class="d-flex justify-content-center">
4
- <a href="https://www.facebook.com/alexander_frantsev/" data-toggle="tooltip" data-placement="top" title="facebook" class="icon m-3">
5
- <span class="fab fa-facebook"></span>
6
- </a>
7
- <a href="https://instagram.com/asfrants/" data-toggle="tooltip" data-placement="top" title="instagram" class="icon m-3">
8
- <span class="fab fa-instagram"></span>
9
- </a>
10
- <a href="https://t.me/as_frantsev/" data-toggle="tooltip" data-placement="top" title="telegram" class="icon m-3">
11
- <span class="fab fa-telegram"></span>
12
- </a>
13
- <a href="https://linkedin.com/in/asfrantsev" data-toggle="tooltip" data-placement="top" title="linkedin" class="icon m-3">
14
- <span class="fab fa-linkedin"></span>
15
- </a>
16
- <a href="https://github.com/whoknowswhocares" data-toggle="tooltip" data-placement="top" title="github" class="icon m-3">
17
- <span class="fab fa-github"></span>
18
- </a>
19
- </div>
20
- <div class="col mb-md-0">
21
- <div class="d-flex text-center justify-content-center align-items-center" role="contentinfo">
22
- <p class="fw-normal mb-0">Copyright © FTech 2023-2024. All rights reserved.</p>
23
- </div>
24
- </div>
25
- </div>
26
- </footer>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/components/_header.html DELETED
@@ -1,32 +0,0 @@
1
-
2
- <header class="header-global">
3
-
4
- <nav id="navbar-main" aria-label="Primary navigation" class="navbar navbar-main navbar-expand-lg navbar-theme-primary headroom navbar-dark">
5
- <div class="container position-relative">
6
-
7
- <div class="d-flex align-items-center">
8
- <img class="navbar-brand-dark" src="{{ url_for('static',path='/favicon/favicon.svg')}}" alt="menuimage">
9
- <button class="navbar-toggler ms-1" type="button" data-bs-toggle="collapse" data-bs-target="#navbar_global"
10
- aria-controls="navbar_global" aria-expanded="false" aria-label="Toggle navigation">
11
- <span class="navbar-toggler-icon"></span>
12
- </button>
13
- </div>
14
-
15
- <div class="navbar-collapse collapse me-auto" id="navbar_global">
16
- <div class="navbar-collapse-header">
17
- <div class="row">
18
- <div class="col-1 collapse-close">
19
- <div class="col-1 collapse-close">
20
- <a href="#navbar_global" class="fas fa-times" data-bs-toggle="collapse"
21
- data-bs-target="#navbar_global" aria-controls="navbar_global"
22
- aria-expanded="false" title="close" aria-label="Toggle navigation">
23
- </a>
24
- </div>
25
- </div>
26
- </div>
27
- </div>
28
- </div>
29
-
30
- </div>
31
- </nav>
32
- </header>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/components/_page_loader.html DELETED
@@ -1,12 +0,0 @@
1
- <main>
2
- <div class="preloader bg-dark flex-column justify-content-center align-items-center">
3
- <svg id="loader-logo" xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 64 78.4">
4
- </svg>
5
-
6
- <div class="loader">
7
- <span class="loader-text"></span>
8
- <span class="load"></span>
9
- </div>
10
-
11
- </div>
12
- </main>