om4r932 commited on
Commit
681e106
·
1 Parent(s): 962c5f0
Files changed (2) hide show
  1. app.py +5 -4
  2. classes.py +7 -3
app.py CHANGED
@@ -195,11 +195,12 @@ valid_etsi_spec_format = re.compile(r'^\d{3} \d{3}(?:-\d+)?')
195
  def frontend():
196
  return FileResponse(os.path.join('templates', 'index.html'))
197
 
198
- @app.get("/reconnect", tags=["Misc"], summary="Reconnects to ETSI portal for document access")
199
  def reconnect():
200
- etsi_doc_finder.connect()
201
- return {"status": "OK !"}
202
-
 
203
  @app.post("/find/single", response_model=DocResponse, tags=["Document Retrieval"], summary="Retrieve a single document by ID", responses={
204
  200: {
205
  "description": "Document found successfully",
 
195
  def frontend():
196
  return FileResponse(os.path.join('templates', 'index.html'))
197
 
198
+ @app.get("/reconnect", tags=["Misc"], summary="Reconnects to ETSI portal for document access", include_in_schema=False)
199
  def reconnect():
200
+ data = etsi_doc_finder.connect()
201
+ if data.get('error', None) and not data.get('error'):
202
+ return data['message']
203
+ raise HTTPException(status_code=400, detail=data['message'])
204
  @app.post("/find/single", response_model=DocResponse, tags=["Document Retrieval"], summary="Retrieve a single document by ID", responses={
205
  200: {
206
  "description": "Document found successfully",
classes.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import requests
2
  import re
3
  from bs4 import BeautifulSoup
@@ -7,13 +8,16 @@ import json
7
  class ETSIDocFinder:
8
  def __init__(self):
9
  self.main_ftp_url = "https://docbox.etsi.org/SET"
10
- self.session = self.connect()
 
 
11
 
12
  def connect(self):
13
  session = requests.Session()
14
  req = session.post("https://portal.etsi.org/ETSIPages/LoginEOL.ashx", verify=False, headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"}, data=json.dumps({"username": os.environ.get("EOL_USER"), "password": os.environ.get("EOL_PASSWORD")}))
15
- print(req.content, req.status_code)
16
- return session
 
17
 
18
  def get_workgroup(self, doc: str):
19
  main_tsg = "SET-WG-R" if any(doc.startswith(kw) for kw in ["SETREQ", "SCPREQ"]) else "SET-WG-T" if any(doc.startswith(kw) for kw in ["SETTEC", "SCPTEC"]) else "SET" if any(doc.startswith(kw) for kw in ["SET", "SCP"]) else None
 
1
+ from fastapi import HTTPException
2
  import requests
3
  import re
4
  from bs4 import BeautifulSoup
 
8
  class ETSIDocFinder:
9
  def __init__(self):
10
  self.main_ftp_url = "https://docbox.etsi.org/SET"
11
+ req_data = self.connect()
12
+ print(req_data['message'])
13
+ self.session = req_data['session']
14
 
15
  def connect(self):
16
  session = requests.Session()
17
  req = session.post("https://portal.etsi.org/ETSIPages/LoginEOL.ashx", verify=False, headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"}, data=json.dumps({"username": os.environ.get("EOL_USER"), "password": os.environ.get("EOL_PASSWORD")}))
18
+ if req.text == "Failed":
19
+ return {"error": True, "session": session, "message": "Login failed ! Check your credentials"}
20
+ return {"error": False, "session": session, "message": "Login successful"}
21
 
22
  def get_workgroup(self, doc: str):
23
  main_tsg = "SET-WG-R" if any(doc.startswith(kw) for kw in ["SETREQ", "SCPREQ"]) else "SET-WG-T" if any(doc.startswith(kw) for kw in ["SETTEC", "SCPTEC"]) else "SET" if any(doc.startswith(kw) for kw in ["SET", "SCP"]) else None