srivatsavdamaraju commited on
Commit
5aca3a8
·
verified ·
1 Parent(s): 51d9682

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -116
app.py CHANGED
@@ -1,124 +1,50 @@
1
- from flask import Flask, render_template, request, redirect, url_for, flash
2
- import base64
3
- import os
4
  import requests
 
5
 
6
- # Your GitHub personal access token (replace this with your actual token)
7
- GITHUB_TOKEN = "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" # Use your own token!
8
-
9
- # GitHub repository details
10
- OWNER = "LAMENTIS1" # GitHub username or organization
11
- REPO = "face_recog" # GitHub repository name
12
- BRANCH = "master" # Branch to commit to (could be 'main' or any other branch)
13
-
14
- # Flask app setup
15
  app = Flask(__name__)
16
 
17
- # Set the secret key for flashing messages
18
- app.secret_key = 'your_secret_key'
19
-
20
- # Ensure the uploads directory exists
21
- UPLOAD_FOLDER = 'uploads'
22
- if not os.path.exists(UPLOAD_FOLDER):
23
- os.makedirs(UPLOAD_FOLDER)
24
-
25
- # Ensure the directory exists by checking if the file or folder exists in the repo
26
- def check_folder_exists(person_name):
27
- api_url = f"https://api.github.com/repos/{OWNER}/{REPO}/contents/labeled_images/{person_name.replace(' ', '%20')}"
28
- response = requests.get(api_url, headers={"Authorization": f"Bearer {GITHUB_TOKEN}"})
29
-
30
- if response.status_code == 404:
31
- create_dummy_file(person_name)
32
- return f"Folder 'labeled_images/{person_name}' created successfully."
33
- else:
34
- return f"Folder 'labeled_images/{person_name}' already exists."
35
-
36
- # Create a dummy file in the folder to ensure it exists
37
- def create_dummy_file(person_name):
38
- api_url = f"https://api.github.com/repos/{OWNER}/{REPO}/contents/labeled_images/{person_name.replace(' ', '%20')}/.dummy"
39
- data = {
40
- "message": f"Create folder for {person_name}",
41
- "branch": BRANCH,
42
- "content": base64.b64encode(b"").decode(), # Empty content for the dummy file
43
- }
44
-
45
- headers = {
46
- "Authorization": f"Bearer {GITHUB_TOKEN}",
47
- "Content-Type": "application/json",
48
- }
49
-
50
- response = requests.put(api_url, json=data, headers=headers)
51
-
52
- if response.status_code == 201:
53
- print(f"Folder 'labeled_images/{person_name}' created successfully.")
54
- else:
55
- print(f"Failed to create folder: {response.status_code} - {response.text}")
56
-
57
- # Function to upload a file to GitHub using the API
58
- def upload_image(image_path, person_name, file_name):
59
- api_url = f"https://api.github.com/repos/{OWNER}/{REPO}/contents/labeled_images/{person_name.replace(' ', '%20')}/{file_name}"
60
-
61
- # Read the image and encode it in base64
62
- with open(image_path, "rb") as image_file:
63
- encoded_image = base64.b64encode(image_file.read()).decode()
64
-
65
- data = {
66
- "message": f"Add {file_name} for {person_name}",
67
- "branch": BRANCH,
68
- "content": encoded_image,
69
- }
70
-
71
- headers = {
72
- "Authorization": f"Bearer {GITHUB_TOKEN}",
73
- "Content-Type": "application/json",
74
- }
75
-
76
- response = requests.put(api_url, json=data, headers=headers)
77
-
78
- if response.status_code == 201:
79
- return True
80
- else:
81
- return False
82
-
83
- @app.route("/", methods=["GET", "POST"])
84
- def index():
85
- success_message = ""
86
-
87
- if request.method == "POST":
88
- # Get username
89
- person_name = request.form["username"]
90
-
91
- # Get files from the form
92
- image1 = request.files["image1"]
93
- image2 = request.files["image2"]
94
-
95
- # Save images locally temporarily
96
- image1_path = os.path.join(UPLOAD_FOLDER, image1.filename)
97
- image2_path = os.path.join(UPLOAD_FOLDER, image2.filename)
98
- image1.save(image1_path)
99
- image2.save(image2_path)
100
-
101
- # Ensure the folder for the user exists on GitHub and capture success/failure message
102
- success_message = check_folder_exists(person_name)
103
-
104
- # Upload images to GitHub
105
- success1 = upload_image(image1_path, person_name, "1.jpg")
106
- success2 = upload_image(image2_path, person_name, "2.jpg")
107
-
108
- # Remove the temporary files after uploading
109
- os.remove(image1_path)
110
- os.remove(image2_path)
111
-
112
- # Show appropriate message based on success or failure
113
- if success1 and success2:
114
- success_message += " Images uploaded successfully!"
115
  else:
116
- success_message += " Failed to upload images. Please try again."
117
-
118
- # Pass the success message to the template
119
- return render_template("index.html", success_message=success_message)
120
 
121
- return render_template("index.html", success_message=success_message)
 
122
 
123
- if __name__ == "__main__":
124
  app.run(debug=True)
 
1
+ from flask import Flask, request, jsonify
 
 
2
  import requests
3
+ import json
4
 
 
 
 
 
 
 
 
 
 
5
  app = Flask(__name__)
6
 
7
+ @app.route('/api/get_metadata', methods=['POST'])
8
+ def get_metadata():
9
+ try:
10
+ # Get the JSON data from the request body
11
+ body = request.get_json()
12
+
13
+ # Validate the incoming data
14
+ if not body or 'content_id' not in body or 'username' not in body or 'token' not in body or 'is_pdf' not in body:
15
+ return jsonify({"error": "Missing required fields"}), 400
16
+
17
+ content_id = body['content_id']
18
+ username = body['username']
19
+ token = body['token']
20
+ is_pdf = body['is_pdf']
21
+
22
+ # Prepare payload and headers
23
+ payload = json.dumps({
24
+ "content_id": content_id,
25
+ "username": username,
26
+ "token": token,
27
+ "is_pdf": is_pdf
28
+ })
29
+
30
+ headers = {
31
+ 'Content-Type': 'application/json',
32
+ # Replace with your actual Bearer token
33
+ 'Authorization': 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3Ny1NUVdFRTNHZE5adGlsWU5IYmpsa2dVSkpaWUJWVmN1UmFZdHl5ejFjIn0.eyJleHAiOjE3MzgyODUyMzAsImlhdCI6MTczODI0OTIzMCwianRpIjoiMzQ3ZGViY2ItMTYzNC00ODdhLWIzMmYtNzIxMmJmZjkyMjFlIiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLXNlcnZpY2Uua2V5Y2xvYWsuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9yZWFsbXMvbWFzdGVyIiwiYXVkIjpbIkJPTFRaTUFOTl9CT1RfbW9iaXVzIiwiUEFTQ0FMX0lOVEVMTElHRU5DRV9tb2JpdXMiLCJNT05FVF9tb2JpdXMiLCJWSU5DSV9tb2JpdXMiLCJhY2NvdW50Il0sInN1YiI6IjJjZjc2ZTVmLTI2YWQtNGYyYy1iY2NjLWY0YmMxZTdiZmI2NCIsInR5cCI6IkJlYXJlciIsImF6cCI6IkhPTEFDUkFDWV9tb2JpdXMiLCJzaWQiOiJkZjdlNTFkMS01N2YzLTQ3NzctYjgzZC02NzQzZWZmOTg5YWIiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIi8qIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJkZWZhdWx0LXJvbGVzLW1hc3RlciIsIkhDWV9URU5BTlRfQ1VTVE9NIiwib2ZmbGluZV9hY2Nlc3MiLCJCT0JfVEVOQU5UX0NVU1RPTSIsInVtYV9hdXRob3JpemF0aW9uIiwiUElfVEVOQU5UX0NVU1RPTSIsIk1PTkVUX1RFTkFOVF9DVVNUT00iXX0sInJlc291cmNlX2FjY2VzcyI6eyJCT0xUWk1BTk5fQk9UX21vYml1cyI6eyJyb2xlcyI6WyJURU5BTlRfV09SS0ZMT1dfU1VTUEVORF9QUk9DRVNTX0RFRklOSVRJT04iLCJURU5BTlRfV09SS0ZMT1dfU1VTUEVORF9JTlNUQU5DRSIsIlRFTkFOVF9XT1JLRkxPV19SRVRSSUVWRV9BTEwiLCJURU5BTlRfV09SS0ZMT1dfQUNUSVZBVEVfSU5TVEFOQ0UiLCJURU5BTlRfV09SS0ZMT1dfRVhFQ1VURSIsIlRFTkFOVF9XT1JLRkxPV19SRVRSSUVWRV9IT01FIiwiVEVOQU5UX1dPUktGTE9XX1JFVFJJRVZFX1NVU1BFTkRFRF9QUk9DRVNTX0RFRlMiLCJURU5BTlRfV09SS0ZMT1dfQUNUSVZBVEVfUlVOX0pPQiIsIlRFTkFOVF9XT1JLRkxPV19TVEFUVVMiLCJURU5BTlRfV09SS0ZMT1dfQ1JFQVRFIiwiVEVOQU5UX1dPUktGTE9XX0FDVElWSVRZX0RBVEFfQ09VTlQiLCJCT0xUWk1BTk5fQk9UX1VTRVIiLCJURU5BTlRfV09SS0ZMT1dfREVQTE9ZX1ZFUlNJT04iLCJURU5BTlRfV09SS0ZMT1dfSU1QT1JUIiwiVEVOQU5UX1dPUktGTE9XX1VQREFURSIsIlRFTkFOVF9XT1JLRkxPV19ERVBMT1kiLCJURU5BTlRfV09SS0ZMT1dfU1VTUEVORF9SVU5fSk9CIiwiVEVOQU5UX1dPUktGTE9XX1JFVFJJRVZFIiwiVEVOQU5UX1dPUktGTE9XX0RFTEVURSIsIlRFTkFOVF9XT1JLRkxPV19UUklHR0VSX01FU1NBR0VfTElTVEVORVIiXX0sIkhPTEFDUkFDWV9tb2JpdXMiOnsicm9sZXMiOlsiVEVOQU5UX1BST0RVQ1RfUkVUUklFVkVfTUFTVEVSX0NPTkZJRyIsIlRFTkFOVF9JTlZJVEFUSU9OX1JFU1BPTkQiLCJURU5BTlRfTkVHT1RJQVRJT05fQVBQUk9WQUxfQlVZRVIiLCJURU5BTlRfSU5WSVRBVElPTl9SRVRSSUVWRSIsIlRFTkFOVF9PUkdBTklaQVRJT05fQ1JFQVRFIiwiVEVOQU5UX0NSRUFURV9URU5BTlQiLCJURU5BTlRfU1VCX0FMTElBTkNFX1JFVFJJRVZFIiwiVEVOQU5UX1BMQVRGT1JNX0NSRUFURSIsIkhPTEFDUkFDWV9VU0VSIiwiVEVOQU5UX1JBVEVDQVJEX0NSRUFURSIsIlRFTkFOVF9QTEFURk9STV9SRVRSSUVWRSIsIlRFTkFOVF9SRVRSSUVWRV9CWV9CVVlFUl9QTEFURk9STSIsIlRFTkFOVF9TVUJfQUxMSUFOQ0VfUkVUUklFVkVfQUxMIiwiVEVOQU5UX1BST0RVQ1RfUkVUUklFVkUiLCJURU5BTlRfQUNDT1VOVF9ERUxFVEUiLCJURU5BTlRfQUxMSUFOQ0VfUkVUUklFVkUiLCJURU5BTlRfUExBVEZPUk1fVVBEQVRFIiwiVEVOQU5UX0lOVklUQVRJT05fQ1JFQVRFIiwiVEVOQU5UX1JBVEVDQVJEX1JFVFJJRVZFIiwiVEVOQU5UX09SR0FOSVpBVElPTl9VUERBVEUiLCJURU5BTlRfUkFURUNBUkRfVVBEQVRFIiwiVEVOQU5UX09SR0FOSVpBVElPTl9ERUxFVEUiLCJURU5BTlRfUExBVEZPUk1fREVMRVRFIiwiVEVOQU5UX1BST0RVQ1RfQ1JFQVRFIiwiVEVOQU5UX1NVQl9BTExJQU5DRV9DUkVBVEUiLCJURU5BTlRfUkFURUNBUkRfREVMRVRFIiwiVEVOQU5UX0FDQ09VTlRfQ1JFQVRFIiwiVEVOQU5UX0lOVklUQVRJT05fVVBEQVRFIiwiVEVOQU5UX1JFVFJJRVZFX1RFTkFOVCIsIlRFTkFOVF9JTlZJVEFUSU9OX0RFTEVURSIsIlRFTkFOVF9ORUdPVElBVElPTl9BUFBST1ZBTF9TVVBFUl9BRE1JTiIsIlRFTkFOVF9ORUdPVElBVElPTl9SRVRSSUVWRV9BTExfQkVUV0VFTl9CVVlFUl9TRUxMRVIiLCJURU5BTlRfUkVUUklFVkVfVEVOQU5UX0FMTCIsIlRFTkFOVF9ORUdPVElBVElPTl9DUkVBVEUiLCJURU5BTlRfVVBEQVRFX1RFTkFOVCIsIlRFTkFOVF9PUkdBTklaQVRJT05fUkVUUklFVkUiLCJURU5BTlRfQUNDT1VOVF9VUERBVEUiLCJURU5BTlRfUFJPRFVDVF9ERUxFVEUiLCJURU5BTlRfU1VCX0FMTElBTkNFX0RFTEVURSIsIlRFTkFOVF9ORUdPVElBVElPTl9BUFBST1ZBTF9TRUxMRVIiLCJURU5BTlRfU1VCX0FMTElBTkNFX1VQREFURSIsIlRFTkFOVF9QUk9EVUNUX1VQREFURSIsIlRFTkFOVF9BQ0NPVU5UX1JFVFJJRVZFIiwiVEVOQU5UX05FR09USUFUSU9OX1JFVFJJRVZFIiwiVEVOQU5UX0RFTEVURV9URU5BTlQiXX0sIlBBU0NBTF9JTlRFTExJR0VOQ0VfbW9iaXVzIjp7InJvbGVzIjpbIlRFTkFOVF9DT05URVhUX0RFTEVURSIsIlRFTkFOVF9DT05URVhUX1VQREFURSIsIlRFTkFOVF9CSUdRVUVSWV9SRVRSSUVWRSIsIlRFTkFOVF9CSUdRVUVSWV9VUERBVEUiLCJURU5BTlRfVU5JVkVSU0VfQ1JFQVRFIiwiVEVOQU5UX0NPSE9SVFNfUkVUUklFVkUiLCJURU5BTlRfQklHUVVFUllfQ1JFQVRFIiwiVEVOQU5UX0JJR1FVRVJZX0VWQUxVQVRFIiwiVEVOQU5UX0NPSE9SVFNfVVBEQVRFIiwiVEVOQU5UX0NPTlRFWFRfUkVUUklFVkUiLCJURU5BTlRfVU5JVkVSU0VfUkVUUklFVkUiLCJURU5BTlRfQ09IT1JUU19FVkFMVUFURSIsIlRFTkFOVF9CSUdRVUVSWV9ERUxFVEUiLCJURU5BTlRfU0NIRU1BX0NSRUFURSIsIlBBU0NBTF9JTlRFTExJR0VOQ0VfVVNFUiIsIlRFTkFOVF9DT0hPUlRTX0NSRUFURSIsIlRFTkFOVF9TQ0hFTUFfVVBEQVRFIiwiVEVOQU5UX0NPTlRFWFRfQVBQUk9WRSIsIlRFTkFOVF9VTklWRVJTRV9VUERBVEUiLCJURU5BTlRfQklHUVVFUllfQVBQUk9WRSIsIlRFTkFOVF9TQ0hFTUFfUkVUUklFVkUiLCJURU5BTlRfU0NIRU1BX0FQUFJPVkUiLCJURU5BTlRfQ09OVEVYVF9FVkFMVUFURSIsIlRFTkFOVF9TQ0hFTUFfREVMRVRFIiwiVEVOQU5UX0NPTlRFWFRfQ1JFQVRFIiwiVEVOQU5UX1NDSEVNQV9EQVRBX1JFVFJJRVZFIiwiVEVOQU5UX1NDSEVNQV9EQVRBX0RFTEVURSIsIlRFTkFOVF9TQ0hFTUFfREFUQV9VUERBVEUiLCJURU5BTlRfQ09IT1JUU19ERUxFVEUiLCJURU5BTlRfVU5JVkVSU0VfREVMRVRFIiwiVEVOQU5UX1NDSEVNQV9EQVRBX0lOR0VTVElPTiIsIlRFTkFOVF9DT0hPUlRTX0FQUFJPVkUiXX0sIk1PTkVUX21vYml1cyI6eyJyb2xlcyI6WyJURU5BTlRfQVBQTEVUU19SRVRSSUVWRV9BTExfUFVCTElTSEVEIiwiVEVOQU5UX1dJREdFVFNfUkVUUklFVkVfRFJBRlQiLCJURU5BTlRfV0lER0VUU19VUERBVEUiLCJURU5BTlRfQVBQTEVUU19ERUxFVEUiLCJURU5BTlRfV0lER0VUU19ERUxFVEUiLCJURU5BTlRfUExVR0lOX0NBVEVHT1JZX1JFVFJJRVZFX0FMTCIsIlRFTkFOVF9BUFBMRVRTX1VQREFURV9ISVNUT1JZIiwiVEVOQU5UX0VYUEVSSUVOQ0VTX0NSRUFURSIsIlRFTkFOVF9XSURHRVRTX1JFVFJJRVZFX1BVQkxJU0giLCJURU5BTlRfUExVR0lOX0NBVEVHT1JZX0NSRUFURSIsIlRFTkFOVF9ERVBFTkRFTkNZX1JFVFJJRVZFX0FMTCIsIlRFTkFOVF9XSURHRVRTX1BVQkxJU0giLCJURU5BTlRfUkVUUklFVkVfRklFTERTX09GX1BVQkxJU0hFRCIsIlRFTkFOVF9FWFBFUklFTkNFU19VUERBVEUiLCJURU5BTlRfQVBQTEVUU19DUkVBVEUiLCJURU5BTlRfUExVR0lOU19ERUxFVEUiLCJURU5BTlRfQVBQTEVUU19SRVRSSUVWRV9BTExfRFJBRlQiLCJURU5BTlRfUExVR0lOU19VUERBVEUiLCJURU5BTlRfQVBQTEVUU19SRVRSSUVWRV9GUk9NX0hJU1RPUlkiLCJURU5BTlRfUkVUUklFVkVfRklFTERTX09GX0RSQUZUIiwiVEVOQU5UX0FQUExFVFNfUkVUUklFVkVfUFVCTElTSEVEIiwiVEVOQU5UX0FQUExFVFNfUFVCTElTSEVEIiwiVEVOQU5UX1dJREdFVFNfUkVUUklFVkUiLCJURU5BTlRfUExVR0lOX0NBVEVHT1JZX0RFTEVURSIsIlRFTkFOVF9QTFVHSU5fQ0FURUdPUllfUFVCTElTSCIsIlRFTkFOVF9QTFVHSU5fQ0FURUdPUllfREVMRVRFX0NPTVBfRlJPTSIsIlRFTkFOVF9SRVRSSUVWRV9QVUJMSVNIRUQiLCJURU5BTlRfUExVR0lOU19SRVRSSUVWRSIsIlRFTkFOVF9QTFVHSU5TX0NSRUFURSIsIlRFTkFOVF9XSURHRVRTX0NSRUFURSIsIlRFTkFOVF9BUFBMRVRTX1JFVFJJRVZFX0FMTF9QVUJMSVNIRURfVEhVTUJOQUlMUyIsIk1PTkVUX1VTRVIiLCJURU5BTlRfRVhQRVJJRU5DRVNfREVMRVRFIiwiVEVOQU5UX0VYUEVSSUVOQ0VTX1BVQkxJU0giLCJURU5BTlRfUkVUUklFVkVfRlJPTV9ISVNUT1JZIiwiVEVOQU5UX1BMVUdJTl9DQVRFR09SWV9VUERBVEUiXX0sIlZJTkNJX21vYml1cyI6eyJyb2xlcyI6WyJWSU5DSV9VU0VSIl19LCJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJyZXF1ZXN0ZXJUeXBlIjoiVEVOQU5UIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsIm5hbWUiOiJBaWR0YWFzIEFpZHRhYXMiLCJ0ZW5hbnRJZCI6IjJjZjc2ZTVmLTI2YWQtNGYyYy1iY2NjLWY0YmMxZTdiZmI2NCIsInByZWZlcnJlZF91c2VybmFtZSI6InBhc3N3b3JkX3RlbmFudF9haWR0YWFzQGdhaWFuc29sdXRpb25zLmNvbSIsImdpdmVuX25hbWUiOiJBaWR0YWFzIiwiZmFtaWx5X25hbWUiOiJBaWR0YWFzIiwiZW1haWwiOiJwYXNzd29yZF90ZW5hbnRfYWlkdGFhc0BnYWlhbnNvbHV0aW9ucy5jb20ifQ.a7IMhBQejzTEcmO918_R4gr5W1JLiIXRJUYdjVORPzgvC1GUe2KDUdDasNTWYtzAyFkNc48H0YuSuOIydQL4DlcYCul1ydscKCoIJSfuvW6EhFZsAi2x1Ro-LEUwamLX7zDgRA166oDRmtD-JReGdhSOCu6cSEU7eN_ThMiwqynTzveptLeXJYyN9ZoGDuZ57EVei-UR-K-TmxA9kVZmEw77lkN_zcInJuZne8puKGjmvovKP6tJE4nVGxQJTDDtJsrN9zjUCFHC79_AdeW0b0Rzjl4inYfovZi6mNjaI25H1_VJ9HhjxyrAv-r8b808l0koqxVgCAfWz7ErUEeKjg'
34
+ }
35
+
36
+ # Make the GET request to the external API
37
+ url = "https://ig.aidtaas.com/python-pipelines/graphrag/v1.0/getMetaData"
38
+ response = requests.get(url, headers=headers, data=payload)
39
+
40
+ # Check the response from the external service
41
+ if response.status_code == 200:
42
+ return jsonify(response.json()), 200
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  else:
44
+ return jsonify({"error": "Failed to fetch data from external API", "details": response.text}), response.status_code
 
 
 
45
 
46
+ except Exception as e:
47
+ return jsonify({"error": str(e)}), 500
48
 
49
+ if __name__ == '__main__':
50
  app.run(debug=True)