enotkrutoy commited on
Commit
7945156
·
verified ·
1 Parent(s): 5d38dcf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -55
app.py CHANGED
@@ -1,60 +1,23 @@
1
- from flask import Flask, render_template, request, jsonify
2
- import requests
3
 
4
- app = Flask(__name__)
 
5
 
6
- # Базовый URL Searchcode API
7
- SEARCHCODE_API = "https://searchcode.com/api/codesearch_I/"
8
 
9
- @app.route("/")
10
  def index():
11
- return render_template("index.html")
12
-
13
- @app.route("/search", methods=["GET"])
14
- def search():
15
- # Получаем параметры запроса с клиента
16
- query = request.args.get("q", "soup") # поисковый запрос, по умолчанию "soup"
17
- page = request.args.get("p", 1)
18
- per_page = request.args.get("per_page", 100)
19
-
20
- # Пример включения дополнительных фильтров, например, по расширению файла или языку
21
- extension_filter = request.args.get("ext", None) # если передан, например, ext:py
22
- lang_filter = request.args.get("lang", None) # если передан, например, lang:python
23
- repo_filter = request.args.get("repo", None) # например: repo:boyter/batf
24
-
25
- # Формируем строку запроса с фильтрами (просто добавляем их к основному запросу)
26
- full_query = query
27
- if extension_filter:
28
- full_query += f" ext:{extension_filter}"
29
- if lang_filter:
30
- full_query += f" lang:{lang_filter}"
31
- if repo_filter:
32
- full_query += f" repo:{repo_filter}"
33
-
34
- # Собираем параметры для запроса
35
- params = {
36
- "q": full_query,
37
- "p": int(page),
38
- "per_page": int(per_page)
39
- }
40
-
41
- try:
42
- response = requests.get(SEARCHCODE_API, params=params, timeout=10)
43
- response.raise_for_status()
44
- data = response.json()
45
- except Exception as e:
46
- return jsonify({"error": str(e)})
47
-
48
- # Возвращаем клиенту отфильтрованные результаты
49
- return jsonify({
50
- "query": full_query,
51
- "total": data.get("total", 0),
52
- "page": data.get("page", 0),
53
- "nextpage": data.get("nextpage", None),
54
- "language_filters": data.get("language_filters", []),
55
- "source_filters": data.get("source_filters", []),
56
- "results": data.get("results", [])
57
- })
58
 
59
- if __name__ == "__main__":
60
- app.run(debug=True)
 
1
+ # app.py
 
2
 
3
+ from flask import Flask, render_template, request
4
+ from scanner import get_site_info
5
 
6
+ app = Flask(__name__)
 
7
 
8
+ @app.route('/', methods=['GET', 'POST'])
9
  def index():
10
+ result = None
11
+ error = None
12
+ if request.method == 'POST':
13
+ url = request.form['url']
14
+ if not url.startswith('http'):
15
+ url = 'https://' + url
16
+ result = get_site_info(url)
17
+ if result.get("error"):
18
+ error = result["error"]
19
+ result = None
20
+ return render_template('index.html', result=result, error=error)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
+ if __name__ == '__main__':
23
+ app.run(debug=True)